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

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    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
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    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?
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  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
    Points : 3 947
    Points
    3 947
    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).
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    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!!
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  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
    Points : 3 947
    Points
    3 947
    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.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    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>
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  7. #7
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Ok, le fichier n'est donc pas du tout uploadé.

    Pour tenter de comprendre, simplifie (provisoirement) le formulaire, un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form enctype="multipart/form-data" name="mainForm" method="post" action="ajout_voiturier.php" >
    <input type="file" name="photo"/>
    <input type="submit" name="photo" id="photo"/>
    </form>
    (dans ton code, je n'ai pas vu de fermeture du formulaire </form>. Il y est peut être, mais vérifie le tout de même)

    Avec cet essai, qu'est ce que ça donne ?
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    j'ai tout enlever l'ancien formulaire et j'ai ajouter ton script copier coller

    ca donne la meme chose

    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...
    Inscription du r

    et je vois la case pour entrer une photo pour
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  9. #9
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Il y a vraiment un truc qui tourne pas rond

    Vu que je n'ai strictement aucune idée ce que contient l'intégralité de ta page qui contient le formulaire, et comme ça sera trop long à analyser, je te propose de créer (provisoirement) une nouvelle page php (genre essai_upload.php) et y mettre juste ce code :

    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
     
    <?php
    if (isset($_FILES)) {
    	print_r($_FILES);
    }
    ?>
     
    <html>
    <head>
    <title>ESSAI UPLOAD</title>
    </head>
    <body>
     
    <form enctype="multipart/form-data" name="mainForm" method="post" action="essai_upload.php" >
    <input type="file" name="photo"/>
    <input type="submit" name="photo" id="photo"/>
    </form>
     
    </body>
    </html>
    Tu pointe sur cette page, ensuite tu recherche cette photo, et valide le formulaire.
    La même page sera rechargée, et normalement le print_R() affichera ce que devrait contenir $_FILES.
    Tout ceci dans le but de faire quelque chose totalement indépendant à ta page principale, et voir si tu parviens à uploader quelque chose.
    Il faut au moins affirmer ce point.


    A coté de ça, il faudrait confirmer que le fichier (la photo) que tu tente d'uploder soit un fichier valide.
    Que ce soit une image (jpg, gif, png, etc ...)
    Du coup quel est sont type ?

    Que sa taille en octet soit valide (voir sa limite dans le php.ini "upload_max_filesize").
    Du coup, quel est sa taille ?


    Et en dernier, voir si ta page HTML ne comporte pas d'erreur HTML, genre oublier une fermeture de balise, etc ...
    Ca peu déboussoler ne navigateur, et au final ne rien retourner.
    Donc question : Comment est intégré le formulaire dans ta page ?

    Tu pourrais aussi faire un essai en ajoutant un champ de type texte, et voir si tu le reçois en POST. (dans ta page réel, pas essai_upload.php).
    Ceci juste pour savoir que tu peux transmettre quelque chose de ce formulaire.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    merci je vais essyer tes suggestions mais faut que je te dise que ces messages apparaiseent en chargeant la page et non en validant le formulaire
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    il ya quelque chose que je ne comprends pas

    citation
    Tu pointe sur cette page, ensuite tu recherche cette photo, et valide le formulaire.
    La même page sera rechargée, et normalement le print_R() affichera ce que devrait contenir $_FILES.

    ou est le print _R dont tu parles?
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  12. #12
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par monlou
    merci je vais essyer tes suggestions mais faut que je te dise que ces messages apparaiseent en chargeant la page et non en validant le formulaire
    A ben zut alors
    Ca change tout alors.

    Mets de coté mes remarques.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_FILES['photo'])) {
    	... etc ...
    }
    C'est bien ce code que tu as (très exactement) ? (et non if (isset($_FILES)) )

    Normalement tu ne devrait pas avoir ces erreurs, car ce code vérifie justement l'existence du fichier.
    Comme tu affiche juste la page (et non validé le formulaire), il est normale que le fichier n'existe pas.
    Tu ne devrait pas entrer dans la condition, donc ne pas avoir d'erreur.


    Enlève moi un doute.
    A quoi correspond exactement la ligne de code à la ligne 90 (celui qu'indique le message d'erreur)
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  13. #13
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par monlou
    ou est le print _R dont tu parles?
    Au tout début, ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_FILES)) {
    	print_r($_FILES);
    }
    ?>
    J'espère ne pas semer le trouble en utilisant tantot $_FILES et tantôt $_FILES['photo'].
    Dans chaque cas c'est justifié, ce n'est pas une erreur de ma part.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    excuse moi, je l,ai la

    alors quand je charge la page y a array ()

    et quand je valide le formulaire

    Array ( [photo] => Array ( [name] => 004.JPG [type] => image/jpeg [tmp_name] => C:\wamp\tmp\php89C7.tmp [error] => 0 [size] => 129667 ) )

    et c,est une photo de 136 K
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  15. #15
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    A ben, c'est tout bon.

    A mon sens, tout tient sur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_FILES['photo'])) {
    	... etc ...
    }
    Fait d'autres essais, jusqu'à se que les photos soient bien déposées là où elles devraient être ... valide tout ça.

    Ensuite, tu peux supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On affiche (provisoirement) le contenu du tableau $_FILES
    if(isset($_FILES)) print_r($_FILES);
    Ce code est là juste pour vérifier IN VISU que le fichier a été uploadé dans le répertoire temporaire.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    bon, la je en vois plus trop quoi faire ensuite, la je viens de charger la page avec


    if (isset($_FILES['photo']))


    et ca donne

    Array ( [photo] => Array ( [name] => 004.JPG [type] => image/jpeg [tmp_name] => C:\wamp\tmp\phpD68.tmp [error] => 0 [size] => 129667 ) )
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    bon alors, j'ai teste avec

    if (isset($_FILES[' ']))
    et ca me donne plus d'erreur
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    merci bcp pour tout RunCode Php et c,est juste pour te dire que j'ai rajouter mon script php de upload dans ma page ESSAI_UPLOAD
    et ca fonctionne tres bien. le fichier upload tres bien.

    c'est donc dire qu'il ya un bug dans ma page inscription
    alors , je vais recommencer une nouvelle page et rajouter graduellement des elements de script et rebatir mon formulaires et mes champs et tester au fur et a mesure pour voir s'il ya encore erreur et la je pourrais mieux voir d'ou ca vient.

    je me demande si ca viendrait pas des validations Spry de Dreamweaver
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

  19. #19
    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
    Points : 3 947
    Points
    3 947
    Par défaut
    bon alors, j'ai teste avec

    if (isset($_FILES[' ']))
    et ca me donne plus d'erreur
    A ben non
    Ce qui est dommage, c'est que tu ne sais pas faire les nuances, tu ne saisie pas bien la logique, se que DIT le code.
    Le code ci-dessus n'a aucun sens, oubli ce truc.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_FILES)) {
    ... suite du code ...
    }
    Ce code ce traduit : SI le tableau $_FILES existe (donc si la condition est VRAI) j'entre dans la condition (entre parenthèse) et je poursuit la suite du code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_FILES)) {
    ... suite du code ...
    }
    Ce code ce traduit : SI le tableau $_FILES existe ET contient un élément dont l'indice vaut "photo" (donc si la condition est VRAI) j'entre dans la condition (entre parenthèse) et je poursuit la suite du code.


    Ton code précédent vérifie si le tableau contient un élément dont la valeur serait un espace. Ca n'a pas de sens, vois tu.


    Théoriquement, si on met ce code ci-dessous, il ne devrait pas avoir d'erreur :
    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
    if(isset($_FILES['photo']))
    {
    	$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 !';
    		}
    	}
    }
    Ici, si on affiche juste la page, le formulaire, la condition sera FALSE, du coup, on entrera pas dans la condition, ce qui fait que le code se trouvant entre les parenthèses ne doit pas être exécuté.

    Des code de ce genre là j'en ai des tonnes, je ne vois pas pourquoi ça qu'est ce qui coince chez toi.

    Une question à tout hasard.
    Le formulaire est il dans la même page que ce code ?


    Pour tenter de comprendre, le forum permet de mettre un fichier en pièce jointe, mets le code de l'intégralité de ta page, faudrait voir l'ensemble du code, son déroulement.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    ah! ben oui, j'avais oublié de te dire que j'utilise plus les guillemets mais

    if(isset($_FILES['photo']))
    {
    et ce code la fonctionne tres bien pour uploader sur le formulaire essai_upload qu'on a créer hier avec le bout de formulaire enctype

    cependant , il ne fonctionne pas sur mon formulaire inscription

    1- il ne upload pas et il n'apparait aucun erreur sur ce formulaire
    2- le code est sur la meme page que le formulaire
    3-J'utilise une page traitement.php pour inscrire dans la base les donnees du formulaire, mais il y a un erreur indefined index a la ligne ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $photo = mysql_real_escape_string(htmlspecialchars($_POST['photo'] ))or die(mysql_error());
    CONSTATATION
    alors:, il ne reconnait pas 'photo provennant du formulaire inscription et en plus il ne upload pas dans mon répertoire 'image/

    CEPENDANT
    ce code marche tres bien dans le formulaire essai_upload

    c'est pourquoi, je pretends qu'il devrait y avoir un bug dans la page inscription quelque part mais je sais pas ou

    je joins la page insc_voiturier.php
    Fichiers attachés Fichiers attachés
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait!
    Mark Twain.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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