Perte de valeur de variable session dans wamp
Dernière réponse : dans Programmation
Bonjour,
Tout est dans le titre.
J'utilise wamp pour tester un site avec connection ou admin ou membre, et quelque soit le temps que je met dans session.gc_maxlifetime de php.ini, je perd mes valeurs sessions et pas suivant un laps de temps précis c'est très irrégulier.
Quelqu'un à t'il une idée.
Merci
Tout est dans le titre.
J'utilise wamp pour tester un site avec connection ou admin ou membre, et quelque soit le temps que je met dans session.gc_maxlifetime de php.ini, je perd mes valeurs sessions et pas suivant un laps de temps précis c'est très irrégulier.
Quelqu'un à t'il une idée.
Merci
Autres pages sur : perte valeur variable session wamp
Lassé par la pub ? Créez un compte
Comme je galère depuis 3 jours, j'ai réinstallé Wamp et maintenant je n'ai plus d'acces aux bases j'ai ça:
Index of /phpmyadmin
[ICO] Name Last modified Size Description
[DIR] Parent Directory -
[DIR] contrib/ 05-Feb-2011 10:23 -
[DIR] documentation-gsoc/ 05-Feb-2011 10:23 -
[IMG] favicon.ico 04-Jan-2011 18:58 18K
[DIR] js/ 05-Feb-2011 10:23 -
[DIR] lang/ 05-Feb-2011 10:23 -
[DIR] libraries/ 05-Feb-2011 10:23 -
[DIR] pmd/ 05-Feb-2011 10:23 -
[DIR] scripts/ 05-Feb-2011 10:23 -
[DIR] setup/ 05-Feb-2011 10:23 -
[DIR] themes/ 05-Feb-2011 10:23 -
Ca y est je suis enfin sorti de ma M....
J'avais lu sur différent forum qu'il falait mettre une valeur. Là elle est à zéro, et dés que je rafraichi ma page je revien sur la fenêtre de connection. Preuve que la valeur de mon pseudo à disparu.
Je ne comprend pas.
J'ai fait un phpinfo() et je te joins la partie session si ça peu t'aider.
Merci
J'avais lu sur différent forum qu'il falait mettre une valeur. Là elle est à zéro, et dés que je rafraichi ma page je revien sur la fenêtre de connection. Preuve que la valeur de mon pseudo à disparu.
Je ne comprend pas.
J'ai fait un phpinfo() et je te joins la partie session si ça peu t'aider.
Merci
session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path c:/wamp/tmp c:/wamp/tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
Oui de ce côté pas de problème, je te joins le script de protection de page que j'ai avec son session_start();
<?php
session_start() ;
$MM_authorizedUsers = "membre,admin";
$MM_donotCheckaccess = "false";
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False;
if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true; } } return $isValid; }
$MM_restrictGoTo = "../Index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
Tu as un problème de condition sur la ligne 21. Tu exécute isAuthorized alors que tu ne devrais pas le faire si la variable n'est pas déclaré.
Tu devrais activé les messages d'erreur de type E_NOTICE. Soit donc ta conf PHP de dev (de préférence) soit via un error_reporting(E_ALL) en début d'exécution.
Tu devrais activé les messages d'erreur de type E_NOTICE. Soit donc ta conf PHP de dev (de préférence) soit via un error_reporting(E_ALL) en début d'exécution.
Salut SiM07
C'est très interessant ce que tu me dit la, mais le probleme c'est que c'est un script tout fait que j'ai récupéré sur le net.
En clair quand tu me dit un message d'erreur du type E_NOTICE, ou un error_reporting(E_ALL) c'est comme mon beauf quand il me parle de sa passion pour les bonzais, j'y comprend rien. Dans son cas c'est que je m'en fout, mais pas ici, alors si tu pouvais m'expiquer.
Et tu crois que ça solutionnerais mon problème, vu que ce script tourne bien sur un espace membre hébergé?
A+
C'est très interessant ce que tu me dit la, mais le probleme c'est que c'est un script tout fait que j'ai récupéré sur le net.
En clair quand tu me dit un message d'erreur du type E_NOTICE, ou un error_reporting(E_ALL) c'est comme mon beauf quand il me parle de sa passion pour les bonzais, j'y comprend rien. Dans son cas c'est que je m'en fout, mais pas ici, alors si tu pouvais m'expiquer.
Et tu crois que ça solutionnerais mon problème, vu que ce script tourne bien sur un espace membre hébergé?
A+
Bonjour crazycat@id,
Comme je l'ai précisé c'est un code d'espace membre, sans doute merdique, mais qui par ailleurs fonctionne bien sans déconnection.
Je te le joint
Merci
Comme je l'ai précisé c'est un code d'espace membre, sans doute merdique, mais qui par ailleurs fonctionne bien sans déconnection.
Je te le joint
Merci
<?php
session_start();
$Mon_Pseudo = $_POST['Mon_Pseudo'];
mysql_select_db($database_connection, $connection);
$query_Recordset1 = "SELECT *XX......";
$Recordset1 = mysql_query($query_Recordset1, $connection) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$_SESSION['MM_UserGroup'] = $row_Recordset1['Statut'];
$_SESSION['Mon_Pseudo'] = $Mon_Pseudo;
$_SESSION['ID_Parieur'] = $row_Recordset1['Parieur_ID'];
$_SESSION['MM_Username'] = $Mon_Pseudo;
?>
<?php
// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}
if (isset($_POST['Mon_Pseudo'])) {
$loginUsername=$_POST['Mon_Pseudo'];
$password=$_POST['pass'];
$MM_fldUserAuthorization = "Statut";
//echo $_SESSION['MM_UserGroup'] . "Haut " . '<br/>';
if ($_SESSION['MM_UserGroup'] == "admin")
$MM_redirectLoginSuccess = "admin/Admin_gc_Accueil.php";
else
$MM_redirectLoginSuccess = "membres/Accueil.php";
$MM_redirectLoginFailed = "erreurlogin.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_connection, $connection);
$LoginRS__query=sprintf("SELECT * FROM gc_pseudo WHERE Pseudo='$loginUsername' AND Pass='$password'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $connection) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'statut');
//declare two session variables and assign them
$GLOBALS['Mon_pseudo'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;
unset ($_SESSION['MM_UserGroup']);
$_SESSION['MM_UserGroup'] = $loginStrGroup;
$_SESSION['MM_Username'] = $loginUsername;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
Effectivement, ça ne m'avance pas des masses.
En fait, comment te rends tu compte que la session se ferme dans des temps variables ?
Dans mon esprit, il y a deux manières de gérer ça:
Fonctionnement normal: La personne s'authentifie et chaque fois qu'elle charge une page du site (nécessitant ou pas d'être authentifiée), on relance la session. => Déconnexion après X minutes sans naviguer
Fonctionnement bizarre (mais déjà vu): la personne s'authentifie et la session est relancée uniquement lorsqu'elle recharge une page nécessitant d'être authentifiée. => Déconnexion après X minutes sans avoir navigué sur la partie "sécurisée"
Et il y a un fonctionnement presque inutile: la personne s'authentifie et la session n'est jamais relancée => donc déconnexion X minutes après s'être authentifié.
Donc, peux tu me dire quels tests tu as fait pour pouvoir confirmer ses délais variables ?
En fait, comment te rends tu compte que la session se ferme dans des temps variables ?
Dans mon esprit, il y a deux manières de gérer ça:
Fonctionnement normal: La personne s'authentifie et chaque fois qu'elle charge une page du site (nécessitant ou pas d'être authentifiée), on relance la session. => Déconnexion après X minutes sans naviguer
Fonctionnement bizarre (mais déjà vu): la personne s'authentifie et la session est relancée uniquement lorsqu'elle recharge une page nécessitant d'être authentifiée. => Déconnexion après X minutes sans avoir navigué sur la partie "sécurisée"
Et il y a un fonctionnement presque inutile: la personne s'authentifie et la session n'est jamais relancée => donc déconnexion X minutes après s'être authentifié.
Donc, peux tu me dire quels tests tu as fait pour pouvoir confirmer ses délais variables ?
mes tests sont en temps réel, c'est à dire que je modifie mon script et 5 minutes après je test et je suis toujours connecté, ou alors je test je me rend compte tout de suite qu'un affichage n'est pas correct, je le modifie sur l'instant, je re-test, on va dire dans les tentes secondes, et la :fenêtre de connection.
Fais tes tests proprement, sans rien modifier dans le code, et toujours avec le même processus.
Il faut te définir un cycle de test:
Login => accès à une autre page => attente de 2 minutes => rechargement de la page => attente de 5 minutes => rechargement de la page
Et ce cycle est donc à reproduire deux ou trois fois, pour vérifier le comportement exactement dans les mêmes conditions (accès aux mêmes pages).
Il faut te définir un cycle de test:
Login => accès à une autre page => attente de 2 minutes => rechargement de la page => attente de 5 minutes => rechargement de la page
Et ce cycle est donc à reproduire deux ou trois fois, pour vérifier le comportement exactement dans les mêmes conditions (accès aux mêmes pages).
Bonjour OmaR,
Comme me l'a suggère crazycat@id je test depuis un moment simplement en rafraichissement et sans modification de page, la conclusion est la perte de connection aux environs de 5 minutes sans changer de page.
Est-ce que tu ne relances pas ton serveur PHP par exemple, ce qui te ferait perdre les sessions ?
Si il y a relance de serveur, elle ne peut être qu'interne a WAMP, car en ce qui me concerne le serveur démarre au startup et arrete à la fermeture du PC. Je ne connais pas la procédure pour l'arreter et le relancer dans un script.
Comme me l'a suggère crazycat@id je test depuis un moment simplement en rafraichissement et sans modification de page, la conclusion est la perte de connection aux environs de 5 minutes sans changer de page.
Citation :
Est-ce que tu ne relances pas ton serveur PHP par exemple, ce qui te ferait perdre les sessions ?
Si il y a relance de serveur, elle ne peut être qu'interne a WAMP, car en ce qui me concerne le serveur démarre au startup et arrete à la fermeture du PC. Je ne connais pas la procédure pour l'arreter et le relancer dans un script.
Tu n'avais pas encore dit que tu perdais au bout de 5 minutes sans changer de page, du coup ce n'est pas du à la modification de la page.
J'avais compris que :
Login => accès à une page => attente => changement de page => tu vois que y'a un soucis donc tu modifies la page => déconnecté
Mais si tu as le soucis après avoir rafraichi au bout de 5 minutes, sans modification, ce n'est pas ça.
J'avais compris que :
Login => accès à une page => attente => changement de page => tu vois que y'a un soucis donc tu modifies la page => déconnecté
Mais si tu as le soucis après avoir rafraichi au bout de 5 minutes, sans modification, ce n'est pas ça.
Petite idée trouvée sur un forum:
Citation :
'session.cookie_domain' should be set to empty string for all local domain names, not only for 'localhost' (but should not be empty for local IP addresses):
<?php
ini_set('session.cookie_domain', (strpos($_SERVER['HTTP_HOST'],'.') !== false) ? $_SERVER['HTTP_HOST'] : '');
?>
Citation :
Tu n'avais pas encore dit que tu perdais au bout de 5 minutes sans changer de page, du coup ce n'est pas du à la modification de la page.
J'avais compris que :
Login => accès à une page => attente => changement de page => tu vois que y'a un soucis donc tu modifies la page => déconnecté
Mais si tu as le soucis après avoir rafraichi au bout de 5 minutes, sans modification, ce n'est pas ça
Oui en résumé si je reste sur la même page la déconnection est plus tardive.
crazycat@idn a dit :
Petite idée trouvée sur un forum:Citation :
'session.cookie_domain' should be set to empty string for all local domain names, not only for 'localhost' (but should not be empty for local IP addresses):
<?php
ini_set('session.cookie_domain', (strpos($_SERVER['HTTP_HOST'],'.') !== false) ? $_SERVER['HTTP_HOST'] : '');
?>
Vois tu je suis de la vieille école celle ou quand tu te ramassait une tarte par le prof, t'avais pas intéret à en parler à la maison sinon t'en prenais deux autres.
Tout ça pour dire que l'anglais et moi !!!!
Le code php on le met où et à quoi il sert.
Merci à vous deux de me consacrer du temps
Traduction rapide: session.cookie_domain doit être vide pour tous les serveurs du domaine local, pas seulement pour localhost.
Le code est à mettre au tout début de tes pages, avant même le session_start().
Je ne sais pas si ça règlera quelque chose, je t'avouerais que je ne développe que sur des bases LAMP et que je soupçonne plutôt windows d'être en cause.
Le code est à mettre au tout début de tes pages, avant même le session_start().
Je ne sais pas si ça règlera quelque chose, je t'avouerais que je ne développe que sur des bases LAMP et que je soupçonne plutôt windows d'être en cause.
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumPerte variable session apres header
- ForumDisparition de la valeur d1 variable session
- ForumPhp perte de session
- ForumPerte du mot de passe de session
- ForumPhp perte session
- ForumPerte session php
- ForumPerte mot de passe de session
- ForumPhp - perte de variables de session
- ForumPerte mot de passe session
- ForumPerte de session
- Voir plus
La personne qui a codé ça ne devait vraiment pas avoir bcp d'expérience.