Problème avec les sessions

Répondre
oneone
le 08/03/2005 à 10:48
oneone
Bonjour,

J'ai bossé sur un site en local avec easyphp et maintenant je suis en train de le mettre en ligne sur un hebergement.

Tous semble fonctionner correctement SAUF les sessions ! la page de connexion pas de probleme (j'ai eu un message warning header truc, j'ai déplacé tous ce qui s'affiche en bas de script et c ok).
Mais le problème est dans mon espace membre car quand on y accede pas de pb, mais si on actualise la page on reste sur cette page (donc la session semble toujour ok) mais sans les infos de la session et donc pas le login user (et sans ce login pas moyen d'afficher mes tableau de provenance Mysql).

Kk'un connait la soluce ?


pour info l'intro de mon espace membre est :

<?php
session_start();
if (!isset($_SESSION['id'])) {
header ('Location: index.php');
exit();
}
$login=$_SESSION['id'];
?>


Merci,
Michel
i M@N
le 08/03/2005 à 11:09
i M@N
Hello !
Essaye ça :
$_SESSION['id'] = $login;

@+...
One Love, One Heart, One Unity.
oneone
le 08/03/2005 à 11:32
oneone
Salut,

Cela ne fonctionne pas, car la j'indique une nouvelle valeur à $_session['id'] (c'est à dir "").

C'est ma variable $login qui doit être definie par session.

Le truc bizare c'est que quand on accede à l'espace membre la valeur de $login est bien definie mais des qu'on fait une action dans l'espace ou qu'on actualise la page POUF plus rien, mais on reste tout de même sur la page (sans les infos membre)
i M@N
le 08/03/2005 à 12:01
i M@N
Reuh ...

Je te fais un exemple :
<?php

session_start();

if (isset($_POST['variable'])) $variable = $_POST['variable']; else $variable = "";

$_SESSION['variable'] = $variable;

/* vérification : affiche le contenu de ta variable dans le cookie de session*/
echo $_SESSION['variable'];

?>


@+...
One Love, One Heart, One Unity.
oneone
le 08/03/2005 à 12:26
oneone
Je penses que je me sui mal expliqué.

Quand je transmet depuis ma page login.php :
<?php
session_start();
$_SESSION['id'] = $_POST['id']
header('Location: membre.php');
exit();
?>
J'arrive sans pb sur membre.php ou je lis :

<?php
session_start();
if (!isset($_SESSION['id'])) {
header ('Location: index.php');
exit();}

$login=$_SESSION['id'];
?>


A cette instant aucun problème ma variable $login est bien renseigné.
Part contre dés que l'on clic sur un lien (ex: membre.php?action=$act ) ou que l'on utilise le bouton actualiser du navigateur, la variable login est vide alors que la session est toujours ok puisque l'on est pas redirigé vers index.php.

Je m'arrache les cheveux sur ce truc :(
Pkoi chez moi cela fonctionne sans pb (easyphp) et pas sur mon hebergement ?! mystére...

AU SECOUR...A L'AIDE !!!
zebden
le 08/03/2005 à 13:10
zebden
essai un petit print_r($_SESSION) pour afficher le visu eu tableau session , voir si tes vars de sessions sont bien renseignées.
zebdinou pour les intimes / Blog : http://www.zebden.fr
oneone
le 08/03/2005 à 13:23
oneone
Merci pour le tuyo en effet

Quand je ma logue j'ai ca :
Array ( [id] => admin ) admin

Et dès que l'on actualise on à ca :
Array ( [id] => )

Je viens de faire le teste sur un autre hebergment et ca fonctionne sans pb.
Mais ca m'arrange pas car j'ai payé pour un an mon hebergement sur godaddy et j'aimerai que cela fonctionne dessus.

Je viens d'envoyer un mail à leurs support pour voir ce qu'il en pense.
Je crois que si il peuvent rien faire je vais demander le remboursement et faire un domain forwarding sur mon autre hebergeur.
oneone
le 08/03/2005 à 13:46
oneone
Je viens de faire un phpinfo() sur les 2 hebergeurs.

Le truc que je capte pas c'est que pour la partie session, ils ont exactement les même param. donc cela devrait fonctionner !
i M@N
le 08/03/2005 à 14:06
i M@N
Reuh ...

T'es sûr que t'as des
session_start();
sur toutes tes pages où tu te sers des sessions ?

@+...
One Love, One Heart, One Unity.
oneone
le 08/03/2005 à 14:22
oneone
Evidemment !
Sinon cela ne fonctionnerait pas chez moi ni sur le 2nd hebergeur ni sur le 3em que je viens de tester.

Pour moi le pb viens de l'hebergeur, j'attend la réponse de leurs part.
Répondre
LoadingChargement en cours