Cookies et connexion auto => trop bizarre mon problème !

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 : Cookies et connexion auto => trop bizarre mon problème !

par Arcanis » 27 janv. 2007, 20:23

Et si tu essaye de remplacer le "include" par le contenu de cookie.php, ça marche?

(et sinon, perso, j'aurais plutôt gardé le session_start() du fichier qui inclu (en le mettant avant l'inclusion, cependant), et supprimé celui de l'inclusion)

par jay64 » 27 janv. 2007, 20:00

Ben j'ai le paramétrage par défaut d'IE7
Et je dirai que oui il se crée puisque le print_r me renvoie des valeurs !

par Aureusms » 27 janv. 2007, 19:52

Heu question bête : est ce que ton browser internet accepte les cookies ?

par jay64 » 26 janv. 2007, 18:21

Mais si, $num est définit puisque mon fichier cookie.php (appelé en premier il est vrai par mon include) attribue à $num la valeur de $_COOKIE['user_id']. Donc le reste s'execute.

Pour rappel, voici mon fichier cookie.php :
<?php 
session_start(); 

$login = $_COOKIE['pseudo']; 
$num = $_COOKIE['user_id']; 

if (isset($num))  
{ 
$_SESSION['connecte'] = 1; 
$_SESSION['login'] = $login; 
$_SESSION['user_id'] = $num; 
} 

//header ('Location: '.$HTTP_REFERER); 

?>
Rappel n°2 => la chose qui est surprenante dans mon histoire, c'est que tout cela fonctionne si je fais un lien cliquable vers cookie.php au lieu d'un include et par conséquent le rajout en fin de cookie.php de la ligne suivante :
header ('Location: '.$HTTP_REFERER); 

par Ajoloca » 26 janv. 2007, 17:51

Très bien, ton cookie est initialisé mais
if (isset($num))  
Si je regarde ton fichier
include('../scripts/cookie.php');

require_once('../Connections/connexion_bdd_mysql.php');

mysql_select_db($database_connexion_bdd_mysql, $connexion_bdd_mysql);
?> 
le fichier cookie.php est le premier, donc $num n'est pas définit, si $num n'est pas défini tu ne rentres jamais dans ta condition d'initialisation de variables de session.

par jay64 » 26 janv. 2007, 16:59

Si si, mon fichier cookie contient bien qque chose :

Pour preuve, voici le résultat que me donne le print_r()
Array
(
[pseudo] => Jay
[user_id] => 2
[roisduprono_data] => a:2:{s:11:\"autologinid\";s:0:\"\";s:6:\"userid\";i:-1;}
)

par Ajoloca » 26 janv. 2007, 16:18

Ça veux tout simplement dire que ton $_COOKIE ne contient rien

Dans ton fichier "cookie.php" ajoute ceci
 echo '<pre>';
print_r($_COOKIE);
echo '</pre>';
Et montre ce que ça donne.

par jay64 » 26 janv. 2007, 16:00

Non, désolé, mais ça ne change rien.
Alors pour voir si c'était pas ma page (et tout le reste du code qu'elle contient) qui me foutait le bordel, j'ai créé une autre page ultra simpliste avec uniquement ça :
<?
//session_start();

include('../scripts/cookie.php');
echo "pseudo à afficher : ".$_SESSION['login'];

?>
Comme tu vois, plus de session_start() puisqu'en commentaire et je demande juste à afficher le pseudo à l'aide de la variable $_SESSION['login']

Et bien rien n'y fait, ça ne s'affiche toujours pas alors que je suis persuadé que la variable de session appellée existe.

par Ajoloca » 26 janv. 2007, 15:18

Bonjour,

C'est normal,

Dans ton premier fichier "cookie.php" tu crées une session dans laquelle tu initialises certaines valeurs.
Dans le fichier qui l'inclus tu redémarres la session, donc toutes tes variable de session précédemment intialisées sont perdues.

Supprime tout simplement le session_start() dans le fichier qui demande l'inclusion.
<?

include('../scripts/cookie.php');

require_once('../Connections/connexion_bdd_mysql.php');

mysql_select_db($database_connexion_bdd_mysql, $connexion_bdd_mysql);
?> 

par jay64 » 26 janv. 2007, 15:12

Non, désolé, c'est pareil ! J'avais déjà testé .... !

Autre chose ?

par Invité » 26 janv. 2007, 14:59

Je pense comprendre :

ton session_start est après ton include. Essaye de le mettre avant.

par jay64 » 26 janv. 2007, 14:49

<?

include('../scripts/cookie.php');

session_start();

require_once('../Connections/connexion_bdd_mysql.php');

mysql_select_db($database_connexion_bdd_mysql, $connexion_bdd_mysql);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>.: Les Rois du Prono - Accueil :.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css">

par Aureusms » 26 janv. 2007, 14:15

Bonjour,

Peux tu monter le début des autres pages où tu fais ton include() ?

Cookies et connexion auto => trop bizarre mon problème !

par jay64 » 26 janv. 2007, 11:21

Bonjour,

Il m'arrive un truc que je n'arrive absolument pas à m'expliquer :

J'ai un fichier cookie.php qui contient le code suivant :
<?php
session_start();

$login = $_COOKIE['pseudo'];
$num = $_COOKIE['user_id'];

if (isset($num)) 
{
$_SESSION['connecte'] = 1;
$_SESSION['login'] = $login;
$_SESSION['user_id'] = $num;
}

//header ('Location: '.$HTTP_REFERER);

?>
Sur les autres pages du site, je fais un include de ce fichier tout au début et mes variables de session ($_SESSION['connecte'], $_SESSION['login'] et $_SESSION['user_id']') ne sont pas récupérées. Par conséquent ce que je veux faire ensuite ne marche pas.

Par contre, si je fais un lien cliquable vers le fichier cookie.php en rajoutant en fin de celui ci la ligne suivante
header ('Location: '.$HTTP_REFERER);
, alors je reviens bien sur ma page initiale avec mes variables de session correctement récupérées.

Y aurait-il une incompatibilté avec l'include ?

Comment pourrais-je le gérer sans le lien cliquable mais de manière auto ?

Merci