sesion & cookie

sesion & cookie - PHP - Programmation

Marsh Posté le 22-02-2005 à 18:44:45    

slt tlm
 
est ce que les cookies sont généré automatiqument quand une session est crée ou alors il fo faire setcookie()
 
g un probleme lorsque le navigateur est fermé ma session n'est pas détruite pourtant g mi un  
session_gc=60 et session_cache_limiter=60??

Reply

Marsh Posté le 22-02-2005 à 18:44:45   

Reply

Marsh Posté le 22-02-2005 à 18:50:42    

cookie <> session.
le cookie c'est directement sur le client
la session est géré par le serveur.
le serveur n'a aucune idée de ce qui se passe chez le visiteur du site, il ne suprime les traces d'une session que quand le visiteur n'est pas repassé pendant un temps donné.
 
D'ailleur si t'avais cherché un peu plus, t'aurais vu qu'exactement la même question à été posé la semaine derniére.

Reply

Marsh Posté le 22-02-2005 à 18:53:14    

oui ok mais c'était pour être sur car j'arrive pas à générer de cookie (je travaille en local) pourtant j'accepte les cookies dans php et ainsi que dans le navigateur

Reply

Marsh Posté le 22-02-2005 à 18:55:59    

"j'accepte les cookies dans php" ???
Ha bon? Tu fais ça comment?

Reply

Marsh Posté le 22-02-2005 à 18:59:43    

session.use_cookies=1  

Reply

Marsh Posté le 22-02-2005 à 19:11:59    

ça veut pas dire que tu les accepte, mais que le SESSID va transiter par cookie... c'était juste un "abus de langage" que soulignait omega2 ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 22-02-2005 à 19:18:27    

Moi je dois dire que j'accepte les cookies sous lynx *ok je sors*


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 22-02-2005 à 19:31:08    

Au niveau du navigateur, ok, c'est normal de régler l'acception, du cookie. ;)
Bon, pour répondre à la toute premiére question, si le navigateur accepte les cookies, normalement php envoie au navigateur une demande de mise en cookie de l'identifiant de la session. (il fait le setcookie() tout seul quoi) Si le navigateur n'accepte pas les cookies, php rajoute l'identifiant de session dans tous les liens pointant vers le même site.
En bref, de ce côté là, tu n'as pas à t'occuper de comment l'identifiant est passé.

Reply

Marsh Posté le 22-02-2005 à 20:01:14    

Parcontre je conseille d'interdire l'envoie de phpid par session parceque c'est un trou de secu.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-02-2005 à 10:33:15    

Si tu génère un cookie avec une durée de 0 il est stocké en cache du navigateur et pas avec les petits cookies longue durée, et sera donc effacé à la fermeture du navigateur

Reply

Marsh Posté le 23-02-2005 à 10:33:15   

Reply

Marsh Posté le 24-02-2005 à 20:38:48    

esox_ch a écrit :

Parcontre je conseille d'interdire l'envoie de phpid par session parceque c'est un trou de secu.


 tu veu l'envoyer comment alors???

Reply

Marsh Posté le 24-02-2005 à 20:47:29    

Oops erreur de moi :  
 
Je me reprend :
 
Je conseille d'interdit l'envoi du phpid par GET.
Et l'autoriser uniquement par cookie.
 
Sorry :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-02-2005 à 20:49:58    

ouai pmai les cookie c aléatoire !!!
c pa mieu par POST????

Reply

Marsh Posté le 24-02-2005 à 20:59:36    

Non, on peut la recuperer au passage (de maniere pas legale bien entendu) et l'utiliser pour usurper ton identité. Donc je prefere bloquer 1 gars qui veut pas accepter mes cookies (Dsl mais un forum sans cookies c'est pas un forum !) et pas laisser entrer des malins qui vont fouttre le boxon


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-02-2005 à 21:02:35    

oui mai moi c pa pour un forum  
 
lorsque je fé azfficher le code source de ma page j'ai url suivi du numérode session est ce normal

Reply

Marsh Posté le 24-02-2005 à 22:03:36    

non c'est pas normal, et c'est surtout pas sur


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-02-2005 à 09:12:02    

a quoi c du alors??

Reply

Marsh Posté le 25-02-2005 à 09:12:35    

Ca veut dire que ton numero de session est passé par URL, ce qui est pas bon


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-02-2005 à 09:26:25    

ba non je le passe par post
voici qd j'affiche le code source de IE
<body background="image/fond.png" >
<h2><center>Je suis en construction</h2><form action='login.php' method='post'><input type="hidden" name="PHPSESSID" value="70fcd8f7fd29ed509d1ae02a19411a4b" /><input type='submit' value='retour'></center></form></body>
</html>

Reply

Marsh Posté le 25-02-2005 à 14:47:20    

qui peu me dire pkoi

Reply

Marsh Posté le 25-02-2005 à 14:55:55    

essai en ajoutant ça au tout début de ton script (ou alors tu change les valeur dans le php.ini si c'est pas fait...
 

Code :
  1. ini_set("session.use_trans_sid", "0" );
  2. ini_set('session.use_only_cookies', "1" );


 
Edit: ça forcera le passage du SESSID par cookie


Message édité par Xav_ le 25-02-2005 à 14:56:32

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 25-02-2005 à 15:01:08    

ouai mai je prefere passé par la méthode POST (je saio je sui chian)

Reply

Marsh Posté le 26-02-2005 à 12:27:56    

personne pour me repondre please

Reply

Marsh Posté le 26-02-2005 à 12:42:30    

Je ne pense pas que tu puisse transmetre le sessid via POST.
Ceci pour une simple et bonne raison.
Pour envoyer des informations par POST, il faut imperativement le faire via un formulaire. Autrement dit, tu dois le faire via le submit d'un formulaire.
 
Alors soit tu truffes tout ton site de JS pour que les liens se "transforment" en un espece de submit d'un form (+ modification dynamique d'un champ hidden qui indique ou le visiteur veut aller), soit tu laisse tomber POST.
Et tu risque egalement d'avoir des problemes si tu as un "vrai" formulaire que tes visiteurs doivent remplir ...
 
Pour finir, je ne sais pas comment php va se comporter avec le sessid transmis via post. En effet, le systeme des session s'occupe de facon transparente de la gestion du sessionid, mais egalement de sa recuperation et de son utilisation.
Dans ce cas precis, je ne pense pas que PHP ait ete prevu pour recuperer le sessid transmis via POST. Tu vas devoir t'en charger, et je ne sais pas dans quelle mesure cela est possible.
 
Peut-on passer en parametre le sessionid a "session_start" en php ?

Reply

Marsh Posté le 26-02-2005 à 16:13:27    

Je ne vois pas trop l'intéret de tenter le passage du sid par post...
 
Justement le but de la gestion des sessions par php est de le faire de façon quasi transparente pour le devellopeur...
 
Vu qu'un très très grand nombre de visiteurs acceptent les cookie, il suffit de laisser toutes les "options" par défaut...
 
Et comme ça a été dit plus haut, tu peux mettre une durée de 0 à tes cookies ce qui fera qu'ils seront détruits à la fermeture du navigateur :
session_set_cookie_params (0);
 
:)

Reply

Marsh Posté le 26-02-2005 à 19:22:22    

cerel a écrit :

Je ne pense pas que tu puisse transmetre le sessid via POST.
Ceci pour une simple et bonne raison.
Pour envoyer des informations par POST, il faut imperativement le faire via un formulaire. Autrement dit, tu dois le faire via le submit d'un formulaire.
 
Alors soit tu truffes tout ton site de JS pour que les liens se "transforment" en un espece de submit d'un form (+ modification dynamique d'un champ hidden qui indique ou le visiteur veut aller), soit tu laisse tomber POST.
Et tu risque egalement d'avoir des problemes si tu as un "vrai" formulaire que tes visiteurs doivent remplir ...
 
Pour finir, je ne sais pas comment php va se comporter avec le sessid transmis via post. En effet, le systeme des session s'occupe de facon transparente de la gestion du sessionid, mais egalement de sa recuperation et de son utilisation.
Dans ce cas precis, je ne pense pas que PHP ait ete prevu pour recuperer le sessid transmis via POST. Tu vas devoir t'en charger, et je ne sais pas dans quelle mesure cela est possible.
 
Peut-on passer en parametre le sessionid a "session_start" en php ?


 
C'est possible de recuperer ca, il suffi de faire un chap input hidden sur chaque page contenant le sid, apres de le recuperer avec un $_POST et de dire que le sid de la page est celui la... Secu = 0, intelligence du systeme = 0, utilité = 0


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-02-2005 à 02:02:56    

Le probleme est que pour que php recupere des infos dans $_POST, il faut que le navigateur envoi les infos en post. Or l'unique facon pour le faire, c'est via la validation d'un formulaire.
 
Donc comment faire "valider" le formulaire lorsque le visiteur clique sur des liens ?? Il faut "abuser" de Javascript pour que ce dernier remplisse un autre champ hidden qui contiene le "target" du lien, puis valide le formulaire.
Ensuite cote php, on recup le sessionid, on "retabli" la session puis on fait un redirect vers le "target" voulu.
Et la probleme, on va perdre les infos en $_POST, donc soit on retrasmet la sessionid via get (donc le passage par post etait INUTILE), soit l'on "emule un navigateur", comprendre, utiser un "fsockopen" pour aller chercher la page. Ce n'est que de cette maniere qu'il sera possible de renvoyer les informations en $_POST.
 
 
Pour resumer :
On peut soit utiliser un systeme EXTREMENT LOURD pour passer le sessionid via $_POST, soit laisser php s'en charger comme un grand.

Reply

Marsh Posté le 27-02-2005 à 07:25:12    

Exactement :D , comme je l'ai dit c'est lourd et stupide :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed