Transmission de valeurs de page en pages? :-(

coralie44 -  
 Coralie44 -
Bonjour,

voici mon probleme:

j'ai un formulaire A en javascript qui appelle une popup(en php) B, qui va authentifier ou non le nom de la personne saisie sur le form A.

Dans le cas l'authentification est correcte, la popup ouvre une page C ou sera intégré un formulaire en php: l'utilisateur n'aura pas a remplir certains champs car ceux ci auront été deja saisie sur le formulaire A.

le probleme est que je narrive pas a adresser les champs sur la page C;

Dois je forcement utiliser les sessions?(dailleurs jai tenté de les apprehender en etudiant un exemple, mais jai le meme message derreur suivant:Notice: Undefined variable: villedest in c:\documents and settings\bureau\www\test\reservance3.php on line 52.

voici la source de la popup B:
<HTML> 
<HEAD> 
<TITLE></TITLE> 
<script language="JavaScript"> 
function fenetre() 
{ 
window.open ("reservance3.php") 
window.close() 
} 
</script> 
</HEAD> 


<BODY bgcolor="#FFFFFF" text="#000033"> 

<? 
$nom=$_POST['nom']; 
$prenom=$_POST['prenom']; 
$villedest=$_POST['ville']; 
$heure1=$_POST['heure1']; 
$heure1b=$_POST['heure1b']; 
$heure2=$_POST['heure2']; 
$heure2b=$_POST['heure2b']; 
print ("<center> Bonjour $prenom $nom </center>"); 
// Données d'accès pour la connexion au serveur MySQL 
    $link=mysql_connect("localhost","root","config44") or die ("Impossible de se connecter au serveur"); 
// Sélection de la base de données à utiliser sur le serveur     
    $db = "omdb"; 
    mysql_select_db($db) or die ("impossible de se connecter à la base de données"); 

    $sql="Select * from agent where nomagent LIKE '$nom' and prenomagent LIKE '$prenom'"; 
    $result= mysql_query ($sql)    or die ("La requête a échoué"); 
    echo "<br>";     

// Les resultats     
     
    if ($data=mysql_fetch_array($result)) 
        { 
    echo "authentification reussie";?> 
            <BR> 
            <BR><form action="reservance3.php" method=post onsubmit="fenetre()"> 
            <i>Souhaitez vous effectuer une réservation de billets de train/ Bénéficier d'une avance sur frais</i> 
            <br> 
            <center><input type=submit value="OUI">&nbsp<input type=submit value="NON"></center><? 
        } 
             
            else 
                { 
                    //echo "<h1>"; 
                    //echo "<br>"; 
                    echo "mauvaise identification <br>"; ?> 
                    Cliquez <A HREF="" onclick="window.close()">ici</a> pour recommencer 
                    <? 
                                    } 
     
                mysql_close(); 
            

?> 
</form> 
</BODY> 
</HTML> 



Merci

une stagiaire tres en retard sur son projet :-(
A voir également:

5 réponses

stfm Messages postés 60 Statut Membre 16
 
Salut,

je te conseille d'utiliser des champs caches dans ton deuxieme formulaire pour faire suivre tes variables. Par exemple pour faire suivre nom :
<input type="hidden" name="nom" value="<?=isset($_POST["nom"])?$_POST["nom"]:""; ?>" />


stf
0
coralie44
 
merci mais ca ne fonctionne pas chez moi. Prise de doute, jai mis le input hidden ds la popup B et le formulaire C car je me suis mis a hesiter mais ca donne le meme resultat :-(

 popupb
html>
<? 
$nom=$_POST['nom']; 
$prenom=$_POST['prenom']; 
$villedest=$_POST['ville']; 
$heure1=$_POST['heure1']; 
$heure1b=$_POST['heure1b']; 
$heure2=$_POST['heure2']; 
$heure2b=$_POST['heure2b']; 
?> 
<head>
<script language="JavaScript"> 
function fenetre() 
{ 
window.open ("reservance30.php?nom=<?=$nom?>&prenom=<?=$prenom?>&villedest=<?=$villedest?>&heure1=<?=$heure1?>&heure1b=<?=$heure1b?>&heure2=<?=$heure2?>&heure2b=<?=$heure2b?>"); 
window.close() 
} 
</script> 
</head>
<body>
<? print ("<center> Bonjour $prenom $nom </center>");
// Données d'accès pour la connexion au serveur MySQL 
	$link=mysql_connect("localhost","root","config44") or die ("Impossible de se connecter au serveur");
// Sélection de la base de données à utiliser sur le serveur    
	$db = "omdb";
	mysql_select_db($db) or die ("impossible de se connecter à la base de données");

	$sql="Select * from agent where nomagent LIKE '$nom' and prenomagent LIKE '$prenom'";
	$result= mysql_query ($sql)	or die ("La requête a échoué");
	echo "<br>";	

// Les resultats	
	
	if ($data=mysql_fetch_array($result))
		{
	echo "authentification reussie";?>
			<BR>
			<BR><form action="reservance30.php" method=post onsubmit="fenetre()">
			<input type="hidden" name="nom" value="<?=isset($_POST["nom"])?$_POST["nom"]:""; ?>" />
<i>Souhaitez vous effectuer une réservation de billets de train/ Bénéficier d'une avance sur frais ?</i> 
<br> 

<form action="reservance3.php" onsubmit="fenetre()">
<input type=submit value="OUI"> <input type=submit value="NON"> 
<center><input type=submit value="OUI"> <input type=submit value="NON"></center><? 
        } 
             
            else 
                { 
                    //echo "<h1>"; 
                    //echo "<br>"; 
                    echo "mauvaise identification <br>"; ?> 
                    Cliquez <A HREF="" onclick="window.close()">ici</a> pour recommencer 
                    <? 
                                    } 
     
                mysql_close(); 
         

?> 
</form> 
</BODY> 
</HTML> 


et en le mettant ds le form c qui doit recevoir les données:
<html> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<script language="javascript" type="text/javascript"> 
function testerType2(form) 
{ 
if (form.reserv.checked) 
{ 
document.getElementById('reservation').style.display='block'; 
} 
else 
{ 
document.getElementById('reservation').style.display='none'; 
} 
if (form.avancesf.checked) 
        { 
            document.getElementById('avance').style.visibility='visible'; 
        } 
        else 
        { 
            document.getElementById('avance').style.visibility='hidden'; 
        } 
     
    }
	
	function resultat(form) 
{ mesChamps = document.forms[0];
mesChamps.res.value = mesChamps.depense.value * 0.75; 
} 

</script> 
<style type="text/css"> 
.direction { 
font-size: 12pt; 
font-weight: bold; 
text-decoration: underline; 
} 
</style>
</head> 
<body> 

<p><img src="Carene_logo.JPG" width="125" height="62"></p> 
<div class="direction">Direction des Ressources Humaines</div>
<form name="formulaire"> 
<input type="checkbox" name="reserv" value="reservat" onClick="testerType2(this.form);">Je souhaite effectuer une réservation de billets de train<br> 
<span id="reservation" style="display: none;"><!--  <H2> RESERVATION BILLETS DE TRAIN </H2>-->

<BR>
			<BR><form method=post>
			<H2> RESERVATION BILLETS DE TRAIN </H2>
			<U>TRANSPORT</U>
			<br><input type="hidden" name="villedest" value="<?=isset($_POST["villedest"])?$_POST["villedest"]:""; ?>" />

			<p>Destination : <? print (" $villedest "); ?></p>
		<p><input type="radio" name="fum" value="fumeur"> fumeur <input type="radio" name="fum" value="nonfumeur" > non fumeur</p>
		<p><input type="radio" name="classe" value="classe">1ère classe  <input type="radio" name="classe" value="classe" >2ème classe</p>
		<p><U>date de départ</U></p>
		Lieu du départ : <input type="text" name="villedep" size="30" maxlength="30"> Heure : <? print (" $heure1 "); ?>h<? print (" $heure1b "); ?></p>
		Lieu d'arrivée : <input ... value="<?=$variable?>"><?/* print (" $villedest ");*/  ?>Heure :<input type="text" name="heure1" size="2" maxlength="2"> h <input type="text" name="heure1b" size="2" maxlength="2"></p>
		
		<p><U>date de retour</U></p>
		<p>Lieu du départ : <input type="text" name="villeret" size="30" maxlength="30"> Heure : <? print (" $heure1 "); ?>h<? print (" $heure1b "); ?></p>
		<p>Lieu d'arrivée : <? print (" $villedest "); ?> Heure: <? print (" $heure2 "); ?>h<? print (" $heure2b ");?> </p> </span> 
<input type="checkbox" name="avancesf" value="avanc" onClick="testerType2(this.form);">Je souhaite beneficier d'une avance sur frais
<br>
<span id="avance" style="visibility: hidden;">Montant de la depense totale : 

<input type="text" name="depense" size="10" maxlength="10" OnBlur="resultat()"> €<BR>
Montant de l'avance accordée : <input type="text" name="res" size="10" maxlength="10" > €
 </span>


</form> 
</body> 
</html>  


merci de m'aider :-(, marre deux semaines que je suis sur ce prob arff
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
euh... question bête, mais pourquoi pas tout simplement un cookie ?

C'est justement fait pour transporter des infos d'une page à l'autre, non ?
0
JEROMAX Messages postés 275 Statut Membre 10
 
si tu peux faire du php, alors utilise des sessions, ça marche très bien !

[ JEROMAX ] 
http://www.zepixel.com http://www.jeromax.free.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Coralie44
 
oui mais pour les sessions, jai pas reussi a trouver un tutorial tres explicite.

J'ai essayé lexemple ci dessous d'un tutorial mais jai cette erreur qui s'affiche:
Notice: Undefined variable: login in c:\documents and settings\bureau\www\test\login.php on line 6

jai copié la source de ces 4 fichiers:
formulaire
<html> 
<head><title>Formulaire</title> 
</head> 
<body bgcolor=#ffffff> 
<form method="post" action="login.php"> 

<table border="0" width="400" align="center"> 
<tr> 
<td width="200"><b>Vôtre login</b></td> 
<td width="200"><input type="text" name="login"></td> 
</tr> 
<tr> 
<td width="200"><b>Vôtre mot de passe<b></td> 
<td width="200"><input type="password" name="password"></td> 
</tr> 
<tr> 
<td colspan="2"><input type="submit" name="submit" value="login"> 
</td></tr> 
</table> 
</form> 
</html> 


login
<? 
$login_defini = "phpdebutant";// on défini un login pour la démo 
$password_defini = "session"; // on défini un password pour la démo 

// On vérifie les valeur du formulaire 
if ( $login == $login_defini && $password == $password_defini ) 
{ 
// Si les password et login sont valides 

session_start();// on démarre une session 
// On enregistre les variables login et password dans la session en cours 
session_register("login");// Attention, pas de signe $ dans le session_register 
session_register("password"); 

header('location: afficher.php');// Redirection sur une page pour afficher le résultat 

} 
else{ 
// Si les password et login ne sont pas valides, on affiche un message d'erreur 
print 'Password ou login non valide'; 

} 

?> 


afficher.php
<? 
session_start();// on démarre la session 
// On affiche les variables enregistrées dans la sessions 
print 'Vôtre login est '.$login.' et vôtre password '.$password.'<br>'; 

// Simple non ? , maintenant fesons quelques vérifications 

if ( !session_is_registered("password") ) 
{ 
print 'Vôtre mot de passe n\'est pas enregistré <br>'; 
} 

// on affiche un lien pour terminer une session 
print '<a href="logout.php">Détruire la session</a><br>'; 
?> 


logout.php
<? 
session_start();// on démarre la session 

// Pour le fun on supprime une variable de session 
session_unregister("login"); 

// maintenant on détruit la session en cours, je vous conseil d'utiliser unset et destroy, ce n'est pas obligatoire, mais plus sécurisé dirons nous. 

session_unset(); // on efface toutes les variables de session 
session_destroy(); // on detruit la session en cours. 

// On renvoi sur la page afficher pour voir le résultat, uniquement pour ce test, si tout s'est effectué normalement, le login et password ne s'afficheront pas, car ils n'éxistent plus 
header('location: afficher.php') ; 
?> 


donc si qqun pouvait m'aider a corriger l'erreur ou si stf ou qqun d'autre peut me preciser ce que je dois rajouter concernant les champs cachés, ca m'aiderait.....:-( mon stage se termine le 26 ..snif

merci
0