Page 1 sur 2
Cookie, création & appel
Posté : 04 oct. 2005, 21:28
par PsykoCors
Bonjour,
J'ai en probleme pour faire un appel a mon cookie :
Dans une page, j'ai :
<? setCookie("forum",$pseudo) ;
echo "Cookie créé"."<br>"."Bienvenue $pseudo"; ?>
<!-- redirection -->
<meta http-equiv="refresh" content="3;URL=../index.php">
<? }
else {
echo "Erreur"; ?>
<!-- redirection -->
<meta http-equiv="refresh" content="3;URL=identification.php">
<? } ?>
Dans la page "index.php" j'ai a moment donné :
$forum=$_COOKIE["forum"];
echo "Vous êtes identifié sous --$pseudo--";
Seulement cela ne donne rien ... Alors que quand je met ce code par exemple dans la page ou je crée le cookie (pour tester), l'appel a ce cookie marche. Doit y avoir un truc que je n'ai pas compris

Peut etre un probleme avec ma redirection. J'ai tester aussi avec "time()+
nonbre" ca ne marche pas non plus
Merci de votre aide
Posté : 04 oct. 2005, 21:32
par Cyrano
Petite expérience instructive : essaye un truc:
<pre>
<?php
var_dump($_COOKIE);
?>
</pre>
Posté : 04 oct. 2005, 21:53
par DocType
ce qui me fait le plus peur, c'est qu'il s'agit d'une identification à un forum
et s on regarde le bout de code, ba on peut se logger en tant que n'importe qui

vu que la connexion est assurée par...le pseudo

Posté : 04 oct. 2005, 21:59
par PsykoCors
Premierement il y a une authentification qui vérifie le mot de passe.
Desio, le code code n'est pas terminé
Tersio, je fais ca pour moi, pour m'entrainer
Je teste ce que tu m'as dit Cyrano
Posté : 04 oct. 2005, 22:03
par PsykoCors
Donc :
effectivement il n'y a aucunne donnée dans le tableau sur index.php, mais les donnée apparaisse bien sur la page ou je crée le cookie^^ Mais j'ai donc toujours le meme probleme

Posté : 04 oct. 2005, 22:34
par Cyrano
Mouais, j'ai jamais été un amateur de cookies, je leur préfère de très loin les sessions. Mais un petit test m'a montré que le var_dump() aurait du te montrer le contenu du cookie... S'il est vide, il y a un problème...

Posté : 04 oct. 2005, 22:41
par PsykoCors
Oui, il est vide lors du changement de page donc je comprend pas trop ... Sinon juste pour info, ca consiste en quoi les sessions ?
Posté : 04 oct. 2005, 22:45
par Truc
juste une idée en passant (je pense pas que ce soit le problème puisque tu ne peut pas afficher le cookie avec var_dump) , mais tu fait:
$forum=$_COOKIE["forum"];
echo "Vous êtes identifié sous --$pseudo--";
ça ne serai pas plustot:
$forum=$_COOKIE["forum"];
echo "Vous êtes identifié sous --$forum--";
avec " $forum " a la place de " $pseudo "
Sinon tu peut verifier s'il est crée sur ta machine ce fameux cookie
Posté : 04 oct. 2005, 22:48
par DocType
Je me trompe où rien en doit se situer avant un cookie (affichage)? Dans son cas, si y'a du code qui affiche avant la gestion de ce cookie, ca expliquerait le problème ? Pourrais tu poster le code entier stp ?
Le sessions c'est la même chose que les cookies...mais ca se passe sur le serveur (resumé rapide). De plus, une variable session definie est dès lors disponible. Il n'y a donc pas besoin de recharger la page !
Pour ton script:
Premièrement vérifies que tu acceptes les cookies venant de ton site...
Desio, je ne vois pas l'utilité du rechargement de la page (tu peux stocker dans une autre variable car c'est assez chiant quand à la navigation)
Tersio, postes ton code pour qu'on l'examine
Posté : 04 oct. 2005, 22:50
par DocType
juste une idée en passant (je pense pas que ce soit le problème puisque tu ne peut pas afficher le cookie avec var_dump) , mais tu fait:
$forum=$_COOKIE["forum"];
echo "Vous êtes identifié sous --$pseudo--";
ça ne serai pas plustot:
$forum=$_COOKIE["forum"];
echo "Vous êtes identifié sous --$forum--";
avec " $forum " a la place de " $pseudo "
Sinon tu peut verifier s'il est crée sur ta machine ce fameux cookie
+1
tellement dans le code et les problèmes de config de son système que j'avais pas capté.
Je te vénère Truc

Posté : 04 oct. 2005, 22:57
par PsykoCors
Effectivement c'est bien vu 8)
Mais le soucis c'est que ce n'est pas réellement une erreur, c'est a force, de tester, retester, et reretester, donc je me suis au final gourer dans mes variable, mais ca ne marche pas qd meme
PS : j'ai configuré Fireofx pour accepter les cookies
Posté : 04 oct. 2005, 22:59
par DocType
Effectivement c'est bien vu 8)
Mais le soucis c'est que ce n'est pas réellement une erreur, c'est a force, de tester, retester, et reretester, donc je me suis au final gourer dans mes variable, mais ca ne marche pas qd meme
PS : j'ai configuré Fireofx pour accepter les cookies
Je me trompe où rien en doit se situer avant un cookie (affichage)? Dans son cas, si y'a du code qui affiche avant la gestion de ce cookie, ca expliquerait le problème ? Pourrais tu poster le code entier stp ?
Le sessions c'est la même chose que les cookies...mais ca se passe sur le serveur (resumé rapide). De plus, une variable session definie est dès lors disponible. Il n'y a donc pas besoin de recharger la page !
Pour ton script:
Premièrement vérifies que tu acceptes les cookies venant de ton site...
Desio, je ne vois pas l'utilité du rechargement de la page (tu peux stocker dans une autre variable car c'est assez chiant quand à la navigation)
Tersio, postes ton code pour qu'on l'examine
Posté : 04 oct. 2005, 23:06
par PsykoCors
Oki je poste. je previens le code doit être barbare, ca doit faire une semaine que je me suis réelement mis au php (qd j'ai un peu de temps, j'ai cour sinon ...)
indentification.php :
Code : Tout sélectionner
IDENTIFICATION
<table border=0>
<form method="post" action="valid_identification.php">
<tr><td>Pseudo :</td>
<td><input type="text" name="pseudo"></td></tr>
<tr><td>Mot de passe :</td>
<td><input type="text" name="mdp"></td></tr>
<tr><td colspan=2 align=center><input type="submit" name="submit" value="Envoyer"></td>
</form>
</table>
valid_identification.php :
<?
$nb = 3; // Nombre d'affichages souhaités sur une ligne
$host = "localhost"; // Serveur SQL
$login = "root"; // Login d'accés SQL
$pass = ""; // Password d'accés SQL
$hostname = "forum"; // Nom de la base de données
// connexion à la bdd
$bdd = mysql_connect($host, $login, $pass);
// selection de la table
mysql_select_db($hostname,$bdd);
//recupération des variables
$pseudo= $_POST["pseudo"];
$mdp = $_POST["mdp"];
//Enregistrement du mdp du pseudo donné
$sql = "SELECT * FROM membres WHERE pseudo='$pseudo'";
$req = mysql_query($sql);
$valid = mysql_fetch_array($req);
//Verification du mot de passe avec l'enregistrement précedant
$test_mdp=$valid['mdp'];
if ($test_mdp==$mdp)
{
//création du cookie
setCookie("forum",$pseudo,time()+5*60) ;
echo "Cookie créé"."<br>"."Bienvenue $pseudo"; ?>
<!-- redirection -->
<meta http-equiv="refresh" content="3;URL=../index.php">
<? }
else {
echo "Erreur"; ?>
<!-- redirection -->
<meta http-equiv="refresh" content="3;URL=identification.php">
<? }
//Pour recupérer la varuable du cookie :
$forum=$_COOKIE["forum"];
echo $forum
?>
index.php :
<?
$nb = 3; // Nombre d'affichages souhaités sur une ligne
$host = "localhost"; // Serveur SQL
$login = "root"; // Login d'accés SQL
$pass = ""; // Password d'accés SQL
$hostname = "forum"; // Nom de la base de données
// connexion à la bdd
$bdd = mysql_connect($host, $login, $pass);
// selection de la table
mysql_select_db($hostname,$bdd);
//recupération des données du cookie
$forum=$_COOKIE["forum"];
?>
<a href="newsujet.php">Créer un nouveau sujet</a>
<a href="membres/identification.php">S'identifier</a>
<? echo "Vous êtes identifié sous --$forum--"; ?>
<br>
<br>
<br>
<?
$sql = "SELECT * FROM `sujet`";
$req = mysql_query($sql);
while($sujet = mysql_fetch_array($req)){ ?>
<A HREF="message.php?id=<?=$sujet['id'];?>"><? echo $sujet['sujet']."<br>"; ?>
<? }
mysql_close();
?>
PS : je viens de regarder mon cookie avec firefox et il est bien créer avec les 5 minutes que j'ai défini avec time()
Posté : 04 oct. 2005, 23:15
par DocType
$pseudo= $_POST["pseudo"];
$mdp = $_POST["mdp"];
$sql = "SELECT * FROM membres WHERE pseudo='$pseudo'";
Attention, risque d'injection SQL...
<? echo "Vous êtes identifié sous --".$forum."--"; ?>
Esaies ça, je sais que des fois en local ca règle le problème
Après, je ne vois pas de soucis quand à l'envoi du setcookie

Posté : 04 oct. 2005, 23:21
par PsykoCors
Les problemes de sécurité, je m'en soucis pas pour l'instant, je preéfère me concentrer sur la codage (sa propreté mais surtout su le fait qu'il marche lol). mais je te remerci de me les souligner, ca serra bon pour la suite
Sinon ben ... ca me fais toujours la même chose ... Faudra que j'essaye sur une autre machine pour voir, on sur un serveur directement ... Mais j'aimerai bien qu'il marche sur le poste sur lequel je suis. j'avoue que je vois pas du tout d'ou vient le probleme ...
