creation et changement de nom de cookie

Mammouth du PHP | 558 Messages

29 oct. 2006, 17:05

je voudrait creer un cookie qui n'as pas le nom par default car ils se melange avec celui du forum
dans le cookie en question je voudrais qu'il servent a conserver la connection je planche dessus depuis ce matin j'ai fait une recherche mais je n'est rien trouver peut-etre que c'est mon niveau qui est en cause car je suis en dessous des zeros pour reprendre ce terme j'ai ete sur le siteduzero.com mais je n'ai rien compris
merci de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 oct. 2006, 17:17

C'est pas très clair.... pour crée un cookie tu utilises setcookie() avec en 1er parmètre le nom de celui-ci... tu y met donc ce que tu veux. :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

29 oct. 2006, 17:32

<?php
session_start();
$timestamp_expire = time() + 1*24*60; // Le cookie expirera dans un jour
setcookie('aaa', '$pseudo_membre = $_SESSION['pseudo'] ;', $timestamp_expire); // On écrit un cookie
?>
voila ce que j'ai mit mais cela ne fonctionne pas
message d'erreur

Code : Tout sélectionner

Parse error: syntax error, unexpected T_STRING in /home/hakazizi/public_html/connexion2.php on line 4

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 oct. 2006, 17:42

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 ="

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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'];

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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"

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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
Modifié en dernier par hakazizi le 29 oct. 2006, 20:39, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 oct. 2006, 20:31

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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 *

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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']; 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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]

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 558 Messages

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