claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019
-
7 janv. 2014 à 14:47
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019
-
10 janv. 2014 à 08:37
Bonjour,
hébergé chez 1and1, j'ai un problème avec les cookies que je n'arrive pas à planter
Après 3 jours de galère , tél chez 1and1, email.....avec un script de login
j'ai fait un petit script d'essai qui fonctionne en local et sur un site ami
impossible chez 1and1
//Test ecrit dans un tableau les cookies existant print_r($_COOKIE); // test pour voir si les cookies existent
?>
et surprise en supprimant les echo'<br />'; le script fonctionne
question d'où peut venir ce problème et comment puisse-je faire pour y remédier.
car bien entendu dans mes scripts j'utilise des <br> avant de planter des cookies.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 7 janv. 2014 à 18:42
setcookie envoie des information dans le header HTTP, et tes "<br>" forcent l'envoi des données, donc du header, ce qui fait que tu ne peux pas mettre d'autres informations de header après avoir envoyé du texte (même un simple "\r\b")
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019 7 janv. 2014 à 19:06
Bonjour et merci pour ta réponse
c'est ce que je pensais au départ, c'est pourquoi que j'ai mis en php avec des échos, mais ils sont interprétés comme du html
mais pourquoi le même script fonctionne sur mon serveur local et sur cg-aisne.org/cookie.php et pas sur 1and1 ????
y-a-t-il pas une config de php.init à faire
mais comment planter des cookies en plein milieu d'un script ,aprés avoir fait des traitements sur la bdd
dam75
Messages postés1043Date d'inscriptionlundi 4 mai 2009StatutWebmasterDernière intervention21 février 2023 8 janv. 2014 à 20:10
Bonjour,
NHenry a raison. Mais l'hébergement peut aussi modifier ce comportement via le protocole HTTP utilisé et configuré dans Apache :
- si GZIP (ce qui est conseillé) => le serveur va "retenir" tout le buffer pour l'envoyer à la fin au client (le navigateur) => ton code fonctionne.
- si envoi au fil de l'eau (depuis HTTP 1.1 je crois) => effectivement le serveur va envoyer (flusher) les paquets au fur et à mesure de tes <?php echo ... ?> et donc le setcookie ne fonctionnera pas.
Si tu peux, le mieux est effectivement dans ton code de séparer la logique (base de données, cookies, ...) de la présentation : tu fais toute la logique en 1er sans rien écrire (pas de echo ni rien), puis ensuite tu génères la présentation (donc le code HTML, les <BR>, ...)
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019 8 janv. 2014 à 22:07
Bonjour et merci pour ta réponse
la différence de config entre 1and1 et les deux autres serveurs ou çà fonctionne est session.cookie_httponly
ou chez 1and1 la valeur est "" alors que pour les deux autres serveurs la valeur et off
1and1 me dit que je peux mettre un fichier php.ini pour forcer le serveur mais je ne trouve pas le code à mettre dans le fichier
ce qui m'énerve c'est que mon script de login fonctionne dans les autres serveurs sauf 1and1
si tu as le code du php.ini je suis preneur, ca me servira pour tous les autres scripts que je dois migrer sans avoir à tout réécrire
merci d'avance, Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019 9 janv. 2014 à 14:39
Bonjour dam
merci pour la réponse, c'est sympa
comme je n'ai pas accès au php.ini sur le serveur,
j'ai mis en place un php.ini dans le répertoire de travail
avec dedans ta fonction
ini_set('session.cookie_httponly', 1);
Malheureusement c'est pareil dés que l'on veut afficher qque chose, même pour une variable.
je vais voir pour envoyer les variables de traitement en POST sur une autre page pour planter uniquement les cookies
je vais continuer à chercher le pourquoi du comment
mais c'est rageant , alors que tout fonctionne sur les autres serveurs et ne pas savoir pourquoi par rapport à 1and1
dam75
Messages postés1043Date d'inscriptionlundi 4 mai 2009StatutWebmasterDernière intervention21 février 2023 9 janv. 2014 à 20:08
Et le MEME code marche bien chez toi ? ah bin ca doit être une différence de configuration autre que session.cookie_httponly ... pourtant c'est toi qui as dit que c'était ca la différence ?
En tous cas je ne vois pas ... il faudrait regarder la configuration du server 1&1 ou leur poser la question ^^
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019 10 janv. 2014 à 08:37
bonjour dam
oui c'est pour cela que çà m'énerve non seulement il fonctionne en local mais aussi sur un autre serveur extérieur ou est hébergé une association dont je m'occupe.
si c'était possible et si ne n'abuse pas, si tu pouvais essayer le script sur ton serveur, çà m'intéresserait d'avoir la réponse
1and 1 me répond on est hébergeur on ne fait pas de scripting
un bon mot pour botter en touche
en tout je te remercie de ta disponibilité
bonne journée