Probleme avec indefined index en php

Bonjour ou bonsoir,

j'ai un probleme que j 'arrive pas a solutionner au sujet des messages indefined index
sur un script d'envoie de fichier 'photo
Je sais que c'est peut-être une erreur bête mais je la voie absolument pas

alors voici le script ET INDIQUER LES EMPLACEMENTS DES MESSAGES D INDEFINED INDEX
merci pour votre aide
<?php

    if(isset($_FILES))
{
	$fichier = basename($_FILES['photo']['name']); //===CI UN MESSAGE INDEX IDEFINE
	$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 !';
		}
	}
}
?> 


5 réponses

  1. Est-ce que le 'name' de ton « input type="file" » vaut "photo" ?
    Comme ça ?
    <input type="file" name="photo" />
    1. merci pour ton intéret
      oui le input contient photo comme nom mais pas le label

      <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>"Vous n'avez pas de photo maintenant? Vous pourrez l'ajouter a tout momemt plus tard."
  2. pour voir ce que tu reçoit mets

    <?php
    
    if(isset($_FILES))
    {
    
    echo '<pre>';
    print_r($_FILES);
    echo '</pre>';
    
    ......
    
    1. As-tu mis l'attribut enctype sur la balise <form> ?
      <form method="post" action="" enctype="multipart/form-data">
      1. quand je mets

        if(isset($_FILES))
        {

        echo '<pre>';
        print_r($_FILES);
        echo '</pre>';
        }

        je recois Array
        (
        )

        et pour l,autre question oui j'ai
        <form enctype="multipart/form-data" id="mainForm" name="mainForm" method="post" action="ajout_voiturier.php
    2. Essaye avec un petite image qui ne fait que quelques ko.
      Ton hébergeur a peut-être mis un limite (2Mo par défaut sur Apache).
      1. alors voila! quand je fais

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

        echo '<pre>';
        print_r($_FILES['photo']);
        echo '</pre>';

        il n'y a plus de message d'erreurs, on dirait qu'il faut preciser ['photo']
        a file mais je comprends pas pourquoi