begin process at 2012 05 28 09:37:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Server Web

 > 

Apache

 > 

Configuration Apache-PHP pour problème de session


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Configuration Apache-PHP pour problème de session

mercredi 27 février 2008 à 13:11:13 | Configuration Apache-PHP pour problème de session

sananas

Bonjour,

J'ai un problème de session que je n'arrive pas a résoudre!
Nous avons installé un nouveau serveur ZendCore sur notre i5/OS (IBM)... bref, c'est un serveur HTTP fonctionnant avec apache et php...
Je cherche a mettre en place un espace sécurisé sur notre site internet, mais j'ai des problèmes bizarre avec les sessions, je ne sais pas si c'est normal ou pas...

J'ai une page index.php avec formulaire classique "login et mot de passe". S'ils sont ok, une session est crée des variables $_SESSION aussi et je suis redirigé avec <script>window.location...etc vers la page principale de l'espace sécurisé...
A la première connexion, aucun problème tout ce passe bien...
Mais si j'ai le malheur de quitter brutalement mon navigateur ou d'en ouvrir un second sur la page index.php pour ouvrir le même espace sous un autre nom... la nouvelle session n'est pas récupèré et je boucle indéfiniment sur la page index.php...
Je suis obliger d'attendre l'expiration de ma première session ou de la supprimer dans le répertoire des sessions.

Je commence à en avoir raz la casquette de ces sessions... cela fait une semaine que je me prend la tête dessus avec toujours une nouvel surprise... Je ne veux pas passer d'identifiant SID dans l'url, j'ai fini par trouver que c'était un paramatre de php.ini qu'il fallait configurer...
Comment lui faire comprendre qu s'il y a déjà une connexion pour mon poste il faut qu'il l'a détruise ou qu'il l'a réutilise?

Merci pour votre aide....

Mon PHP.INI (par session)

[Session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
;
; As of PHP 4.0.1, you can define the path as:
;
;     session.save_path = "N;/path"
;
; where N is an integer.  Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories.  This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
;
; NOTE 1: PHP will not create this directory structure automatically.
;         You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
;         use subdirectories for session storage
;
; The file storage module creates files using mode 600 by default.
; You can change that by using
;
;     session.save_path = "N;MODE;/path"
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
session.save_path = "/www/zendcore/sessions"

; Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Handler used to serialize data.  php is the standard serializer of PHP.
session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor     = 1000

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
;       (see session.save_path above), then garbage collection does *not*
;       happen automatically.  You will need to do your own garbage
;       collection through a shell script, cron entry, or some other method.
;       For example, the following script would is the equivalent of
;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit register_globals
; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning seperately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 0
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
session.referer_check =

; How many bytes to read from the file.
session.entropy_length = 0

; Specified here to create the session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

; Document expires after n minutes.
session.cache_expire = 180

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
;   to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
;   in publically accessible computer.
; - User may access your site with the same session ID
;   always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 1

; Select a hash function
; 0: MD5   (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 5

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden <input> field with the info which is otherwise appended
; to URLs.  If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

mercredi 27 février 2008 à 14:08:13 | Re : Configuration Apache-PHP pour problème de session

Evangun

Salut,

session_start();

if(isset($_SESSION['la variable que t'avais créée'])){
    page s'affiche
}
else {
    redirection sur page de login
}

ça devrait faire l'affaire je pense ?
mercredi 27 février 2008 à 15:20:23 | Re : Configuration Apache-PHP pour problème de session

sananas

Justement non!

Désolée de ne l'avoir précisé...
Mais quand je dissais "une session est créée... " et "A la première connexion, aucun problème tout ce passe bien..."
C'est que j'ai déjà ce code dans mes pages... sinon je ne pourrais pas accèder à mon espace la première fois...

Le problème est autre, quand je ferme mon navigateur et que j'en ouvre un autre pour me reconnecter...
session_start() ne trouve pas mon ancienne version, du coup il me recréée une nouvelle session...
Jusque là ça pourrait ne pas être trop grave, mais cette nouvelle session n'est pas concervée quand je suis redirigé vers ma page d'accueil de mon espace membre... il en recrée une 2ème qui n'a pas les varibales de session en mémoire...

Pour faire plus simple :

1er CAS, fermeture brutal du navigateur
_ Ouverture du navigateur
_ J'accède à mon index.php
_ Identification (envoit du formulaire de connexion)
_ Mot de passe correct -> Création d'une session + ajout de variable de session
_ Redirection vers accueil.php
_ Verification d'une session existante (session_start();) + existance des varibales de Session
_ Tout est ok -> affichage de la page accueil.php

_ Je ferme le navigateur avec la croix...
_ J'ouvre un nouveau navigateur (le même, ici IE)
_ J'accède à mon index.php  
_ Identification (envoit du formulaire de connexion)
_ Mot de passe correct -> Création d'une session + ajout de variable de session
_ Redirection vers accueil.php
_ Verification d'une session existante (C'est là où est le problème... session_start(); ne trouve pas de session donc en recrée une)
 _ Verification des variabes de Session, pas de variables --> retour à la page de connexion index.php

2ème CAS, simple ouverture d'un second navigateur(résultat identique)
_ Ouverture du navigateur
_ J'accède à mon index.php
_ Identification (envoit du formulaire de connexion)
_ Mot de passe correct -> Création d'une session + ajout de variable de session
_ Redirection vers accueil.php
_ Verification d'une session existante (session_start();) + existance des varibales de Session
_ Tout est ok -> affichage de la page accueil.php

_ J'ouvre un nouveau navigateur (le même, ici IE)
_ J'accède à mon index.php  
_ Identification (envoit du formulaire de connexion)
_ Mot de passe correct -> Création d'une session + ajout de variable de session
_ Redirection vers accueil.php
_ Verification d'une session existante (C'est là où est le problème... session_start(); ne trouve pas de session donc en recrée une)
 _ Verification des variabes de Session, pas de variables --> retour à la page de connexion index.php

Voilà, c'est peut-être plus clair comme ça...

mercredi 27 février 2008 à 15:30:35 | Re : Configuration Apache-PHP pour problème de session

Evangun

Mmm... tu n'utiliserais pas un système de cookies en même temps, non ?
réessaie d'ouvrir une session, de fermer, de réouvrir, d'effacer les cookies, d'ouvrir une session. ça marche ?
à+
mercredi 27 février 2008 à 16:21:01 | Re : Configuration Apache-PHP pour problème de session

sananas

J'ai testé mais ça ne change rien...

J'ai ajouté session.lifetime=0 dans le PHP.ini pour être sur que la session soit inutilisable après fermeture du navigateur...
Elle n'existait pas dans le fichier... Je sais pas si ça peut jouer...

Je crois que j'ai trouvé, ton histoire de cookie m'a mis la puce à l'oreille, j'ai modifié ma ligne de création de cookie
setcookie('nom_du_cookie',session_id()); 
remplacé par 
setcookie(session_name(),session_id());

J'ai également fait le même genre de modification sur les autres pages faisant appel au cookie...
Ca a l'air de ne plus le faire...

Merci...
mercredi 27 février 2008 à 16:33:19 | Re : Configuration Apache-PHP pour problème de session

Evangun

Oui je me doutais que ça venait des cookies... mais tu sais tu n'as pas besoin de mettre l'id de session dans un cookie. Tu créés juste une variable $-SESSION['connecté?'] qui vaut 0 ou 1. Si c'est 1, tu donnes accès, et c'est tout, tu n'utilises pas l'identifiant de session... par ailleurs, si tu voulais absolument utiliser un cookie, tu n'aurais qu'à activer l'option use_session_cookies_only (ou un truc comme ça) dans le php.ini et ce serait automatique.

Si la réponse te convient, merci d'accepter la réponse pour clore le sujet.
à+


Cette discussion est classée dans : php, session, to, in, is


Répondre à ce message

Sujets en rapport avec ce message

Problème de sessions [ par kopierreko ] Bonjour, J'ai un soucis avec les sessions. Lorsque je change de page, la session se détruit, avec toutes les infos stockées à l'intérieur ... J'ai pou session en PHP 5 [ par NestorJean ] Salut! J'ai rencontré un problème sur utilisation de session de PHP5.3 , Voici le message d'erreur apparu:"function session_is_resistered is deprecate session_is_registered() [ par tweeder ] Bonjour, je vais essayer d'être le plus clair possible.Voila je veux sécuriser mon site grâce au php avec session_is_registered(). J'ai donc une page SESSIONS AVEC COOKIES [ par vincenteraptor ] Ugh!j ai un petit pb! voila je voudrais utiliser les sessions avec passage de l'id de session dans un cookie.Pour comprendre la chose j ai telechargé Disparition aléatoire de Session [ par Cadrach ] Alors, j'ai problème ennuyeux sur mon site au niveau des sessions. Donc d'abord le détail : Config du serveur, niveau session : Code:[Session] sessi Activer les mail et session sur easyphp [ par laubro ] Bonjour2 questions en une, dans le fichier ini de easy php :a)- que faut il mettre pour que les sessions soit active en local ?Fatal error: C Acces restreint sur une page [ par doberman_420 ] Bonjour, Encore une fois j'ai besoin de votre aide et je remercie tous ceux qui mon déja aider, J'ai divisé ma page profil en deux index "indexFemme.p je souhaiterais uploader correctement [ par alphabe2000 ] Bonjour, je monte une application web à partir de la suite Easy php et dreamwaver, seulement lorsque j'exécute le script d'upload via dream..., il m'e session php [ par rudybiss ] Bonjour à tous!!!Voila,je développe un site en php et j'utilise des sessions.tout se passe bien(connexion et deconnexion),mais j'aimerai ajouter un pe l'usage des sessions en php [ par Marcelinos ] BonjourJe suis débutant en php et j'ai un sérieux problème que voici:j' ai un formulaire de saisie réparti sur plusieurs pages à savoir page1.php,page


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales