Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2011, 19h22   #1
Invité de passage
 
Inscription : mars 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 10
Points : 3
Points : 3
Par défaut Problème récupération variable

Bonjour à tous,

j'ai un soucis avec mon formulaire. Je souhaite ajouter le lien d'une photo dans ma base de données mais aussi l'année de la photo.
Pour ça j'ai deux pages, mon index et une page transfert.

Le soucis c'est que je n'arrive pas a récupérer la valeur de l'année j'ai un message d'erreur "Notice: Undefined index: annee in ***********************on line 38


Voici le code de l'index
Code :
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Photos</title>
</head>
<body>
 
<?php
 
	// code bannière haut de page
	$title = 'Les photos';
	include ($_SERVER["DOCUMENT_ROOT"].'/inc/banniere.php');
		// code menu gauche
	include ($_SERVER["DOCUMENT_ROOT"].'/inc/menu.php');
 
		$title = "Les promotions";
		    // Page faisant appel aux sessions
 
    // Vérification de l'autorisation
    session_start();
 
    // Vérification de l'autorisation
   if (!isset($_SESSION['login'])) {
        // Si l'utilisateur n'est pas autorisé il est reconduit
        // sur le formulaire d'identification
 include ($_SERVER["DOCUMENT_ROOT"].'/connexion/index.php');
  include ($_SERVER["DOCUMENT_ROOT"].'/pasconnect.php');
  // header("Location: ../pasconnect.php");
        die();
    }  
 
    include ($_SERVER["DOCUMENT_ROOT"] . '/connexion/menugauche.php');
		?>
 
<div id="corps">	
<h1><?php echo $title ?></h1>
<h2>Les photos</h2>
<?php
 
// on se connecte à la base
include ($_SERVER["DOCUMENT_ROOT"].'/inc/connect.php');
// requête de selection de toutes les actualités		
$requete= "SELECT annee, id FROM photo group by annee";
 
//on evnvoie la requete a php pour ca on utilise mysql query qui prend en paramètre la requete a exécuter
$resultat = mysql_query($requete) or die ('ERREUR'.mysql_error());
while ($tableau = mysql_fetch_assoc($resultat)){
 
// Récupération des valeurs dans la table
$annee = $tableau['annee'];
$id = $tableau['id'];
 
 
// affichage des promotions 
echo '<ul><li><a href="photo.php?num='.$annee.'">Promotion '.$annee.' </a></li><br /></ul>';
}
?>
</div>
 
<div id="corps">
<h2> Ajouter une photo</h2>
<?php
 
$requete= "SELECT annee FROM promotion group by annee";
 
//on evnvoie la requete a php pour ca on utilise mysql query qui prend en paramètre la requete a exécuter
$resultat = mysql_query($requete) or die ('ERREUR'.mysql_error());
 
 
echo '<form name="formulaire_envoi_fichierpdf" enctype="multipart/form-data" method="post" action="transfertphoto.php">
    <p><font face="Verdana">
    <input type="file" name="fichier_choisi" size="20"><br>
    <br>
 
  Année de la promotion : <select name="promotion">';
while ($tableau = mysql_fetch_assoc($resultat)){
$annee = $tableau['annee'];
 
		echo '<option value ='.$annee.' selected>'.$annee.'</option>';
}
	echo'</optgroup>
 
</select>
 
    <input type="submit" name="bouton_submit" value="Envoyer">
    </font></p>
 
  </form>';
 
 
 
?>
</div>
 
	<?php
		// code bas de page
		include ($_SERVER["DOCUMENT_ROOT"].'/inc/bas.php');
	?>
	</body>
</html>

Et voici ma page de transfert

Code :
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
session_start();
   if (!isset($_SESSION['login'])) {
        // Si l'utilisateur n'est pas autorisé il est reconduit
        // sur le formulaire d'identification
       header("Location: ../pasconnect.php");
        die();
 
    }  
		include ($_SERVER["DOCUMENT_ROOT"].'/inc/connect.php');
  //------
  // Upload du fichier
  //------
 
  $tailleMax =2000000;
 
 
  //on vérifies que le champ est bien rempli:
 
  if(!empty($_FILES["fichier_choisi"]["name"])){
 
  	//nom du fichier choisi:
  	$nomFichier    = $_FILES["fichier_choisi"]["name"] ;
 
  	//nom temporaire sur le serveur:
  	$nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
 
  	//type du fichier choisi:
  	$typeFichier   = $_FILES["fichier_choisi"]["type"] ;
 
  	//poids en octets du fichier choisi:
  	$poidsFichier  = $_FILES["fichier_choisi"]["size"] ;
 
  	//code de l'erreur si jamais il y en a une:
  	$codeErreur    = $_FILES["fichier_choisi"]["error"] ;
	// Récupération du login pour l'insertion dans la table
	$login = $_SESSION['login'];
	$annee=$_POST['annee'];
 
 
 
  	//chemin qui mène au dossier qui va contenir les fichiers upload:
  	$chemin = "C:\Program Files (x86)\EasyPHP-5.3.6.0\www\img\\"; // !!!A CHANGER!!!
 
 
 
  	if ($tailleMax > $poidsFichier) {
 
  		if(copy($nomTemporaire, $chemin.$nomFichier)){ //il upload
 
  			//------
  			// Ajout dans la DB !!!
  			//------
 
 
  			@MYSQL_CONNECT($host,$user,$password);
 
  			@mysql_select_db($database);
 
  			$result=@mysql_query(
				"INSERT INTO Photo UPDATE membres SET img_nom='".$nomFichier."' where login='".$login."'") ;
				"INSERT INTO photo (img_nom, annee)
    VALUES ('$nomFichier', '$annee')";
 
 
  			if(!$result){
  			}
 
  			echo("<br>   Fichier uploadé !<br>") ;
  			echo   "<a href=TON_FORMULAIRE.htm>Retour</a>";
 
  		}
 
  		else{
  			echo("<br>   Upload échoué") ;
  			echo   "<a href=TON_FORMULAIRE.html>Retour</a>";
	  		}
 
  	}
  	else{
  		echo("<br>   Le fichier est trop gros, il ne peut pas dépasser 2Mo<br>") ;
  		echo   "<a href=TON_FORMULAIRE.html>Retour</a>";
 
 
  	}
 
  }
 
  else{
  	echo("<br>   Il faut choisir un fichier !<br>") ;
  	echo   "<a href=TON_FORMULAIRE.html>Retour</a>";
  }
 
 
 
  ?>
Merci d'avance pour votre aide
kakahouette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 19h37   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Il faut nommer le champ correspondant à l'aide de l'attribut name.
Code :
echo '<option value ='.$annee.' name="annee" selected>'.$annee.'</option>';
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 19h40   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
non Eric2a, c'est sur le select qu'on met le "name" !

il faut ici remplacer (ligne 77) :
Code :
  Année de la promotion : <select name="promotion">';
par
Code :
  Année de la promotion : <select name="annee">';
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 19h40   #4
Membre confirmé
 
Homme
Développeur informatique
Inscription : avril 2011
Messages : 196
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Italie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : avril 2011
Messages : 196
Points : 298
Points : 298
Ton select tu la nomé promotion ligne 77
Code :
<select name="promotion">
et dans le script PHP ligne 38 tu le récupere sous le nom annee
Code :
$annee=$_POST['annee'];
Tu devrais prendre le meme nom. C'est pour cela tu as "Notice: Undefined index: annee in ***********************on line 38
fab256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 19h45   #5
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Citation:
Envoyé par jreaux62
non Eric2a, c'est sur le select qu'on met le "name" !
Bah oui ! Qu'est ce qui m'a prit

Merci pour la prompte correction jreaux62.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 19h46   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par Eric2a Voir le message
Merci pour la prompte correction jreaux62.
Ca arrive, même aux meilleurs ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 01/07/2011, 20h07   #7
Invité de passage
 
Inscription : mars 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 10
Points : 3
Points : 3
Merci beaucoup c'était bien ça, je mettais mon name pas au bon endroit je me suis focalisée sur le name après option.


Merci encore bonne soirée
kakahouette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h07.


 
 
 
 
Partenaires

Hébergement Web