problème récupération de variable

Petit nouveau ! | 2 Messages

22 nov. 2006, 14:22

Bonjour,
j'ai un formulaire permettant de choisir un membre et de lui ajouter un media (photo, video ou autre)
mais je n'arrive pas dans le fichier de traitement php à récupérer la variable "id", ça me dit Undefined variable. Est ce que quelqu'un pourrait m'expliquer pourquoi?
Merci d'avance,
Voici mon code :

html:

Code : Tout sélectionner

<form method="post" enctype="multipart/form-data" action="upload_photo.php"> <label>id du membre : </label> <input type="text" name="id" size="30" /><br /> <input type="file" name="media" size="50"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="submit" name="upload" value="Uploader"> </form>
php :
   if( isset($_POST['upload']) ) 
{
// choisir traitement selon type
	$type_file = $_FILES['media']['type'];
    $content_dir = "../membres/membre".$id; // dossier où sera déplacé le fichier
	$img_dir = $content_dir."/img/";
	$sons_dir = $content_dir."/sons/";
	$autres_dir = $content_dir."/autres/";
	switch ($type_file) {
	    case 'image/jpg' || 'image/jpeg' || 'image/png ' || 'image/bmp' || 'image/gif'  :
	        echo "image/jpg";
			$current_dir = $img_dir;
	        break;
		case 'audio/mpeg' || 'audio/wav':
	        echo "audio";
			$current_dir = $sons_dir;
	        break;
		default :
		    echo $type_file." n est pas un format attendu";
			$current_dir = $autres_dir;
			break;
		}
	
	echo $current_dir;
	// on crée le répertoire que s'il n'existe pas.
	if(!is_dir($current_dir)){
	 mkdir ("$$current_dir", 0777);
    }
    $tmp_file = $_FILES['media']['tmp_name'];
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
// penser àrentrer les infos dans la bd
   
    // on copie le fichier dans le dossier de destination
   $name_file = $_FILES['media']['name'];
			
    if( !move_uploaded_file($tmp_file, $current_dir.$name_file) )
    {
        exit("Impossible de copier le fichier dans ".$current_dir);
    }

    echo "Le fichier a bien été uploadé";
}

?>

ViPHP
ViPHP | 1961 Messages

22 nov. 2006, 14:28

Bonjour,

Avant de pouvoir utiliser une variable transmise d'une autre page via la balise form tu dois la récupérer comme ceci
$id = (isset($_POST['id']) ? $_POST['id'] : '');
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Petit nouveau ! | 2 Messages

22 nov. 2006, 14:42

merci beaucoup!

Eléphanteau du PHP | 38 Messages

22 nov. 2006, 15:51

Bonjour,

Avant de pouvoir utiliser une variable transmise d'une autre page via la balise form tu dois la récupérer comme ceci
$id = (isset($_POST['id']) ? $_POST['id'] : '');

Salut, ce message n'a pour seul but que d'eclairer ma lanterne personnelle a moi que j'ai.
J'ai depuis toujours du mal avec cette syntaxe que tu utilise ici Ajoloca, mais je crois que je viens de la comprendre. J'aimerai donc savoir si mon raisonnement est bon :
En gros, et si j'ai bien compris donc, $id = (isset($_POST['id']) ? $_POST['id'] : ''); signifie que si $_POST['id'] existe (a été declaré, possede un valeur) on affecte cette valeur (l'expression entre le ? et les : ) a $id, sinon on affecte a $id la valeur apres les : donc ici rien ''

ViPHP
ViPHP | 1961 Messages

22 nov. 2006, 16:01

Bonjour,
C'est bien ça.
C'est l'équivalent de
if(isset($_POST['id'])){
   $id = $_POST['id'];
}else{
   $id = "";
}
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein