Aller au contenu

Easyphp et sessions


Sujets conseillés

Posté

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.

Posté

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

Posté (modifié)

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
Posté

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 :)

Posté

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 !)

Veuillez vous connecter pour commenter

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



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