Variable de session qui ne s'envoi pas...
Résolu
Céline
-
Barracuda8 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
Barracuda8 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je realise une petite application qui fera partie d'une plus grande.
C'est une page php qui permet à un utilisateur de changer son mot de passe.
Je recupere le login par rapport a la page index et je demande a l'utilisateur de rentrer un nouveau mot de passe dans 2 cases (une pour verification)
Malheureusement je n'arrive pas a envoyer ces 2 variables dans la page de validation :
Page de changement de mot de passe :
et la page de verif' :
La connexion et le demarrage de la session se fait dans le header...Je sais pas si j'ai étais clair donc si quelqu'un voit ou se trouve le soucis je suis preneuse ...Merci d'avance !
Je realise une petite application qui fera partie d'une plus grande.
C'est une page php qui permet à un utilisateur de changer son mot de passe.
Je recupere le login par rapport a la page index et je demande a l'utilisateur de rentrer un nouveau mot de passe dans 2 cases (une pour verification)
Malheureusement je n'arrive pas a envoyer ces 2 variables dans la page de validation :
Page de changement de mot de passe :
<?php $new_mdp=isset($_POST['new_mdp']) ? $_POST['new_mdp'] : ""; $verif_mdp=isset($_POST['verif_mdp']) ? $_POST['verif_mdp'] : ""; $_SESSION["new_mdp"]=$new_mdp; $_SESSION["verif_mdp"]=$verif_mdp; if (!empty($new_mdp) && !empty($verif_mdp)) { header("Location:http://localhost/Privacy_Risk/Front/valid_change_pass.php"); } include 'header.php'; ?> <div class="block1"> <h2>Modify your password</h2> <FORM METHOD="POST" ACTION="<?php echo $_SERVER['PHP_SELF']?>"> <table align='center'> <tr> <td align='left'> Login : </td> <td> <input type="text" name="log" value="<?php echo $_SESSION['log']; ?>" style="background-color: lightgrey" onFocus="javascript: this.blur()"> </td> </tr> <tr> <td align='left'> Password : </td> <td> <input type="password" name="new_mdp"> </td> </tr> <tr> <td align='left'> Password confirmation : </td> <td> <input type="password" name="verif_mdp"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" class="boite" name="submit" value="Send"> </td> </tr> </table> </FORM> </div> <?php include 'footer.php'; ?>
et la page de verif' :
<?php //echo"<meta http-equiv='refresh' content='2;url=http://localhost/Privacy_Risk/Front/authentificate/etape_2.php'>"; echo $_SESSION["new_mdp"]; echo $_SESSION["verif_mdp"]; include 'header.php'; ?> <div class="block1"> <h2>Modifier votre mot de passe</h2> <?php //if ($_SESSION["new_mdp"]==$_SESSION["verif_mdp"]) //{ $ins="UPDATE privacy_formulaire SET password='".$_SESSION["new_mdp"]."' verif_password='".$_SESSION["verif_mdp"]."' WHERE login='".$_SESSION['log']."'"; $req= mysql_query($ins) or die("Erreur SQL !<br/>".$ins."<br/>".mysql_error()." "); echo '<p class="valid_ok">The password has been changed.</p>'; //} ?> </div> <?php include 'footer.php'; ?>
La connexion et le demarrage de la session se fait dans le header...Je sais pas si j'ai étais clair donc si quelqu'un voit ou se trouve le soucis je suis preneuse ...Merci d'avance !
A voir également:
- Variable de session qui ne s'envoi pas...
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- Votre envoi est en cours de transport vers son site de livraison - Forum Consommation & Internet
- Votre envoi est réacheminé vers son site de distribution - Forum Consommation & Internet
- Programmer envoi sms - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
8 réponses
Salut,
Je ne vois pas trop où est l'erreur dans ton script. Mais d'emblée, je peux te dire qu'il te manque un session_start() avant d'utliser les variables sessions:
<?php
session_start();
echo $_SESSION["new_mdp"];
echo $_SESSION["verif_mdp"];
include 'header.php';
?>
Si tu ne conais pas trop les variables sessions, je peux te renvoyer sur ce post:
http://www.commentcamarche.net/forum/affich 6617865 variable session#dernier
Bonne journée,
Barracuda.
Je ne vois pas trop où est l'erreur dans ton script. Mais d'emblée, je peux te dire qu'il te manque un session_start() avant d'utliser les variables sessions:
<?php
session_start();
echo $_SESSION["new_mdp"];
echo $_SESSION["verif_mdp"];
include 'header.php';
?>
Si tu ne conais pas trop les variables sessions, je peux te renvoyer sur ce post:
http://www.commentcamarche.net/forum/affich 6617865 variable session#dernier
Bonne journée,
Barracuda.
Oups j'ai oublié de preciser qu'il se situais dans le header, je connais un peu les variables de sessions, pour avoir travailler sur une autre partie de mon appli...mais là je seche completement... Mais merci d'etre passé !
Re - salut!
En relisant ton code, je remarque que ton include du header se trouve après l'utilisation de tes variables sessions.
Je vais essayer de reprendre sur tes deux fichiers:
Le premier,
<?php
include 'header.php';
$new_mdp=isset($_POST['new_mdp']) ? $_POST['new_mdp'] : "";
$verif_mdp=isset($_POST['verif_mdp']) ? $_POST['verif_mdp'] : "";
$_SESSION["new_mdp"]=$new_mdp;
$_SESSION["verif_mdp"]=$verif_mdp;
if (!empty($new_mdp) && !empty($verif_mdp))
{
header("Location:http://localhost/Privacy_Risk/Front/valid_change_pass.php");
}
?>
Le second,
<?php
include 'header.php';
echo $_SESSION["new_mdp"];
echo $_SESSION["verif_mdp"];
?>
A noter: si tu fais ton session_start() dans le header.php, alors tu dois l'inclure avant d'utiliser tes variables sessions.
Si ca peut t'aider...
Bonne journée,
Barracuda.
En relisant ton code, je remarque que ton include du header se trouve après l'utilisation de tes variables sessions.
Je vais essayer de reprendre sur tes deux fichiers:
Le premier,
<?php
include 'header.php';
$new_mdp=isset($_POST['new_mdp']) ? $_POST['new_mdp'] : "";
$verif_mdp=isset($_POST['verif_mdp']) ? $_POST['verif_mdp'] : "";
$_SESSION["new_mdp"]=$new_mdp;
$_SESSION["verif_mdp"]=$verif_mdp;
if (!empty($new_mdp) && !empty($verif_mdp))
{
header("Location:http://localhost/Privacy_Risk/Front/valid_change_pass.php");
}
?>
Le second,
<?php
include 'header.php';
echo $_SESSION["new_mdp"];
echo $_SESSION["verif_mdp"];
?>
A noter: si tu fais ton session_start() dans le header.php, alors tu dois l'inclure avant d'utiliser tes variables sessions.
Si ca peut t'aider...
Bonne journée,
Barracuda.
C'est pas possible que je mette le header avant parce que j'ai plusieurs trucs qui me bloque l'utilisation du header(Location....) ensuite.
Mon header :
Dans mon conf, il y a la connection a la base de données!
Mon header :
<?php session_start(); include 'conf.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3/org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"></meta> <title>PrivacyRisk</title> <link rel=stylesheet href="css/template.css" type="text/css"> </head> <body> <div id="header"><h1>PrivacyRisk</h1></div> <div id="content">
Dans mon conf, il y a la connection a la base de données!
Ok, je comprend.
Si tu délocalises ton session_start du header.php et que tu le places directement avant l'utilisation de tes variables sessions, obtiens-tu de meilleurs résultats?
Si oui, tu pourrais essayer de le laisser dans le header.php pour ne pas compromettre d'autres fichiers et de recopier juste le session_start(); avant l'utilisation des variables dans les deux autres fichiers.
Dans ce cas, tu ferais appel deux fois à la fonction sessions_start() dans un même fichier. Ce n'est pas très propre mais je ne pense pas non plus que mettre un session_start() dans un header.php soit toujours la meilleur idée...
Cordialement,
Barracuda
Si tu délocalises ton session_start du header.php et que tu le places directement avant l'utilisation de tes variables sessions, obtiens-tu de meilleurs résultats?
Si oui, tu pourrais essayer de le laisser dans le header.php pour ne pas compromettre d'autres fichiers et de recopier juste le session_start(); avant l'utilisation des variables dans les deux autres fichiers.
Dans ce cas, tu ferais appel deux fois à la fonction sessions_start() dans un même fichier. Ce n'est pas très propre mais je ne pense pas non plus que mettre un session_start() dans un header.php soit toujours la meilleur idée...
Cordialement,
Barracuda
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben ben j'ai une erreur :
Erreur SQL !
UPDATE privacy_formulaire SET password='111' verif_password='111' WHERE login='plout@hotmail.fr'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'verif_password='111' WHERE login='plout@hotmail.fr'' at line 1
D'habitude il me fais ca quand une de mes variables est vide, en l'occurence il me dit qu'il y a quelque chose dans toutes...ca peut provenir de quoi a part d'une variable vide ?
Erreur SQL !
UPDATE privacy_formulaire SET password='111' verif_password='111' WHERE login='plout@hotmail.fr'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'verif_password='111' WHERE login='plout@hotmail.fr'' at line 1
D'habitude il me fais ca quand une de mes variables est vide, en l'occurence il me dit qu'il y a quelque chose dans toutes...ca peut provenir de quoi a part d'une variable vide ?
Ok!
A la lecture de ta requête, je suppose que cette fois, les varaibles sessions sont bien passées, c'est déjà ca!
Je vois aussi une erreur dans ta requête, il manque une virgule:
UPDATE privacy_formulaire SET password='111', verif_password='111' WHERE login='plout@hotmail.fr' ;
Un point-virgule à la fin c'est pas mal aussi.
Courage!
A la lecture de ta requête, je suppose que cette fois, les varaibles sessions sont bien passées, c'est déjà ca!
Je vois aussi une erreur dans ta requête, il manque une virgule:
UPDATE privacy_formulaire SET password='111', verif_password='111' WHERE login='plout@hotmail.fr' ;
Un point-virgule à la fin c'est pas mal aussi.
Courage!
Ah oui c'est ca ! Merci beaucoup !!Par contre je sais pas pourquoi du coup il a voulu m'envoyer les données mais bon ca marche en tout cas !
Encore merci et bonne journée !
Encore merci et bonne journée !