IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

message indefined index avec script upload photo


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut message indefined index avec script upload photo
    Bonsoir,

    j'ai 4 messages erreurs dans mon script se rapportant tous a ma variable 'photo'
    que je n'arrive pas a trouver

    pourtant dans mon formulaire, input type name = ''photo''
    ce script marchait bien dans une autre page

    alors voici mon script et je mets en bold les endroits de message indefined index
    merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     <?php
     
        if(isset($_FILES))
    {
    	$fichier = basename($_FILES['photo']['name']);// MESSAGE ERREUR
    	$taille_maxi = 200000;
    	$taille = filesize($_FILES['photo']['tmp_name']); // ICI AUSSI
    	$extensions = array('image/png', 'image/gif', 'image/jpg', 'image/jpeg', 'image/bmp');
    	//$extension = strrchr($_FILES['photo']['name'], '.');
    	$extension = $_FILES['photo']['type'];  // ICI AUSSI
    	//Début des vérifications de sécurité...
     
    	if($_FILES['photo']['error'] != 0)   // ICI AUSSI
    	{
    		echo 'Une erreur est rencontrée !';
    		echo $_FILES['photo']['error']; //A voir ce que ca retourne et le convertir
    	}
    	elseif(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    	{
    		echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, ou bmp...';
    	}
    	elseif($taille>$taille_maxi)
    	{
    		echo 'Le fichier est trop gros...';
    	}
    	else //Tout est bon !
    	{
    		//On formate le nom du fichier ici...
    		$fichier = strtr($fichier, 
    		'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    		$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    		$dossier = 'images/';
    		if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    		{
    			echo 'Upload effectué avec succès !';
    		}
    		else //Sinon (la fonction renvoie FALSE).
    		{
    			echo 'Echec de l\'upload !';
    		}
    	}
    }
    ?>
    merci de votre attrntion

  2. #2
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    ce qui est drole ici c<est que si je fais


    if(!isset($_FILES))

    il n'y a plus d'erreurs de indefine index
    Pourquoi?

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Si Php renvoie une erreur comme quoi le nom "photo" lui est inconnu, c'est qu'il y a erreur sur ce nom.

    Pour le savoir, fait un print_r() pour avoir des infos.
    Puis pour la condition, il vaut mieux vérifier l'existence du fichier, de $_FILES['photo'] (et non simplement $_FILES).
    (il faudra corriger si il y a erreur sur le nom)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     <?php
    // On affiche (provisoirement) le contenu du tableau $_FILES
    if(isset($_FILES)) print_r($_FILES);
     
     
    if (isset($_FILES['photo'])) {
    	... etc ...
    }
    Tu pourrais aussi le vérifier au niveau du formulaire, le nom du champ (type file) qui permet de rechercher le fichier, il faut que leur nom correspondent.

    if(!isset($_FILES))

    il n'y a plus d'erreurs de indefine index
    Pourquoi?
    Rien de plus normal.
    La condition vérifie la non existence du tableau $_FILES ... mais il existe. Du coup, on entre pas dans la condition (là où il y a une erreur).

    Par contre, si tu fait : if (!isset($_FILES['photo']))
    Ici, tu entre dans la condition, car l'index "photo" lui n'existe pas (d'après le retour d'erreur Php).
    Bref, $_FILES et $_FILES['photo'] sont 2 choses différentes.

    Cependant, il ne faut pas vérifier la non existence, mais l'existence de l'élément "photo" contenu dans le tableau $_FILES (voir code plus haut).

  4. #4
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    alors voila et merci pour ton interet

    quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_FILES['photo']))
    {
     
    echo '<pre>';
    print_r($_FILES['photo']);
    echo '</pre>';
    il n'y a plus de message D'HORREUR!!

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Tu n'as pas respecté le code que je t'ais mis, du coup on est pas plus avancé. (le print_r n'est paslà)

    Je le remet, et compare (ou fait un copier/coller)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // On affiche (provisoirement) le contenu du tableau $_FILES
    if(isset($_FILES)) print_r($_FILES);
     
     
    if (isset($_FILES['photo'])) {
    	... etc ...
    }
    Ce n'est pas pareil
    Le but ici, c'est de savoir ce que contient $_FILES (avant l'autre condition).
    Du coup, question : qu'est ce qui s'affiche ?

    Le code que tu as mis ne donnera rien vu que $_FILES['photo'] n'existe pas.
    Par contre, à tu vérifier ton formulaire, le nom du champ de type files (entre autre) ?
    C'est le plus important car c'est de là où commence les choses.

  6. #6
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    alors je vois que c'est différent mais je ne comprends pas pourquoi il ne vois pas photo
    c'est le meme message erreur qu'avant mais en plus Array()

    Array ( )
    Notice: Undefined index: photo in C:\wamp\www\trajecto\insc_voiturier_1.php on line 90

    Notice: Undefined index: photo in C:\wamp\www\trajecto\insc_voiturier_1.php on line 92

    Notice: Undefined index: photo in C:\wamp\www\trajecto\insc_voiturier_1.php on line 95
    Vous devez uploader un fichier de type png, gif, jpg, jpeg, ou bmp...

    et pour mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form enctype="multipart/form-data" id="mainForm" name="mainForm" method="post" action="ajout_voiturier.php" >
    <label for="photo">Ajoutez une photo</label> <input type="hidden" name="MAX_FILE_SIZE" value="200000"/> 
    <input type="file" name="photo" id="photo"/></pre></p>&quot;Vous n'avez pas de photo maintenant? Vous pourrez l'ajouter a tout momemt plus tard.&quot;
    <p>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 29/06/2009, 22h20
  2. [Forum] Script diaporama photo avec fonction "glob"
    Par marc.suisse dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/03/2009, 13h02
  3. Script upload de fichiers photos
    Par titeuflgdm dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/01/2009, 06h29
  4. problème avec script d'upload : variables indéfinies
    Par wilikev dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/10/2007, 12h26
  5. [JQuery] Upload avec script.aculo.us
    Par Ni4k dans le forum jQuery
    Réponses: 1
    Dernier message: 23/07/2007, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo