Upload de fichiers php

Résolu/Fermé
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - 21 mai 2009 à 05:33
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - 28 mai 2009 à 04:24
Bonjour,
voila je fais un formulaire ou on saisit pseudo, .... et l'avatar
justement mon code ne fonctionne pas j'ai tester tout les fonctions mais quand je mets la fonction pour l'avatar ça ne fonctionne pas. Je voudrais savoir pourquoi ??!!

voici le code du formulaire
<form action="includes/confirmation.php" method="post" name="Inscription">
				<fieldset><legend>Identifiants</legend>
					<label for="pseudo" class="float">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" size="30"/> <em>(compris entre 3 et 32 
					caractères)</em><br />
					<label for="mdp" class="float">Mot de passe :</label> <input type="password" name="mdp" id="mdp" size="30" /> <em>(compris entre 4 et 50 caractères)
					</em><br />
					<label for="mdp_verif" class="float">Mot de passe (vérification) :</label> <input type="password" name="mdp_verif" id="mdp_verif" size="30"/> <br />
					<label for="mail" class="float">Mail :</label> <input type="text" name="mail" id="mail" size="30"/> <br />
					<label for="mail_verif" class="float">Mail (vérification) :</label> <input type="text" name="mail_verif" id="mail_verif" size="30"/> <br />
					<label for="date_naissance" class="float">Date de naissance :</label> <input type="text" name="date_naissance" id="date_naissance" size="30"/> <em>
					(format JJ/MM/AAAA)</em><br/>
					<label for="avatar">Enregistrer votre avatar :</label><input type="file" name="avatar" id="avatar" />(Taille max : 10 ko)<br />
				</fieldset>
				<br />
				<div align="center"><input type="submit" value="Inscription" /> <input name="reset" type="reset" value=
				"Annuler" /></div>
			</form>


Voici le code de la fonction
//avatar
if (isset($_FILES['avatar']['size']))
{
        //On définit les variables :
        $maxsize = 10024; //Poid de l'image
        $maxwidth = 100; //Largeur de l'image
        $maxheight = 100; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
        
        if ($_FILES['avatar']['error'] > 0)
        {
		        $_SESSION['$avatar_erreur'] = '<span class="erreur">Erreur lors du tranfsert de l avatar.</span><br/>';
                $_SESSION['erreurs']++;
        }
        if ($_FILES['avatar']['size'] > $maxsize)
        {
				$_SESSION['$avatar_erreur1'] = '<span class="erreur">Le fichier est trop gros : (<strong>'.$_FILES['avatar']['size'].' Octets</strong>    contre 
				<strong>'.$maxsize.' Octets</strong>)</span><br/>';
                $_SESSION['erreurs']++;
        }

        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                 $_SESSION['$avatar_erreur2'] = '<span class="erreur">Image trop large ou trop longue : (<strong>'.$image_sizes[0].'x'.$image_sizes[1].'</strong> contre
				 <strong>'.$maxwidth.'x'.$maxheight.'</strong>)"</span><br/>';
                $_SESSION['erreurs']++;
        }
        
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $_SESSION['$avatar_erreur3'] = '<span class="erreur">Extension de l avatar incorrecte.</span><br/>';
                $_SESSION['erreurs']++;
        }
}


et voici le code pour enregistrer la saisie dans la BDD
 if (isset($_FILES['avatar']['size']))
                {
                    //On déplace l'avatar
                    $avatar = time();
                    $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
                     $avatar = "../imgs/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
                     move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
                }

				$insertion = "INSERT INTO membres VALUES(NULL, '".mysql_real_escape_string($pseudo)."',
				'".mysql_real_escape_string($mail)."', '".md5($mdp)."', 
				'".$nomavatar."' , '', '".date("Y-m-d")."', '".mysql_real_escape_string($date_naissance)."')" or die(mysql_error());

Voila c quand je met le code pour l'avatar il y a une erreur en appuyant sur inscription je reviens directement sur la page d'accueil et il y a rien sur ma BDD!!
Merci d'avance !!
A voir également:

4 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
21 mai 2009 à 09:06
Il manque l'attribut enctype de ta balise form, c'est indispensable pour l'envoi de fichiers.
0
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 64
21 mai 2009 à 15:03
ok merci beaucoup ça fonctionne mais j'ai d'autre erreur :

Notice: Undefined index: avatar_erreur in ...
Notice: Undefined index: avatar_erreur1 in ...
Notice: Undefined index: avatar_erreur3 in ...

Voici le code :
echo $_SESSION['avatar_erreur'];
echo $_SESSION['avatar_erreur1'];
echo $_SESSION['avatar_erreur3'];


il doit renvoyer ces erreurs :
if (isset($_FILES['avatar']['size']))
{
        //On définit les variables :
        $maxsize = 10024; //Poid de l'image
        $maxwidth = 100; //Largeur de l'image
        $maxheight = 100; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
        
        if ($_FILES['avatar']['error'] > 0)
        {
		        $_SESSION['avatar_erreur'] = '<span class="erreur">Erreur lors du tranfsert de l avatar.</span><br/>';
                $_SESSION['erreurs']++;
        }
        if ($_FILES['avatar']['size'] > $maxsize)
        {
				$_SESSION['avatar_erreur1'] = '<span class="erreur">Le fichier est trop gros : (<strong>'.$_FILES['avatar']['size'].' Octets</strong>    contre 
				<strong>'.$maxsize.' Octets</strong>)</span><br/>';
                $_SESSION['erreurs']++;
        }

        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                 $_SESSION['avatar_erreur2'] = '<span class="erreur">Image trop large ou trop longue : (<strong>'.$image_sizes[0].'x'.$image_sizes[1].'</strong> contre
				 <strong>'.$maxwidth.'x'.$maxheight.'</strong>)</span><br/>';
                $_SESSION['erreurs']++;
        }
        
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $_SESSION['avatar_erreur3'] = '<span class="erreur">Extension de l avatar incorrecte</span><br/>';
                $_SESSION['erreurs']++;
        }
}

Apparement c'est que avatar_erreur2 qui marche !!
Merci d'avance !!
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
21 mai 2009 à 17:30
Bah, c'est parce que ces variables de session n'existent pas, donc que tu ne rencontres pas d'erreurs, tu dois donc tester que ces varaibles existent avant de les afficher.

Mais c'est pas une très bonne idée que de trimbaler des erreurs concernant un formulaire en variables de session.
0
yoshiro Messages postés 497 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 64
28 mai 2009 à 04:24
OK merci !!
c'était juste que j'avais pas donné le même nom !!
désolé !!
et encore merci !!
0