Aller au contenu

Easyphp et sessions


Siol

Sujets conseillés

Bonjour,

Je programme actuellement un site en local avec Easyphp qui utilise des varaibles de session. Le probleme c'est que lorsque je declare une variable de session, elle n'existe que lors du premier chargement de la page, lorsque je navigue, la variable de session n'est plus reconnu il es ecrit : "Notice: Undefined index: username in e:\saves\works\websites\top.php on line 3"

J'ai essayer sur un hebergement et sa marche je comprend pas pourquoi sa ne marche pas en local. Vous avez une idée ?

Cordialement.

Lien vers le commentaire
Partager sur d’autres sites

J'imagine que ton hébergeur est configuré pour avoir, par défaut, la directive "register_globals" à "on", ce qui permet d'accéder aux données de cookies, sessions et formulaires en précisant juste le nom de la variable.

Dans ton cas, tu dois probablement utiliser la variable $username.

Cependant, sur EasyPHP (comme sur la plupart des hébergeurs), cette directive est réglée sur "off" par défaut, vu qu'elle était source de failles potentielles.

Il faut donc que tu utilises la variable $_SESSION['username']

Lien vers le commentaire
Partager sur d’autres sites

Non j'utilise $_SESSION['username']

Voici mon code en simplifié :

Page 1:

<?
session_start();

if(isset($_POST['done'])) {
connect();
if (mysql_fetch_array(mysql_query("SELECT * FROM members WHERE username='$username' and password='$password'"))) {
$_SESSION=mysql_fetch_array(mysql_query("SELECT * FROM members WHERE username='$username' and password='$password'"));
}
disconnect();
}

echo $_SESSION['username'];

?>

-> Ici sans renvoi "Siol".

Page 2:

<?
session_start();

echo $_SESSION['username'];
?>

-> Et quand j'arrive ici il m'envoi un message d'erreur.

register_globals ne change rien a sa.

Modifié par Siol
Lien vers le commentaire
Partager sur d’autres sites

As-tu défini le session.save_path dans le fichier php.ini ?

Par exemple:

session.save_path ="c:\Program Files\EasyPHP\tmp\"

Il faut bien évidemment que ce répertoire existe. Crée-le dans la négative :)

Il faut aussi redémarrer Apache, si Php tourne en module :)

Lien vers le commentaire
Partager sur d’autres sites

Cela vient peut-être du fait que mysql_fetch_array te renvoie un tableau indexé par des indices numériques (d'après la doc cela peut se configurer).

Essaie avec mysql_fetch_assoc() ... tu auras directement ton $_SESSION['username'] de créé (enfin normalement !)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...