Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 06/09/2011, 22h12   #1
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
Par défaut message d'erreur dans session

Bonsoir
Un nouveau problème se pose a moi.
Voici le code
page.php
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
<?php
session_start();
 
?>
<FORM method="POST">
   <input type="checkbox" name="choix1" id="1"><label for="1">Dossier 1</label><br>
   <input type="checkbox" name="choix2" id="2"><label for="2">Dossier 2</label><br>
   <input type="checkbox" name="choix3" id="3"><label for="3">Dossier 3</label><br>
   <input type="Submit" value="Valider">
</FORM>
<br><br>
<?php
 if(isset($_POST["choix1"])) { 
   $choix1 = "Le choix 1 a été selectionné 
   <br>";
	echo $choix1; 
 }
 
 if(isset($_POST["choix2"])) { 
   $choix2 = "Le choix 2 a été selectionné 
   <br>";
   echo $choix2;
 }
 
 if(isset($_POST["choix3"])) { 
   $choix3 = "Le choix 3 a été selectionné 
   <br>";
   echo $choix3;
 }
$_SESSION['choix1'] = $choix1;
$_SESSION['choix2'] = $choix2;
$_SESSION['choix3'] = $choix3;
 ?>
 <br>
 <a href="page1.php">suite</a>
et le code page1.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
 
if ( isset($_SESSION['choix1']) OR isset($_SESSION['choix2']) OR isset($_SESSION['choix3']))
{
echo $_SESSION['choix1'];
echo $_SESSION['choix2'];
echo $_SESSION['choix3'];
}
else{
header('Location: page.php');
}
?>
Donc je met en session les valeur de la / les checkbox.
Ca fonctionne très bien, sauf que sur la page.php, j'ai systématiquement ce message d'erreur:
Notice: Undefined variable: choix1 in E:\A_PC PORTABLE\www\choix des dossiers\page.php on line 30
Notice: Undefined variable: choix2 in E:\A_PC PORTABLE\www\choix des dossiers\page.php on line 31
Notice: Undefined variable: choix3 in E:\A_PC PORTABLE\www\choix des dossiers\page.php on line 32

Une idée svp???
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 22h17   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

déclares tes variables comme suit par exemple :

Code :
1
2
3
4
5
 
$choix1 = $choix2 = $choix3 = '';
 
if(isset($_POST["choix1"])) { 
...
Le message t'indique simplement que les variables ne sont pas définies.
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 22h32   #3
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
Le message d'erreur est logique.
Vous avez un formulaire suivi immédiatement par son traitement en php.
Or php est un langage du coté serveur. Donc au moment de l'envoi du html vers le client, aucune donnée ne saurait avoir été transmise au serveur et donc il n'y aura jamais rien dans les différentes variables .

Voici ce que je vous propose pour page.php
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
<?php
session_start();
if (!isset($_POST[' sub'])){
?>
<FORM method="POST">
   <input type="checkbox" name="choix1" id="1"><label for="1">Dossier 1</label><br>
   <input type="checkbox" name="choix2" id="2"><label for="2">Dossier 2</label><br>
   <input type="checkbox" name="choix3" id="3"><label for="3">Dossier 3</label><br>
   <input type="Submit" name="sub" value="Valider">
</FORM>
<br><br>
<?php
}
else{
 if(isset($_POST["choix1"])) { 
   $choix1 = "Le choix 1 a été selectionné 
   <br>";
	echo $choix1; 
 }
 
 if(isset($_POST["choix2"])) { 
   $choix2 = "Le choix 2 a été selectionné 
   <br>";
   echo $choix2;
 }
 
 if(isset($_POST["choix3"])) { 
   $choix3 = "Le choix 3 a été selectionné 
   <br>";
   echo $choix3;
 }
$_SESSION['choix1'] = $choix1;
$_SESSION['choix2'] = $choix2;
$_SESSION['choix3'] = $choix3;
}
 ?>
 <br>
 <a href="page1.php">suite</a>
Accessoirement, la pagep1.hp devient superflue, le traitement peut être fait dans la première page.
Qouique, je préfère nettement séparer les pages d'affichage des pages de traitement.

Bonne continuation
__________________
Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp. Et ce coup ci, elle ne nous a pas ratés
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 23h48   #4
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
Tout d'abord, merci de vos réponses

syl2095=> Les messages d'erreur ont disparu, par contre, lorsqu'il n'y a aucune checkbox cochées, la redirection ne se fait pas et je me retrouve sur page1.php.

papyphp=> J'ai les mêmes messages d'erreur mais seulement une fois que la checkbox a été validée.

Je cherche encore et encore..
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h09.


 
 
 
 
Partenaires

Hébergement Web