Jump to content
Sign in to follow this  
Siol

Easyphp et sessions

Rate this topic

Recommended Posts

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.

Share this post


Link to post
Share on other sites

Bonjour,

Un problème d'initialisation ?

Quel est ton code ?

xpatval

Share this post


Link to post
Share on other 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']

Share this post


Link to post
Share on other 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.

Edited by Siol

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other 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 !)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...