Page 1 sur 1

upload d'avatar

Posté : 23 mars 2007, 18:43
par Snipy
Hello tout le monde,

EDIT : il ne me reste plus qu'un seul problème, l'avatar ne s'upload => c'ets à dire qu'il n'est pas sur mon ftp

Voici le code.
//Vérification de l'avatar

        if (!empty($_FILES['avatar']['size']))
        {
	        //On définit les variables :
	        $maxsize = 30072; //Poid de l'image
	        $maxwidth = 100; //Largeur de l'image
	        $maxheight = 100; //Longueur de l'image
	        //Liste des extensions valides
	        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); 

	        if ($_FILES['avatar']['error'] > 0)
	        {
	        $avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
	        }
	        if ($_FILES['avatar']['size'] > $maxsize)
	        {
	        $i++;
	        $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
	        }

	        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
	        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
	        {
	        $i++;
	        $avatar_erreur2 = "Image trop large ou trop longue :
	        (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre
	        <strong>".$maxwidth."x".$maxheight."</strong>)";
	        }

	        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
	        if (!in_array($extension_upload,$extensions_valides) )
	        {
	                $i++;
	                $avatar_erreur3 = "Extension de l'avatar incorrecte";
	        }
		}
			
			echo'<a href ="index.php">Accueil</a> / <a href="./voirprofil.php?action=modifier&id='.$_SESSION['id'].'">Modification du profil</a>';

if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
{
        if (!empty($_FILES['avatar']['size']))
        {
                //On déplace l'avatar
                $avatar = time();
                $nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
                $avatar = "/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
                move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
                mysql_query("UPDATE membres SET avatar = '".$nomavatar."' WHERE id = '".$_SESSION['id']."'");
        }
Merci d'avance car je galere depuis le week end dernier

D eplus est ce normal qu'à cette ligne il y est 2x "."."
$nomavatar = str_replace(' ','',$avatar).".".$extension_upload; 
Bon week end :oops:

Posté : 23 mars 2007, 19:05
par Ryle
Est-ce que tu rentres dans tes différents if ?
Affiche un simple echo avec quelques valeurs pour vérifier que ton $i est bien égal à 0, que $_FILES['avatar']['size'] n'est pas vide, etc.

L'enctype de ton formulaire est-il bien spécifié pour passer un fichier ?
D eplus est ce normal qu'à cette ligne il y est 2x "."."
$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
Oui c'est normal, le point en php sert à la concaténation de chaines. Celui qui est entre guillemets représente le caractère. Tu est donc en train de concaterner la variable $avatar (sans les espaces) avec un point et l'extension du fichier :)

Posté : 23 mars 2007, 23:28
par Snipy
Merci à tous, tout est rentré dans l'ordre, après avoir ciblé méthodiquement le problème.