Sessions => demande confirmation d infos [PHP] - PHP - Programmation
Marsh Posté le 31-07-2002 à 15:31:14
Je répond d'abord au BONUS ! Sur Free si l'extension de ton fichier est .php3 tu peux uploader des fichiers, si c'est .php TU NE PEUX PAS.
Le multipart/form-data est obligatoire dans les formulaires d'upload sinon le fichier ne sera pas uploadé.
1. session_start() et pas start_session() .
Oui il faut le mettre au début de chaque page où il faut les sessions.
Note : le session_start() est fait automatiquement lorsque le script rencontre le 1er session_register() (cf. doc).
Conseil : rajouter avant chaque session_start() :
Code :
|
Car si je met l'URL tapageavecsessions.php?PHPSESSID=12345 eh bien l'ID Session sera 12345 et non une chaîne de 32 caractère comme ça devrait être.
PAUSE, je reviens...
Marsh Posté le 31-07-2002 à 15:36:51
oui dsl pour le session_start c etait dans le feu de l action
Heu dis moi on peut melanger script php3 et php ?
Car je suis en train de faire un site et je n ai fait que des script en .php (version 4 donc) mais g besoin de faire un upload , g donc a partir d un script recupere fait un script d upload donc si je comprend bien ce script la que je dois mettre en .php3 pour pouvoir gerer le enctype de la page html source.
Mais mon script d upload est juste un script ou g definis les fct necessaires et il est donc inclus dans un autre alors comment je m en sorts avec tout ca ?
Marsh Posté le 31-07-2002 à 15:37:36
2. Les sessions c'est composé de 2 parties :
- Un fichier sur le serveur qui contient ... euh, tout ce que tu as enregistré dans la session. Cette session a un ID (32 caractères), pour la reconnaître.
- Le visiteur a soit :
* Un cookie de session contenant le numéro, celui-ci est mis automatiquement sur sa machine si la directive use_cookie=1 dans php.ini rubrique [Sessions].
* Tu trimballes ?PHPSESSID=386768465768qsd57qd7 dans chaque URL. Ca évite à au visiteur d'avoir à activer les cookies mais c'est crade ! Note : Pour rajouter le truc au-dessus dans l'URL, regarde dans la doc... Y'a soit manuellement (<?=SID?> ) soit auto avec la directive enable_use_transid=1.
Personnellement je mets enable_use_transid=0 et use_cookie=1 car je trouve le transfert de l'ID par URL vraiment très crade.
Marsh Posté le 31-07-2002 à 15:39:02
MkRacing66 a écrit a écrit : oui dsl pour le session_start c etait dans le feu de l action Heu dis moi on peut melanger script php3 et php ? Car je suis en train de faire un site et je n ai fait que des script en .php (version 4 donc) mais g besoin de faire un upload , g donc a partir d un script recupere fait un script d upload donc si je comprend bien ce script la que je dois mettre en .php3 pour pouvoir gerer le enctype de la page html source. Mais mon script d upload est juste un script ou g definis les fct necessaires et il est donc inclus dans un autre alors comment je m en sorts avec tout ca ? |
Fais un test pour voir.
C sûr que tu peux mélanger des .php et des .php3 mais je sais pas si en incluant un .php3 dans un .php ça fonctionnera.
Marsh Posté le 31-07-2002 à 15:43:54
Si c faisable je pense qu il est plus naturel d inclure un php3 dans un php que l inverse kestion de compatibilite ascendante...
Sinon pour le use_cookie et autre , tu me dis que c definit dans le php.ini mais bon etant sur free je suis impose par leur param non ?
Si c non je fais ca comment de definir la valeur a 1 ?
Arf je patauge dur dur de debuter le php tout en voulant rester avec un code propre mais efficace et ki marche
Merci pour ton aide
Marsh Posté le 31-07-2002 à 15:44:44
2 BIS. La durée de vie d'une session c'est le tps que le fichier session serveur reste sur le serveur.
3. No sé !
4. Ca sert à ça, effectivement ! Mais aussi à moins utiliser les cookies. Car même s'il faut utiliser un cookie de session c'est quand même mieux que dans ce cookie il y ait un ID incompréhensible qui sera supprimé une fois la durée de vie de la session écoulée plutôt qu'un truc du genre "password=monpass" !
Dernière note : le cookie session a par défaut une durée de vie de 0 (voir dans php.ini)... Par conséquent il existe tant que le visiteur a son navigateur d'ouvert. Dès qu'il le ferme le cookie est supprimé... Et quand il reviendra sur le site une nouvelle session sera créée (l'ancienne, même si le fichier session serveur existe tjrs, restera orpheline). Donc c'est à la fois un inconvénient et un avantage. Personnellement je considère que c'est un avantage dans le cas d'un système de login/pwd.
Marsh Posté le 31-07-2002 à 15:45:59
MkRacing66 a écrit a écrit : Si c faisable je pense qu il est plus naturel d inclure un php3 dans un php que l inverse kestion de compatibilite ascendante... Sinon pour le use_cookie et autre , tu me dis que c definit dans le php.ini mais bon etant sur free je suis impose par leur param non ? Si c non je fais ca comment de definir la valeur a 1 ? Arf je patauge dur dur de debuter le php tout en voulant rester avec un code propre mais efficace et ki marche Merci pour ton aide |
Fais une page phpinfo.php dans laquelle tu mets :
Code :
|
Vas sur cette page.
Tu verras quels sont les paramètres.
Marsh Posté le 31-07-2002 à 15:49:26
G epluche le tuto de phpdebutant.com et ce qui me perturbe c que je ne pige pas comment ils font pour retrouver la session dans les scritps suivant a moins qu ils ouvrent la session courante si c faisable...
Si on a qu une session (un seul type : c juste pour du login/pass) cela marche il comme ca sans se faire chier ou c que leur tuto est mal foutu ?
thx
Marsh Posté le 31-07-2002 à 15:50:22
Dost67 a écrit a écrit : Fais une page phpinfo.php dans laquelle tu mets :
Vas sur cette page. |
Ouais ouais je l ais deja fait ca mais bon ca ne m avance pas des masses car je ne sais pas trop dechiffre tout ca
Marsh Posté le 31-07-2002 à 16:00:10
Rubrique Session du phpinfo()...
session.auto_start Off --> pas d'ouverture implicite des sessions... session_start() obligatoire au début de chaque script
session.cookie_lifetime 0 --> cookie comme je t'ai dis... Ki ne reste tant que le visiteur n'a pas fermé son navigateur.
session.use_cookies On --> cookies de session activés.
session.use_trans_sid 1 --> l'ID sera auto ajouté à l'URL si le cookie n'a pu être placé sur le DD du visiteur.
Marsh Posté le 31-07-2002 à 16:03:54
Il m'est possible de modifier l une de ces valeurs ?
Bon peut etre pas sur free mais qd on apache ou ISS avec php qui tourne , on doit mofifier la valeur mauellement dans le ini ou on peut le programmer dans l un des scripts ?
Un grand merci a Dost
Marsh Posté le 31-07-2002 à 16:47:35
Modifier ces valeurs ? Non !
Sur PHPDebutant c'est normal que le tut est bien.
Le session_start() regarde s'il y a le cookie ou la variable dans l'URL... Si ID correct, reprend la session sinon créé une nouvelle.
Mon conseil du premier topic ne fonctionne que si tu n'utilises pas le passage de l'ID par l'URL.
Sinon faut rajouter :
Code :
|
dans le if.
Marsh Posté le 31-07-2002 à 16:54:27
Heu oula je me suis de nouveau perdu....je pensais que le code du 1er topic servait pour le passage auto dans l url.
donc en fait etant donne que sur free les deux sont actives, si je codifie avec ce que tu m as donne :
:
Code :
|
ca fera la recup de l info de la session dans le cookie c bien ca ?
et mem d apres ce que je lis de partout si je ne mets aucun code le session_start se charge tout seul d aller verifier la presence d un cookie ou dans l url.
Marsh Posté le 31-07-2002 à 17:27:17
Heu encore un truc...
Si l on veut rajouter a la session une valeur specifique mais qui ne peut etre recupere que qd l utilisateur click sur un lien on fait comment ?
Oblige de creer une fonction associe a un evenement onclick pour le lien et ainsi affecte la valeur ?
Je m explique je veux appeler la meme page pour plusieurs liens d une page construite en php mais je differencie chque lien par une variable....
Merci
Marsh Posté le 31-07-2002 à 15:13:33
Bon voila je viens de passer 30h a eplucher les topics sur les sessions alors si vous pouviez me confirmer certaines choses avant que je ne foute le basard dans mes scripts de debutant
Donc pour les sessions :
Edit : QQun peut il m expliquer clairement comment ca fct car plus je lis la doc sur php.net et moins je pige surtout qd ils disent de passer le id de seesion en GET
Pour pouvoir se trimbaler les infos de une seule session est oblige de se trimballer le id session ?
Car il vraiment on repercute des variables sur plusieurs pages et donc cet avancement est lie a la rapidite de l utilisateur il devient impossible de maintenir sa session non ?
Merci
PS: une petite derniere pour la route
Sous free, si l on veut faire de l upload il faut mettre le enctype="multipart..." ou non car il semble que cela fct dans une certaine version et pas dans une autre
c quoi ce binz
Message édité par mkracing66 le 31-07-2002 à 15:24:09