begin process at 2012 02 13 20:17:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Session pour les neuneus !


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

Session pour les neuneus !

jeudi 2 février 2006 à 16:05:45 | Session pour les neuneus !

Tartuffe

Salut tous... Je suis le neuneu de service (mais, bon à ma décharge, tout ce que j'ai trouvé sur le web en matière de session n'est pas explicite, loin de là !).

Je croyais (à tord) que mes sessions marchaient correctement...

Ce que je fait :
Page '1' :
<?
session_start();
....

Page 'n' :
<?
session_id();
session_start()
...
mise en session de différente variable
...

Ce qui se produit :
Lorsque je teste en solitaire sur le site, c'est bon, mais lorsqu'il y a plusieurs personnes connectées, les variables de session $_SESSION['truc'] prennent une fois la valeur du connecté A, une fois celle du conecté B, etc.

Ce que j'ai donc modifié :
Je vaudrais éviter d'utiliser les cookies, donc, en fouillant sur le web, je trouve que le 'session.use_trans_sid' est à 'Off' sur mon serveur. Donc il me semble qu'il faut utiliser mon 'session.save_path'.
J'ai donc créé à la racine ledit 'session.save_path' avec les droit correspondant...
Mais on me dit aussi qu'il me faut un 'header("Location:" . "$adresse . "?" . SID);'

Alors là je dis : mais c'est koi se bord... ?

Bref la question est longue mais simple :

Je veux bien mettre des tonnes de truc dans mon URL, mais koi PRECISEMMENT ?
Comment je récupère l'info mise en URL et comment je m'assure qu'elle me rappellera sur le serveur la bonne session, et pas une autre ?
A quoi sert le répertoire 'session.save_path' ?
Quelle est la forme "générique" de mon header de la page 'n' après mon session_start(), quelque chose comme ca ?
<?
session_start();
header("Location:"."path de la page 'n' ou de la page '1'."?".SID);
...


HELLLPPPPPPPPPP !!!!!!!!!

PekLandais, dans la merde là...
jeudi 2 février 2006 à 16:16:44 | Re : Session pour les neuneus !

J_G

Salut neuneu ! (c'est amical, pis c'est toi qui le dit...)

Avant de te lancer dans les délires du "j'te-passe-le-ID-dans-l'URL"... Il faut savoir que si tu test les connexions multiples à partir du même couple (ordi, navigateur)...

Forcément ça va coinçer !!!!!!!!!!!!!!!!!!!!!!!

Je dis ça parceque tu annonce d'entrée ton ignorance en PHP et Session !

Serait-ce une explication de to Pb ?

A+
jeudi 2 février 2006 à 16:18:03 | Re : Session pour les neuneus !

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello, en rapide :

- tu n'as rien à mettre dans l'url.
- les sessions sont sous contrôle utilisateur! J'entends par là que chaque utilisateur a SA session.

Imaginons:
user A et user B sur ton site en même temps.
Tu stockes leur nom en session :

page 1
<?php
session_start ();
$_SESSION['nom'] = nom_user // on imagine que tu le récupères d'un formulaire).
?>
page 2:
<?php
session_start ();
echo $_SESSION['nom']; // pour le user A, va afficher 'A', et pour le user B, va afficher 'B'.
?>

Pourquoi ? Parce que la session est un cookie côté serveur. Il est stocké dans un répertoire dédié, sur ton serveur (où, ça dépend de ta configuration). C'est un fichier texte, avec pour nom, le SID (l'id de la session courante si tu veux...or, tu peux avoir plein de sessions courantes, autant que tu as d'utilisateurs sur ton site, en fait).

Pour simplifier, dans le fichier :
a45btf488ere1sf5s46ef7e5fe55d
tu as 'nom' => 'A'
et dans le fichier
rt446a5ef76é511faa32df1za355
tu as 'nom' => 'B'

TU n'as rien à mettre dans l'url car c'est transparent pour toi. La session est passée (l'id de session en fait) de page en page automatiquement, si tu as bien pris grade de commencer TOUTES tes pages avec session_start (); (le mieux est encore de l'inclure via un fichier commun).



jeudi 2 février 2006 à 16:42:12 | Re : Session pour les neuneus !

Tartuffe

Well, je teste de suite avec mon 'session_path_xxx' sans rien rajouter en URL...PS : pour J_G...D'où "Je dis ça parceque tu annonce d'entrée ton ignorance en PHP et Session !"En php, non, et en session, je la découvre, nuance [: - ))PekLandais
jeudi 2 février 2006 à 22:01:09 | Re : Session pour les neuneus !

Tartuffe

Réponse acceptée !
Et bien me revoilou....

Pour l'instant pas de "décloisonnement" entre valeur de variable de différente session ce qui m'ait arrivé une fois, mais j'ai un doute terrible sur leur fonctionnement .. Voici l'exemple:

<?
session_id();
session_start();
if (!isset($_SESSION[id])){
    echo "y'a bien longtemps qu'on ne vous a pas vu !<br><br><br>";
    echo "   Time_out de session activé...<br>";
    echo "<blocquote><blocquote><blocquote><a href=\"http://www.truc.info/home.php\" target=\"_top\">Do it again Sam !</a></blocquote></blocquote></blocquote>";
    exit;
    }
// jusqu'à là, tout va bien et le test précédent marche dès les 180 secondes réglementaires avant TIMEOUT
// divers blabla
// requete select de tout les ID présent en BdD
        $id=$info_j['ID_P'];
        if($id==$_SESSION[id]){
            imagesetpixel($imagecible,$x_pix,$y_pix,$couleur_moi);
            $lib="Ma trogne";
            }
       else{
            imagesetpixel($imagecible,$x_pix,$y_pix,$couleur_eux);
            $lib="leur trogne";
            }
//et encore...
?>

Et bien j'ai tout en couleur "$couleur_moi" et tous les LIB sont Ma trogne.
Hors ce n'est pas possible puisque l'init de $_SESSION[id]="ID_P, résultat de requete selon LOG/PASS" et que fatalement dans ma boucle de test "if($id==$_SESSION[id])" il n'y en a qu'un pour lequel le test est vrai...


C'est la gestion de mes sessions, où c'est moi.
_____________________________
Pris d'un doute tout d'un coup... Le problème ne viendrait pas de ca :
- ma variable de test est $id
- l'affectation d'un variable de session s'effectue sans le $.
- Hors le test est fait entre $id et [id]. Donc il y aurait affectation à la volée, et fatalement tous serait identique ?
_____________________________


PekLandais
jeudi 2 février 2006 à 23:36:38 | Re : Session pour les neuneus !

Tartuffe

Réponse acceptée !
Oki ! Oki !

C'est simple les sessions...
Si ca ne marche pas c'est de la faute du serveur, mais pas de vous.

session_start(); et puis voilà !
Sur chaque page et hop, prisunic....

Pas de
session_id();qui traine, ni de Header(LOCATION:blabla); suite à un lien de type<a href="path?variable=session_id()">lien</a>;
Rien de rien !
Rien de tout cela, sauf dans les cas tordus où c'est nécessaire.
Même pas besoin de cookies, pour vous dire !

session_start(); , point-barre !!!!!!


CEPENDANT
, il y a une contrainte, et une grosse...

____________________________________
        $id=$info_j['ID_P'];
        if($id==$_SESSION[id]){
            imagesetpixel($imagecible,$x_pix,$y_pix,$couleur_moi);
            $lib="Ma trogne";
            }
       else{
            imagesetpixel($imagecible,$x_pix,$y_pix,$couleur_eux);
            $lib="leur trogne";
            }
____________________________________

Petit rappel sur les sessions : "...l'affectation de variable s'effectue sans le caractère $".
Vous la voyez maintenant l'erreur...
La contraine c'est de s'assurer, qu'en aucun cas une variable de session n'aura le même nom qu'une autre variable. Sinon, c'est le chaos.
J'en déduis qu'il faut impérativement se faire une méthode de nommage des variables de session différente de la méthode de nommage des variables 'classiques'.
Et il faut s'y tenir !


PekLandais
vendredi 3 février 2006 à 07:17:56 | Re : Session pour les neuneus !

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hmmm...ou d'avoir les register_globals à Off.


Cette discussion est classée dans : page, session, path, start, sid


Répondre à ce message

Sujets en rapport avec ce message

undefined index page [ par RM50Man ] Voilla mon erreur c undefines index page je comprend pas, si kelkun peut m expliquer merci!!!include("htmlpage.php");    include("admin/connect.php"); session_start sur ts page de site ? [ par tibine974 ] Meuh ! Fais la vache Yo ! voilà deux questions qui me permetront je l'espére de devenir une lumiére : 1°) Dois-je mettre session_start(); sur tous l Je n'arrive pas a démarer une session via session_start(); [ par Icarius44 ] Bonjour à tous, j'ai eu beau chercher j'ai pas trouver, je tente de créer/ouvrir une session avec la fonction session_start() mais il m'affiche alors xmlhttp et session_start [ par fcdconnect ] Bonjour,j'ai un petit soucis de recuperation des info de ma session lors de l'envoi d'une requete avec xmlhttp :sur la page php qui execute la requete php session_start [ par regis62 ] Bonjour.je suis un débutant en php et j'ai un probléme.Dans la page acces_eleve un éléve se connect (grace à des formulaires).Dans la page requete_ele Page blanche sur session_start [ par bruno3591 ] Bonjour, j'ai une page blanche quand je valide le formulaire d'authentification. Il y a 2 pages, une pour le formulaire et l'autre pour traiter les i FONCTION SESSION START WARNING S'AFFICHE [ par mannoula_2007 ] Bonjour, j'ai un prob lorsque j'ai fais l'ajout des balises meta dans le code de la page index.php Warning: session_start() [function.session-start]: Probleme de session [ par clementga ] Bonjour,J'ai développé un site en php dans lequel il faut s'identifier pour entrer.Pour vérifier sur chaque page si l'utilisateur est bien identifié, code php exécuté deux fois [ par thierry la fronde ] bonjour, je souhaitais exposer un paradoxe : J'ai une requête pour mysql dans un fichier php et elle s'exécute deux fois avec Firefox ET Netscape. Par Session et IIS [ par tigidiwigi ] Bonjour, J'ai un problème de session avec IIS. Je vais expliquer directement avec un exemple, ça sera plus clair : Le code suivant fonctionne correcte


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,530 sec (4)

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