creation et changement de nom de cookie

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 : creation et changement de nom de cookie

par hakazizi » 01 nov. 2006, 19:49

tu n'as pas modifié la ligne du setcookie comme dit au début :-k
voila j'ai rectifier sa colle mieux avec ce que j'ai en realiter
je ne peut pas laisser trop longtemps car je fais les test directement sur le site
et voici la page ou est le formulaire de connection

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Document sans nom</title> <style type="text/css"> <!-- .footer {font-family:HeliosBlack;font-size:9px;color:#474747;} .Style9 {color: #000000} .Style10 {font-weight: bold; font-size: 9px; font-family: Verdana;} .Style12 {font-size: 9px; font-weight: bold;} --> </style> </head> <body> <form name="form1" method="post" action="/connexion2.php"> <div align="center"> <p>&nbsp;</p> <table width="256"> <tr> <td width="169"><div align="center"><span style="color: #000000"><span class="Style10">Identifiant :</span></span></div></td> <td width="75"><div align="center"><span style="color: #000000"> <input name="pseudo" type="text" class="Style10" id="pseudo" size="15"> </span></div></td> </tr> <tr> <td><div align="center" class="Style9"> <label> <span class="Style12"><font face="Verdana" style="font-size: 8pt">Votre mot de passe :</font></span></label></div></td> <td><div align="center"><span class="Style9"> <input name="pass" type="password" class="Style10" id="pass" size="15"> </span></div></td> </tr> <tr> <td colspan="2"><div align="center"><a href="index.php?page=recupass" class="Style9"><strong>Mot de passe perdu ? </strong></a></div></td> </tr> <tr> <td colspan="2"><div align="center"><span class="Style9"> <input name="Submit" type="submit" class="Style10" onClick="this.value='Connexion en cour'" value="Connexion"> </span></div></td> </tr> </table> <p><strong><label></label> </strong></p> </div> <div align="center"><span class="footer"> </span> </div> </form> </body> </html>

par Truc » 01 nov. 2006, 19:41

tu n'as pas modifié la ligne du setcookie comme dit au début :-k

par hakazizi » 31 oct. 2006, 21:21

on m'as conseiller de mettre toute la page donc voila ou j'en suis j'ai effectuer plusieur modif mais elle n'apporte rien je vous met donc la page ou j'ai inserez le script de creation de cookie
edition du code
quand le debut est
<?php
session_start();
$pseudo_membre = (isset($_COOKIE['pseudo'])) ? $_COOKIE['pseudo'] : $_POST['pseudo']; // on teste l'existence du cookie si oui on affecte sinon on récupère la valeur POST (issue d'un formulaire en principe)
{
$timestamp_expire = time() + 1*24*60; // Le cookie expirera dans un jour
setcookie('pseudo', '$pseudo_membre = $_SESSION;', $timestamp_expire); // On écrit un cookie 
}
$pseudo_membre =  $_COOKIE['pseudo'];
$_SESSION['pseudo'] =  $_COOKIE['pseudo'];
require("config.inc.php");
mysql_connect($server,$user,$pass);
j'ai le meme probleme
et le code ci-dessous pas de cookie cree

Code : Tout sélectionner

<?php session_start(); $timestamp_expire = time() + 1*24*60; // Le cookie expirera dans un jour $pseudo_membre = (isset($_COOKIE['pseudo'])) ? $_COOKIE['pseudo'] : $_POST['pseudo']; // on teste l'existence du cookie si oui on affecte sinon on récupère la valeur POST (issue d'un formulaire en principe) $pseudo_membre = $_COOKIE['pseudo']; $_SESSION['pseudo'] = $_COOKIE['pseudo']; require("config.inc.php"); mysql_connect($server,$user,$pass); mysql_select_db($dbase); $pseudo = htmlentities($_POST['pseudo']) ; //On recupère le pseudo et le pass $sql = mysql_query("SELECT * FROM membre WHERE pseudo = '".$pseudo."'"); $sql2 = mysql_fetch_array($sql); if($sql2['bloque'] == 1) { echo'<center><b>Votre compte a été bloqué par un administrateur !</b></center>'; exit(); } if($sql2['bloque'] != 1) { $pass = htmlentities($_POST['pass']) ; $date = date("d/m/Y|H:i:s"); mysql_query("UPDATE membre SET derniereConection ='".$date."' WHERE pseudo ='".$pseudo."'"); if ($pseudo != NULL AND $pass != NULL) //S'ils sont pas vident { $reponse = mysql_query ("SELECT * FROM membre WHERE pseudo = '".$pseudo."'"); //On recupère les infos à partir du pseudo $donnees = mysql_fetch_array($reponse); $verif = $donnees['pass']; $id = $donnees['id']; $pseudo_sql = $donnees['pseudo']; $confirm = $donnees['confirm']; if($pass != $verif) //On verifie que le pass entré est égale à celui de la BDD, si le passe est différent { $reponse = 'Votre identifiant ou votre mot de passe est incorrect ou votre compte n\a pas été valider, regardez vos mails'; $redirection = 'index.php'; //On va rediriger vers le formulaire de connexion } else //Sinon tout est bon { $_SESSION['pseudo'] = htmlentities($_POST['pseudo']) ; //On créé une variable session avec le pseudo $redirection = 'index.php?page=member'; //On redirige vers l'espace membre $reponse = 'Connexion en cour...<br> <a href="membre.php">Rejoindre directement l\'Espace membre</a>'; $date = date("d/m/Y"); if($sql2['dernier_jour_presence'] != $date) { mysql_query("UPDATE membre SET presence = presence+1 WHERE pseudo = '".$pseudo_sql."'"); mysql_query("UPDATE membre SET dernier_jour_presence = '".$date."' WHERE pseudo = '".$pseudo_sql."'"); mysql_query("DELETE FROM `PTP` WHERE `crediteur` ='".$pseudo_sql."'"); } } } } echo"<script>location.replace('$redirection')</script>"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Document sans nom</title> <style type="text/css"> <!-- .Style8 {font-family: Verdana; color: #808080; font-weight: bold; font-size: 9px; } .Style8 {font-family: Verdana; color: #808080; font-weight: bold; font-size: 9px; } .footer {font-family:HeliosBlack;font-size:9px;color:#474747;} --> </style> </head> <body> </body> </html>
je pensait a tord que si je mettait toute la page se serait un peut trop lourd mais la je me rend vraiement compte que si on n'as pas toute les infos on avance que tres lentement...
very sorry :oops: :(

par Truc » 31 oct. 2006, 01:26

oui et cela ne m'affiche que des message d'erreur diferend a l'endroit ou je le met dans la page connection2.php
voici un des message d'erreur
Ce qui est sûr c'est que ce n'est pas ce post qui comporte ces erreurs mais ton script... donc sans code psa d'explications.
et quand je fait une demande du style"echo $pseudo_membre;"
j'obtient"$pseudo_membre = $_SESSION"
J'ai l'impression que tu n'as pas changé le script de départ, création du cookie avec "$pseudo_membre = $_SESSION".
Dans ce que tu montres il n'y a plus de cookie :-k]
Je parlais du code... il n'y a plus de $_COOKIE
As tu vraiment besoin d'exécuter une requête ?]
en principe oui
Ok peut être mais si tu ne te sert pas du résultat ça ne sert à rien...

par hakazizi » 30 oct. 2006, 21:05

As tu regardé le code et suivi le lien proposé ? ]
oui et cela ne m'affiche que des message d'erreur diferend a l'endroit ou je le met dans la page connection2.php
voici un des message d'erreur

Code : Tout sélectionner

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
et quand je fait une demande du style"echo $pseudo_membre;"
j'obtient"$pseudo_membre = $_SESSION"
Dans ce que tu montres il n'y a plus de cookie :-k]
le cookkies est toujours present car en allant le cherchez dans "C:\Documents and Settings\AZIZI.TEST\Local Settings\Temporary Internet Files" je le trouve
Et au final il fait quoi ce script ?]
j'ai effectuer un changement dans une application d'achat via paypal au retour sur le site je ne suis plus connecter mais si il y a une autre solution que les cookkies (hors javascript je suis preneur)
As tu vraiment besoin d'exécuter une requête ?]
en principe oui
Que veux tu faire avec le pseudo en session ?]
tout le script est baser dessus
Important :
N'oublis pas les balises
 lorsque tu postes ![/color][/quote]
ok je vais essayer de faire attention sorry

par Truc » 30 oct. 2006, 00:44

As tu regardé le code et suivi le lien proposé ?

Dans ce que tu montres il n'y a plus de cookie :-k

Et au final il fait quoi ce script ?
As tu vraiment besoin d'exécuter une requête ?
Que veux tu faire avec le pseudo en session ?

Important :
N'oublis pas les balises
 lorsque tu postes ![/color]

par hakazizi » 29 oct. 2006, 21:54

<?php
session_start();
require("config.inc.php");
include("admin/functions.php");
$pseudo_membre = $_SESSION['pseudo'];
mysql_connect($server,$user,$pass);
mysql_select_db($dbase);
$page = stripslashes(htmlentities($_GET['page']));

$sql = mysql_query("SELECT * FROM membre WHERE pseudo = '".$pseudo_membre."'");
$sql2 = mysql_fetch_array($sql);
if($page == NULL)
{
echo'<script>location.replace(index.html)</script>';
echo'<meta http-equiv="refresh" content="1;URL=index.html">';
}
if (isset($_SERVER['HTTP_REFERER'])) {
    if (eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER'])) {
        $referer ='';
    }
    else {
        $referer = $_SERVER['HTTP_REFERER'];
    }
}
else {
  $referer ='';
}
mysql_query("INSERT INTO referf(lien) VALUES ('$referer')");
?>
mais il me manque cette ligne
$_SESSION['pseudo'] = $sql2['pseudo'];
voila
tu croi que je doit la rajoute cette ligne manquante
je ne l'ai ni dans config.inc.php ni dans admin/function.php

par Truc » 29 oct. 2006, 21:43

// on teste l'existence du cookie si oui on affecte sinon on récupère la valeur POST (issue d'un formulaire en principe)
$pseudo_membre = (isset($_COOKIE['aaa'])) ? $_COOKIE['aaa'] : $_POST['aaa']; 
Voire :
$pseudo_membre = (isset($_COOKIE['aaa'])) ? $_COOKIE['aaa'] : ( isset($_POST['aaa']). $_POST['aaa'] : "");
On ajoute un test sur l'exitence de la variable POST

Regarde ce post pour plus d'explications sur la syntaxe.

Pour affecter à la session tu dois avoir quelque chose du style :
$sql = mysql_query("SELECT * FROM membre WHERE pseudo = '".$pseudo_membre."'");
$sql2 = mysql_fetch_array($sql);
if($page == NULL)
{ 
   $_SESSION['pseudo'] = $sql2['pseudo']; 

par hakazizi » 29 oct. 2006, 20:44

<?php
session_start();
require("config.inc.php");
include("admin/functions.php");
$pseudo_membre = $_COOKIE['aaa'];
$_SESSION['pseudo'] = $_COOKIE['aaa'];


mysql_connect($server,$user,$pass);
mysql_select_db($dbase);
$page = stripslashes(htmlentities($_GET['page']));
$sql = mysql_query("SELECT * FROM membre WHERE pseudo = '".$pseudo_membre."'");
$sql2 = mysql_fetch_array($sql);
if($page == NULL)
{
etc...
les ligne qui nous interresse sont en rouge

Code : Tout sélectionner

Bienvenu(e) sur votre espace membre $pseudo_membre = $_SESSION;
le cookie contien ceci

Code : Tout sélectionner

aaa %24pseudo_membre+%3D+%24_SESSION%3B www.easy-cash-ptp.com/ 1024 669434368 29817742 3583983552 29817738 *

par Truc » 29 oct. 2006, 20:31

JE n'ai jamais dis de faire ceci :-k
$pseudo_membre = $_SESSION; 
Montre un peu ton code...

par hakazizi » 29 oct. 2006, 20:25

Non !
Si le cookie n'existe pas au chargement de page... je te laisse deviner la suite.

Pour récupérer la donnée du cookie tu dois faire ceci :
$pseudo_membre = $_COOKIE['aaa'];
après tu peux la réaffecter à la variable de session :
$_SESSION['pseudo'] = $_COOKIE['aaa'];
A toi d'organiser un peu le tout :wink:

Le déroulement devrait etre :
Test si le cookie existe
__ si oui récupération et affectation à la session
__ sinon requête pour récupérer le pseudo (je suppose qu'à la base c'étati pour ça)
____ si la requête est positive => affectation à la variable de session
____ sinon message d'erreur "pseudo inconnu"
le cookie existe mais il ils semblerais qu'il n'ai pas la bonne information a la place du pseudo il y a la requete

Code : Tout sélectionner

$pseudo_membre = $_SESSION;
la je ne comprend plus
j'ai ete verifier dans temporary internet files

par Truc » 29 oct. 2006, 20:16

Non !
Si le cookie n'existe pas au chargement de page... je te laisse deviner la suite.

Pour récupérer la donnée du cookie tu dois faire ceci :
$pseudo_membre = $_COOKIE['aaa'];
après tu peux la réaffecter à la variable de session :
$_SESSION['pseudo'] = $_COOKIE['aaa'];
A toi d'organiser un peu le tout :wink:

Le déroulement devrait etre :
Test si le cookie existe
__ si oui récupération et affectation à la session
__ sinon requête pour récupérer le pseudo (je suppose qu'à la base c'étati pour ça)
____ si la requête est positive => affectation à la variable de session
____ sinon message d'erreur "pseudo inconnu"

par hakazizi » 29 oct. 2006, 20:08

est-ce qu'il faut que je remplace partout "$_SESSION ['pseudo];" par "$_COOKIE['aaa'];"
car je n'est toujours pas de connection

par Truc » 29 oct. 2006, 20:01

Tout simplement comme ceci :
$pseudo_membre = $_COOKIE['aaa']; // avec le nom que tu as donné au cookie lors de sa création
Plus besoin de $_SESSION

par hakazizi » 29 oct. 2006, 18:37

C'est normal... regarde de près les exemples de la doc notamment pour le 2ème paramètre.

Tu ne dois y passer que la variable de session sans l'affectation => "$pseudo_membre ="
et pour la recuperation je fais comment?
$pseudo_membre = $_COOKIE['pseudo'];
$pseudo_membre = $_SESSION['pseudo'];
je suis pas sur la il ne faut pas ajouter un "or" entre les deux la j'y vais a taton
en fait je souhaiterait utiliser les deux
edit: je vien de faire plusieur essaie mais je n'ai toujours pas de connection apres avoir fermer la page la j'en suis la
$pseudo_membre = $_SESSION==$_COOKIE['pseudo'];
$pseudo_membre = $_SESSION['pseudo'];