|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Bonjour,
j'ai un petit souci : je voudrais faire une session ds du code php hébergé chez free, et ça ne marche pas ; il y a peut-être une erreur grossière (cela fait moins d'1 an que je connais le php). Peut-on m'aider ? J'ai fait un essai ultra simple ; voici le code php qui ne marche pas : Code :
|
||
|
|
00
|
|
|
#2 | |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
J'ai oublié de donner le msg d'erreur que j'obtiens ; le voici :
Citation:
|
|
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
Il me semble qu'il faut créer le répertoire "sessions" à la racine de l'hébergement, il n'existe pas par défaut.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#4 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Je viens de le créer, mais ça ne change rien. J'apprécierais d'avoir le témoignage de qqun chez qui ça marche...
|
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
Mon témoignage ne te suffit pas ? J'ai les droit 755 sur mon répertoire. Il est à la racine de mon hébergement. Et il s'appelle sessions avec un s à la fin et tout en minuscule.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#6 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Je ne voulais pas être désagréable... Avant, j'avais créé ce répertoire ds un autre répertoire (c'était un sous-répertoire). J'ai recommencé en le mettant vraiment à la racine de l'espace ; cette fois, après l'essai, il y avait qq chose dedans (et pas avant). Donc c'est bien important. Mais, j'ai qd même le warning : est-ce que le même essai (simplissime) marche chez toi ?... (et je ne sais ce que veut dire "droits 755").
|
|
|
00
|
|
|
#7 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
J'aimerais bien tordre le coup à ce pb, surtout que je suis sûr que ça doit marcher. Le plus simple serait de me donner un exemple simple qui marche.
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
T'es sûr que c'est vraiment le même message d'erreur ? Logiquement, vu qu'il arrive à créer des fichiers dans le répertoire sessions, il ne devrait plus planter de cette façon-là.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#9 | |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Non, il y a effectivement une variante : avant, il y avait en tout, je crois, 3 msgs d'erreur, et il n'y en a plus que 2 : les suivants :
Citation:
Et en fait, la ligne n°14, qui semble poser pb, est celle où il y a "session_start();". Le test2 que l'on voit, je ne sais pas pourquoi il est là, mais ds test.php, après le code php, je fais un lien vers test2.php, et ds lequel je tente d'afficher la variable de session. |
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
Il faut faire un session_start() tout au début du script, avant la première ligne de code HTML. En fait, vu que les sessions marchent par cookie, le serveur doit envoyer un cookie au navigateur, c'est-à-dire un en-tête HTTP spécifique. Les en-têtes HTTP doivent être envoyés au navigateur avant tout contenu (= tout code HTML). Or, apparemment, ton script as déjà envoyé du code HTML avant de faire le session_start(). PHP ne peut donc plus envoyé le cookie de session qui va bien, d'où le message d'erreur.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#11 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Tu as raison : il y a une ligne de code avant le session_start. Je ferai l'essai ce soir, vu que là, je suis au bureau, et que le réseau m'empêche de me connecter à Free... En tout cas, ton explication tient la route ; j'y crois.
|
|
|
00
|
|
|
#12 | ||
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
J'ai un peu les boules, car j'ai refait un essai avec le code suivant :
Code :
|
||
|
|
00
|
|
|
#13 | ||
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
Bah oui : tu n'as pas mis session_start() avant la toute première ligne de code HTML. Il faut faire comme ceci :
Code :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||
|
|
00
|
|
|
#14 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Je suis super content d'avoir cliqué sur Résolu.
Pour moi, l'entête, ce n'était pas du code. Et j'ai mixé plusieurs choses obtenues sur ce forum (tout par toi, je crois) : en effet, je lis la résolution de l'utilisateur pour afficher l'image qui va bien : je fais ce traitement en php, et comme la lecture de la résolution se fait en javascript, pour passer les paramètres du js au php, on fait une redirection (window.location), mais comme action d'un formulaire, ce n'est pas possible ; donc comme on passe forcément par une autre page avant (la page d'accueil), je stocke là la résolution ds des variables de session, puis je les récupère ds l'action du formulaire. Et ça marche. C'est génial : c'est bcp plus compliqué que ce que je n'ai jamais fait (et dire qu'il y a un an, je ne connaissais même pas l'existence du php ! (et il y a 2 ans, je ne connaissais rien au html)). Merci bcp de ton aide : ![]() |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com