Upload d'avatar

newrayz
Invité n'ayant pas de compte PHPfrance

03 févr. 2010, 17:30

Bonjour à tous :) ! Je remercie d'avance les gens qui pourront m'aider !..
Je suis initié au php et il y a pas longtemps j'ai fait un espace membres pour mon site (sans BDD) et jusqu'à présent tout marchait bien, mais j'ai voulu faire un système où l'utilisateur peut uploader son avatar( lors de l'inscription) avec message d'erreur si l'avatar était trop grand et ensuite afficher l'avatar quand l'utilisateur se connecte. Pour m'entraîner j'ai fait l'upload avec une page spéciale pour cela (upload.html et upload.php), et j'ai essayé d'intégrer le code de l'upload.php à mon inscription.php (j'espère que que vous mavez compris jusque là ^^).
Mon problème c'est que quand j'essaye d'intégrer le code de l'upload.php au code inscription.php cela ne marche pas :?.
Je vous passe le code de l'inscription.html, et le code de inscription.php(suivi du code de l'upload.php...)

inscription.html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Inscription</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="inscription" href="inscription.css" />
   </head>
   <body>
   <fieldset>
   <form method="post" action="inscription.php">
       <label for="nom">Nom :</label><input type="text" name="nom" id="nom" /><br />
       <label for="prenom">Prenom :</label><input type="text" name="prenom" id="prenom" /><br />
	   <label for="pass">Choisissez un mdp :</label><input type="text" name="pass" id="pass" /><br />
	   <label for="upload">Votre avatar :</label><input type="file" name="fichier" size="30" /><br />
	   <input type="submit" name="upload" value="S'inscrire"><br>
</form>
   </body>
</html>
inscription.php(suivi du code de l'upload.php...) :
<?php

error_reporting(E_ALL & ~ E_NOTICE);
$pseudo = $_POST['pseudo'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$pass = $_POST['pass'];

$infos = array('pseudo' => $_POST['pseudo'],
               'prenom' => $_POST['prenom'],
               'nom' => $_POST['nom'],
               'pass' => sha1($pass));
                     	

   
file_put_contents('membres/'.md5($_POST['prenom']).'.txt', serialize($infos));



if ($prenom == $pass) 
{      
echo "Le mot de passe ne doit pas etre le meme que le prenom !"; 
exit;   
}                                       


if(preg_match("#^[a-z0-9]*$#", "$prenom$nom") != 0)

{
echo "Bienvenue $prenom ! Votre prénom $prenom sera utilisé pour vous connecter ! Votre mot de passe est $pass";
}

else
{
echo "Le prénom, le nom puis le mdp ne doivent pas contenir de caractères autres que des lettres (sans accents) !";
exit;
}


//2ème PARTIE !(Upload.php)


if( isset($_POST['upload']) ) 
{
    $content_dir = 'upload/'; 

    $tmp_file = $_FILES['fichier']['tmp_name'];
	
	
    
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }


    
    $type_file = $_FILES['fichier']['type'];

    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

$largeur_max  = 330;
$longueur_max = 280;	

list($largeur, $longueur) = getimagesize($_FILES['fichier']['tmp_name']);
if($largeur >= $largeur_max OR $longueur >= $longueur_max)

{

   echo "Respectez la taille please";
   exit;

}
  
    $name_file = $_FILES['fichier']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Votre avatar :";
	echo "<img src='upload/$name_file'>";
}

?>
P.S : J'espère avoir été assez clair !
Cordialement.

Eléphanteau du PHP | 10 Messages

04 févr. 2010, 00:33

Bonsoir,

Il manque l'information enctype="multipart/form-data" à la définition de ton formulaire.
Juste pour information : http://www.w3schools.com/tags/att_form_enctype.asp

Bonne soirée.