// dans toutes les pages en PREMIER
if (!isset($charset) or empty($charset)) $charset="iso-8859-1";
header("content-type:text/html; charset=$charset");
session_start();
// sur la page d'identification
$_SESSION['ID']=1; // num internaute
// sur les autres pages
if(!empty($_SESSION['ID']))
{
echo 'ok';
}
else
{
echo 'pas ok';
}
si quelqu'un a une soluce, merci à vous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
P'tit Marcel
j'ai une perte aléatoir de session, :'( je ne comprend pas le probleme voici ma structure
// dans toutes les pages en PREMIER if (!isset($charset) or empty($charset)) $charset="iso-8859-1";
pas glop
$charset doit être initialisé au départ, par exemple avec un $charset=@$_REQUEST['charset']; ou un $charset=@$_SESSION['charset'];
par ailleurs, le test peut tout simplement être if (empty($charset)) $charset="iso-8859-1";
car une variable non initialisée est "empty" !isset($charset) ===> empty($charset)
pour des raisons de sécurité, il faudrait également vérifier le contenu de la variable avec par exemple un: if(!preg_match('`^[-a-z0-9]+$`i', $charset)) $charset='iso-8859-1';
sur la question de la perte de la variable ID, il faudrait préciser si les identifiants de session sont conservés sous forme de cookie ou ajoutés aux liens et formulaires. Quelles sont donc les valeurs de : session.use_cookies session.cookie_path session.use_trans_sid session.cache_expire session.gc_maxlifetime également, quelle version de php ? quel OS ?
eça -- P'tit Marcel
j'ai une perte aléatoir de session, :'(
je ne comprend pas le probleme voici ma structure
// dans toutes les pages en PREMIER
if (!isset($charset) or empty($charset)) $charset="iso-8859-1";
pas glop
$charset doit être initialisé au départ, par exemple avec un
$charset=@$_REQUEST['charset']; ou un $charset=@$_SESSION['charset'];
par ailleurs, le test peut tout simplement être
if (empty($charset)) $charset="iso-8859-1";
car une variable non initialisée est "empty"
!isset($charset) ===> empty($charset)
pour des raisons de sécurité, il faudrait également vérifier le contenu
de la variable avec par exemple un:
if(!preg_match('`^[-a-z0-9]+$`i', $charset)) $charset='iso-8859-1';
sur la question de la perte de la variable ID, il faudrait préciser si
les identifiants de session sont conservés sous forme de cookie ou
ajoutés aux liens et formulaires. Quelles sont donc les valeurs de :
session.use_cookies
session.cookie_path
session.use_trans_sid
session.cache_expire
session.gc_maxlifetime
également, quelle version de php ? quel OS ?
j'ai une perte aléatoir de session, :'( je ne comprend pas le probleme voici ma structure
// dans toutes les pages en PREMIER if (!isset($charset) or empty($charset)) $charset="iso-8859-1";
pas glop
$charset doit être initialisé au départ, par exemple avec un $charset=@$_REQUEST['charset']; ou un $charset=@$_SESSION['charset'];
par ailleurs, le test peut tout simplement être if (empty($charset)) $charset="iso-8859-1";
car une variable non initialisée est "empty" !isset($charset) ===> empty($charset)
pour des raisons de sécurité, il faudrait également vérifier le contenu de la variable avec par exemple un: if(!preg_match('`^[-a-z0-9]+$`i', $charset)) $charset='iso-8859-1';
sur la question de la perte de la variable ID, il faudrait préciser si les identifiants de session sont conservés sous forme de cookie ou ajoutés aux liens et formulaires. Quelles sont donc les valeurs de : session.use_cookies session.cookie_path session.use_trans_sid session.cache_expire session.gc_maxlifetime également, quelle version de php ? quel OS ?
eça -- P'tit Marcel
Djalupu
merci pour ta réponse, en ce qui concerne les variables de session elles sont définies dans un fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en cache dans le navigateur et si il n'est pas fermé la session est toujours utilisable ?
donc en résumé, dans mon fichier d'identification j'enregistre ma variable de session comme ça : $_SESSION['ID']=1;
ensuite dans l'administration je verifie dans chaque fichier si la variable existe.
if(!empty($_SESSION['ID'])){ //ok } else { //pas ok }
voici les infos du php.in: ------------------------------------------------------ Directive | LocalValue | MasterValue ------------------------------------------------------ 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_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.name | PHPSESSID | PHPSESSID session.referer_check | no value | no value session.save_handler | files | files session.save_path | /tmp | /tmp session.serialize_handler| php | php session.use_cookies | On | On session.use_only_cookies | Off | Off session.use_trans_sid | Off | Off ------------------------------------------------------
merci
merci pour ta réponse,
en ce qui concerne les variables de session elles sont définies dans un
fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en
cache dans le navigateur et si il n'est pas fermé la session est
toujours utilisable ?
donc en résumé, dans mon fichier d'identification j'enregistre ma
variable de session comme ça :
$_SESSION['ID']=1;
ensuite dans l'administration je verifie dans chaque fichier si la
variable existe.
if(!empty($_SESSION['ID'])){
//ok
}
else
{
//pas ok
}
voici les infos du php.in:
------------------------------------------------------
Directive | LocalValue | MasterValue
------------------------------------------------------
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_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.name | PHPSESSID | PHPSESSID
session.referer_check | no value | no value
session.save_handler | files | files
session.save_path | /tmp | /tmp
session.serialize_handler| php | php
session.use_cookies | On | On
session.use_only_cookies | Off | Off
session.use_trans_sid | Off | Off
------------------------------------------------------
merci pour ta réponse, en ce qui concerne les variables de session elles sont définies dans un fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en cache dans le navigateur et si il n'est pas fermé la session est toujours utilisable ?
donc en résumé, dans mon fichier d'identification j'enregistre ma variable de session comme ça : $_SESSION['ID']=1;
ensuite dans l'administration je verifie dans chaque fichier si la variable existe.
if(!empty($_SESSION['ID'])){ //ok } else { //pas ok }
voici les infos du php.in: ------------------------------------------------------ Directive | LocalValue | MasterValue ------------------------------------------------------ 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_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.name | PHPSESSID | PHPSESSID session.referer_check | no value | no value session.save_handler | files | files session.save_path | /tmp | /tmp session.serialize_handler| php | php session.use_cookies | On | On session.use_only_cookies | Off | Off session.use_trans_sid | Off | Off ------------------------------------------------------
merci
Calimero
Djalupu wrote:
merci pour ta réponse, en ce qui concerne les variables de session elles sont définies dans un fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en cache dans le navigateur et si il n'est pas fermé la session est toujours utilisable ?
La session non, mais le cookie qui permet d'identifier la session oui.
Sinon, il se passe (ou se passe pas) quoi exactement ?
N'y aurait-il pas de changement de domaine à un moment (genre passer de http://www.truc.com/machin.php à http://truc.com/machin.php ou http://localhost/machin.php à http://127.0.0.1/machin.php) ?
Si ca continue dans le bizarre, tu peux te lancer dans du debug HTTP avec un proxy d'analyse. Vu que tu sembles être sous Windows, il existe par exemple Fiddler. Ca te permettra de voir à quel moment les cookies se perdent (si c'est à ce niveau que ca foire), etc...
-- @+ Calimero
Djalupu wrote:
merci pour ta réponse,
en ce qui concerne les variables de session elles sont définies dans un
fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en
cache dans le navigateur et si il n'est pas fermé la session est
toujours utilisable ?
La session non, mais le cookie qui permet d'identifier la session oui.
Sinon, il se passe (ou se passe pas) quoi exactement ?
N'y aurait-il pas de changement de domaine à un moment (genre passer
de http://www.truc.com/machin.php à http://truc.com/machin.php ou
http://localhost/machin.php à http://127.0.0.1/machin.php) ?
Si ca continue dans le bizarre, tu peux te lancer dans du debug HTTP
avec un proxy d'analyse. Vu que tu sembles être sous Windows, il
existe par exemple Fiddler. Ca te permettra de voir à quel moment les
cookies se perdent (si c'est à ce niveau que ca foire), etc...
merci pour ta réponse, en ce qui concerne les variables de session elles sont définies dans un fichier d'identification qui redirige sur une administration.
normalement une session enregistrée, si je ne me trompe pas reste en cache dans le navigateur et si il n'est pas fermé la session est toujours utilisable ?
La session non, mais le cookie qui permet d'identifier la session oui.
Sinon, il se passe (ou se passe pas) quoi exactement ?
N'y aurait-il pas de changement de domaine à un moment (genre passer de http://www.truc.com/machin.php à http://truc.com/machin.php ou http://localhost/machin.php à http://127.0.0.1/machin.php) ?
Si ca continue dans le bizarre, tu peux te lancer dans du debug HTTP avec un proxy d'analyse. Vu que tu sembles être sous Windows, il existe par exemple Fiddler. Ca te permettra de voir à quel moment les cookies se perdent (si c'est à ce niveau que ca foire), etc...