Page 1 sur 2
$_POST
Posté : 18 mai 2006, 15:35
par béka
Juste une petite question...
est-il possible de transférer des variables d'un formulaire grace a la method post vers plusieurs page.php et de les récuperer ensute avec $_POST[] ?
Posté : 18 mai 2006, 15:53
par charabia
sessions

Posté : 18 mai 2006, 15:54
par béka
oui bé non, je galere deja avec les sessions, je panne rien, j'arrive a les mettre en place sur mon site
Posté : 18 mai 2006, 15:55
par charabia
oui bé non, je galere deja avec les sessions, je panne rien, j'arrive a les mettre en place sur mon site
Heu j'ai pas compris lol
Posté : 18 mai 2006, 15:57
par béka
oui bé non, je galere deja avec les sessions, je panne rien, j'arrive a les mettre en place sur mon site
je voulais dire j'arrive pas* a les mettre en place sur mon site

Posté : 18 mai 2006, 15:58
par Ryle
C'est faisable.. faut que chacun de tes traitement affiche un formulaire contenant les valeurs récupérées de post et les renvoient automatiquement à la page suivante en javascript.. c'est lourd, pas joli, pas toujours efficace, d'une compléxité sans nom à maintenir.. m'enfin c'est faisable...
Sinon session, cookies, base de données, fichiers, ... restent ce qu'il y a de plus pratique pour conserver des données entre les pages.
Posté : 18 mai 2006, 16:01
par charabia
COmme le dit Ryle, c'est sûr que les sessions c'est un peu galère au début quand on ne comprend pas, mais tu verras que la solution que tu recherche est bien pire.
Penches toi sur les sessions et ça devriendra plus limpide

Regardes les différents tutos, testes leurs exos pour voir comment ça marche.
Posté : 18 mai 2006, 16:06
par béka
parce que en fait ce que je veux faire, c'est qu'un etudiant s''identifie grace a un formulaire avec ce code ci :
Code : Tout sélectionner
<form name="log_etudiant" method="post" action="login.php">
<p class="Texte">
Dernière classe fréquentée: <br>
<select name="derniere_classe"><?php
$db = mysql_connect("localhost", "root");
mysql_select_db("hippolyte",$db);
$query = "SELECT intitule FROM classe";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
$intitule = ($row['intitule']);
echo "<option>".$intitule."</option>";
}
Code : Tout sélectionner
</select><br><br>
Nom de l'étudiant : <br>
<input name="nom_etudiant" type="text" size="20">
<br>
<br>
prenom de l'étudiant : <br>
<input name="prenom_etudiant" type="text" size="20">
<br>
<br>
Mot de passe : <br> <input name="password" type="password" size="10"><br><br>
</p>
<input type="submit" value="Se connecter">
<input type="reset" value="Effacer">
</form>
Tout est vérifié grace a la page login.php dont voici le code :
<?php
/* login.php
description : page de login pour la selection à accès réservé du lycée hippolyte fontaine
Il propose de s'identifier par un couple nom de login/mot de passe
identificateurs et mots de passe sont conservés dans une BDD */
$connection = mysql_connect("localhost","root");
$db = mysql_select_db("hippolyte",$connection);
$sql = "SELECT nom_etudiant FROM etudiant WHERE nom_etudiant='".$_POST['nom_etudiant']."'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num > 0) //Le nom de l'étudiant a été trouvé
{
$sql = "SELECT nom_etudiant FROM etudiant WHERE nom_etudiant='$_POST[nom_etudiant]' AND prenom_etudiant='$_POST[prenom_etudiant]' AND derniere_classe='$_POST[derniere_classe]' AND password_etudiant='$_POST[password]'";
$result2 = mysql_query($sql);
$num2 = mysql_num_rows($result2);
if ($num2 > 0) // mot de passe correct
{
$_SESSION['auth']="yes";
/*$logname = $_POST['login'];
$aujourdhui = date("Y-m-d h:i:s");
$sql = "INSERT INTO login_entreprise(nom_login, date_login) VALUES('$logname', '$aujourdhui')";
mysql_query($sql); */
if (!headers_sent())
{
header ("Location: depot.php");
exit;
}
}
else //mot de passe incorrect
{
header("location: index.php?messageerreurmdp");
}
}
else //login absent
{
header("location: index.php?messageerreurlogin");
}
?>
et j'aimerais alors que dans la page depot.php ou l'etudiant rentre a nouveau son et prénom, les champs soient préremplis pour lui faciliter la tache.
Voila en gros mon probleme, pouvez vous m'aider ?[/php]
Posté : 18 mai 2006, 16:24
par charabia
Bé il faut juste que tu déclares tes sessions dès que c'est ok :
$_SESSION['nom'] = $_POST['nom_etudiant'];
$_SESSION['prenom'] = $_POST['prenom_etudiant'];
Et ensuite tu utilises $_SESSION['nom'] et $_SESSION['prenom'] sur tes autres pages
Posté : 18 mai 2006, 16:25
par Ryle
Il n'y a pourtant rien de sorcier dans les sessions, c'est un bête tableau que tu vas avoir sur chaque page ou tu les démarres, exactement ce que tu veux faire avec ton $_POST :
La ou tu récupères les données que tu souhaites conserver, tout ce que tu as à faire c'est :
session_start(); // demarre la session
$_SESSION['mesDonneesPost'] = $_POST; // colle ton tableau post dans la session
Et la où tu veux les utiliser tu fais
session_start(); // demarre la session
$monPOST = $_SESSION['mesDonneesPost']; // récupère ton tableau post de la session
et tu intérroges $monPOST['...'] comme tu le ferais avec $_POST. Pour les subtilités tu as tout le temps de voir venir, mais ça quand même, c'est pas ce qu'il y a de plus compliqué non plus, si ?

Posté : 18 mai 2006, 17:05
par béka
bon ben je vais essayé ce soir, et si je rencontre des problèmes je reviendrais... vous ne vous débarraserez pas de moi aussi rapidement.. lol

Posté : 18 mai 2006, 17:24
par béka
je dois mettre ca dans quelle page? login.php ?
Posté : 18 mai 2006, 17:33
par béka
Voila mon code de la page ou je veux réutiliser les champs saisis par l'utilisateur
<?php session_start(); ?>
Code : Tout sélectionner
<form action="enregistrement/enregistrement.php" method="post">
<p class="Texte">
Nom* : <br> <input name="nom_etudiant" type="text" size="20" value="<? echo $_SESSION['nom'] ?>"><br><br>
Prénom* : <br> <input name="prenom_etudiant" type="text" size="20" value="<? echo $_SESSION['prenom'] ?>"><br><br>
Et j'ai un message d'erreur, pourquoi?
et sur ma page ou l'utilisateur rentre les informations, voila mon code :
session_start();
$_SESSION['nom']=$_POST['nom_etudiant'];
$_SESSION['prenom']=$_POST['prenom_etudiant'];
[/code]
Posté : 18 mai 2006, 17:39
par Ryle
Quel est ton message d'erreur ? index non défini ?
sur quelle ligne ?
essaye de trouver quel index n'est pas encore défini à ce moment là.. utilise des print_r() pour voir ce que contiennent les tableaux..
pourquoi l'index n'est il pas défini ?
à quel moment devrait il être défini ?
d'où viennent les valeurs que tu essayes de mettre en session ?
...
Posté : 19 mai 2006, 08:26
par béka
voila mon message d'erreur :
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\hippolyte\etudiant\depot\depot.php:12) in c:\program files\easyphp1-8\www\hippolyte\etudiant\depot\depot.php on line 42
et la ligne 42 de la page en question correspond a :
<?php session_start();
Voila, pouvez me renseigner ?