Cookie, création & appel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cookie, création & appel

par PsykoCors » 06 oct. 2005, 17:19

e script qui envoie le cookie doit être placé sur la racine de votre serveur et jamais dans un sous-répertoire
Et dire que j'ai galérer pas mal de temps alors que c'été ca ... Merci beaucoup :D

par PsykoCors » 05 oct. 2005, 10:27

OKi. des que je suis chez moi je teste tout ca et je vous dis :wink:

par Truc » 04 oct. 2005, 23:38

essaie de faire une redirection avec un Header
ou encore
Le script qui envoie le cookie doit être placé sur la racine de votre serveur et jamais dans un sous-répertoire, je ne dis pas que cela ne fonctionnera pas chez certains hébergeurs, mais je l'ai testé à plusieurs endroits et seul l'envoi depuis la racine fonctionnait parfaitement.

par DocType » 04 oct. 2005, 23:32

<?
setcookie("forum", "mon pseudo !", time()+(3600*24*30*365));
if (!isset($_COOKIE["forum"]))	{
	echo "pas de cookie";
}	else	{
	echo $_COOKIE["forum"];
}
?>
essaies ca :wink:

par PsykoCors » 04 oct. 2005, 23:21

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 ... :cry:

par DocType » 04 oct. 2005, 23:15

$pseudo= $_POST["pseudo"]; 
$mdp = $_POST["mdp"]; 
$sql = "SELECT * FROM membres WHERE pseudo='$pseudo'";
Attention, risque d'injection SQL... :roll:
<? echo "Vous êtes identifié sous --".$forum."--"; ?> 
Esaies ça, je sais que des fois en local ca règle le problème :wink:
Après, je ne vois pas de soucis quand à l'envoi du setcookie :?

par PsykoCors » 04 oct. 2005, 23:06

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 ...) :lol:

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()

par DocType » 04 oct. 2005, 22:59

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 :cry:


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

par PsykoCors » 04 oct. 2005, 22:57

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 :cry:


PS : j'ai configuré Fireofx pour accepter les cookies

par DocType » 04 oct. 2005, 22:50

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 :lol:
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 :lol: :P

par DocType » 04 oct. 2005, 22:48

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

par Truc » 04 oct. 2005, 22:45

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

par PsykoCors » 04 oct. 2005, 22:41

Oui, il est vide lors du changement de page donc je comprend pas trop ... Sinon juste pour info, ca consiste en quoi les sessions ?

par Cyrano » 04 oct. 2005, 22:34

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...:-k

par PsykoCors » 04 oct. 2005, 22:03

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 :?