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. 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
  2. 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
  3. pour voir ce que tu reçoit mets

    <?php
    
    if(isset($_FILES))
    {
    
    echo '<pre>';
    print_r($_FILES);
    echo '</pre>';
    
    ......
    
    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."