Petit prob denregistrement de variables dans session
Un peu brouillon tout ca , perso je dirai que ca vient de la :
<?
if(!empty($_COOKIE["pseudo"]) && !empty($_COOKIE["clef"])){
if(verif_session_by_cookie($_COOKIE["pseudo"],$_COOKIE["clef"])){
$sql = "SELECT pseudo,pass FROM ".$table_membres." WHERE pseudo='".$pseudo."' AND clef='".$clef."'";
$query = mysql_query($sql) or die("Erreur sur $sql :<br><br>".mysql_error());
$data = mysql_fetch_array($query);
$pseudo = $data["pseudo"];
$pass = $data["pass"];
// Insertion des valeurs dans la session
$pseudo = $_SESSION["pseudo"];
$pass = $_SESSION["pass"];
}
else
{
$action = "erreur_ident";
session_destroy();
setcookie("pseudo");
setcookie("clef");
}
}
?>
zebdinou pour les intimes / Blog : http://www.zebden.fr
Normalement ca doit pas venir de là vu que pour le moment je m'identifie sans utiliser les cookies, car ds mon form.php j'ai la possibilité de rester connecté pendant plusieurs jours, et là ca installe un cookie.... Donc normalement ce n'est pas ca....
Ce que je veux faire c'est insérer des variables dans ma session j'ai donc fais comme ceci :
$_SESSION["pseudo"] = $pseudo;
$_SESSION["pass"] = $pass;
Une fois identifié, lorsque j'arrive sur ident_two, tout fonctionne, les variables sont bien présentes dans la session, mais c'est une fois que je change de page ($action=publication) les variables ne sont pas gardées en mémoire dans la session ?!?
D'où pourrait venir le problème ?
Merci d'avance
Je te dis ca vient problement d'une condition executée alors qu'elle ne devrait pas (logiquement) et il y a bien un session_destroy() qui a mon avis est executé au changement d'action.
essai d'enlever, test , tu verra et t'as rien à perdre.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Je viens de tester et ca fonctionne pas :(
De toute facon si la session etait detruite je reviendrait sur le formulaire, or je ne reviens pas sur le form... :-\
Tu aurais une autre idée ?
On te l'a peut-être déjà dit mébon l'enregistrement des valeurs dans une session ne se fait pas comme ça:
// Insertion des valeurs dans la session
$pseudo = $_SESSION["pseudo"];
$pass = $_SESSION["pass"];
mais comme ceci:
$_SESSION["pseudo"] = $pseudo;
$_SESSION["pass"] = $pass;
car ce que tu as écrit est illogique en effet, si on prend ta première méthode tu remplaces les valeurs de tes variables par celles de la session qui est en l'occurence vide! Et j'ai remarqué que tu as fait cette erreur à deux reprises dans ton script(j'ai pas tout lu)...
Mais ce qui est encore plus illogique c'est que ton script s'excute avec cette erreur et semble te donner les bonnes données Oo
Encore un conseil, essaye de réduire la longue de ton script en la décompassant en plusieurs page (exemple: un page ident et un action...) enfin c'est une question d'abitude(c'est mieux d'avoir plusieurs pages bien lisible qu'une seul à ne plus s'y retrouver) et de surcroît, celà facilite le débogage.^^ Celà dit, celà ne tient qu'à moi...
et:
/*Et recupération des valeurs /!\de la/!\ session ce fait comme ceci */
$pseudo = $_SESSION["pseudo"];
$pass = $_SESSION["pass"];
Ouais je suis d'accord decompose en plusieurs pages parce c'est brouillon et assez difficile de trouver l'erreur.
Ensuite tu dis que $_SESSION['truc'] n'existe pas mais ca ne te renvoie pas le formulaire donc les sessions existent.
Ca renvoie sur quelle action ?
zebdinou pour les intimes / Blog : http://www.zebden.fr
Je pense que tu devrais pas faire ca :
$pseudo = $data["pseudo"];
$pass = $data["pass"];
mais
$pseudo = $_POST['pseudo'];
$pass = $_POST['pass'];
tu recupere directement à patir du formulaire et non de la base de donnée et ensuite tu enregistres
http://drifting01.free.fr - Je freine le versant schizo
(...)
C'est une verification de cookie , pas une validation de formulaire...
zebdinou pour les intimes / Blog : http://www.zebden.fr
Sedilbur, merci pour ta réponse, ne t'inquiète pas pour l'erreur que tu me signales, en fait c'est Xtrem Tourist je crois qui m'avais dit de faire comme cela et j'étais très sceptique sur sa réponse, j'avais donc fait la modification et vu que cela ne fonctionnait pas mais avait oublié de remettre en ordre pour le wall ;-)
Sinon oui je vais voir en decomposant les pages...
Zebden : oui la session existe bien mais en fait soit les variables $_SESSION["pseudo"]et $_SESSION["pass"] ne contiennent rien, soit elles ne sont pas transmises... Lorsque l'action est sur ident_two les variables de session sont ok mais quand l'action est sur publication, les variables ne sont plus transmises :-\
Ce n'est pas une' nouveauté avec easyphp 1.7 ?
Merci d'avance