Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Achat - Vente Divers : schloups et 12 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Session et cookies

 
n°14264
ELIX3
Profil : Jeune recrue
Posté le 21-07-2005 à 20:45:34  profilanswer
 

Voila j'aimerais avoir une confirmation : j'ai commencé a programmé en php et je me suis apercu que si je n'activais pas les cookies mon navigateur créait des nouvelles session a chaque pages visitées . Donc mes variables ne sont pas communiquée d'une page à l'autre.
 
Est il obligatoire d'activer les cookies sur le navigateur pour utiliser les sessions?
 
Y a t il un autre moyen de passer des valeur de pages a pages sans activé les cookies?
 
(pour info je test avec IE et firefox et easyphp avec une configuration d'origine)

n°14271
snarky
Profil : Membre
Posté le 22-07-2005 à 03:09:59  profilanswer
 

les sessions n'ont rien avoir avec les cookies
donc ya pas besoin de cookies pour utiliser les sessions.

n°14274
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 22-07-2005 à 10:27:38  profilanswer
 

+1
Les cookies ne servent qu'à stocker sur le client des infos relatives à l'utilisateur, et parfois ses habitudes.
 
Pour passer des variables, tu as deux choix, les urls ou bien les formulaires.
Dans le cas des urls, voivi un exemple :

Code :
  1. maPage.php?var1=toto&var2=maman&var3=25


Ici, dans le traitement de la page maPage.php, tu pourras récupérer les variables et leur valeur à l'aide de $_GET :

Code :
  1. $_GET["var1"];
  2. $_GET["var2"];
  3. $_GET["var3"];


Message édité par ollone le 22-07-2005 à 12:47:29
n°14275
Kaaribuu
Profil : Jeune recrue
Posté le 22-07-2005 à 12:32:44  profilanswer
 

Ollone, si les variables sont passées dans l'URL, alors c'est $_GET qui permet de les récupérer, si je ne m'abuse.
 
Quand à la session, pour que les valeurs de sessions passent d'une page a l'autre, 2 solutions :
1. faire des liens de type

<?php echo "<a href='page.php?" . SID . "'>Page</a>";?>


Ou alors mettre a true dans la confid php.ini le parametre 'session.auto_start' (je crois, à vérifier que ce soit bien lui) A ce moment les variables $_SESSION["blabla"] sont automatique transmises, tu n'as plus qu'a faire "session_start()" en début de page. Pas besoin de cookies donc.
 
Normalement dans Easyphp le parametre session.auto_start (ou du moins celui dont je parle si je me trompe de nom :) ) est à true. En tout cas moi sans transmettre le SID dans les url, mes variables de session sont conservées.

n°14276
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 22-07-2005 à 12:47:09  profilanswer
 

Arf désolé, j'ai répondu à l'arrache et comme je parlais des formulaires...
 
Donc, c'est bien $_GET pour récupérer les variables d'url, et $_POST pour récupérer des variables de formulaire (à condition d'avoir choisi la méthode 'POST' dans le formulaire).
J'édite de suite.

n°14280
Zebra3
Very nice !
Profil : Super Administrateur
Posté le 23-07-2005 à 00:06:18  profilanswer
 

snarky a écrit :

les sessions n'ont rien avoir avec les cookies
donc ya pas besoin de cookies pour utiliser les sessions.


Pas complètement vrai  :non: mais, je te l'accorde, pas complètement vrai faux non plus.
 
Il ya 3 méthodes pour propager un identifiant de session au travers des pages d'un site :
 

  • avec des cookies, méthode la plus simple et utilisée par défaut sur la majorité des conf php. Avec ça pas besion de se soucier de passer l'identifiant de session, un session_start() en début de page suffit, bien entendu c'est problématique si le navigateur client est n'accepter pas les cookies. Voici les variables du php.ini concernées :


; 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


 

  • en passant manuellement l'identifiant de session dans toutes les url et formulaires (cf. post de Kaaribuu)


  • en configurant php pour modifier automatiquement les url et formulaires : l'identifiant de session sera ajouté à toutes les url, celà revient au même que de le faire à la main mais nettement moins fastidieux ;)

Kaaribuu s'est trompé sur la variable de configuration utilisée pour régler cette option ( session.auto_start permet juste de ne pas devoir appeller session_start() à chaque début de page) alors voici un extrait du php.ini contenant les 2 variables de conf à utiliser :

; 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 = 0
 
; 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=,fieldset="


 
à toi de faire ton choix maintenant ;)


Message édité par Zebra3 le 23-07-2005 à 00:07:04

---------------
"Merci Karim de ne pas être parti à l'étranger, et de ne pas nous avoir laissé seuls avec Djibril Cissé et Bernard Mendy" (c) Thomas Ngijol (Le grand journal, 07/01/08)

Aller à :
Ajouter une réponse