Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2008, 13h47   #1
Membre à l'essai
 
Inscription : mai 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 98
Points : 21
Points : 21
Par défaut [Cookies] Erreur cookie php milieu de page chez Free

Bonjour,
Voila j'ai vu que sur un site, il fallait mettre les cookies tout au début de la page pour que le serveur FREE ne plante pas.
=> il est vrai car cela fonctionne

Mon problème c'est que je ne peux pas mettre le cookie en haut de la page, suite à une requête ou à un calcul, je mets à jour le cookie.

Le code fonctionnait sans problème sur WAMP mais pas sur free.

Comment pourrais-je faire?

merci d'avance
fabiofabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 14h05   #2
Membre actif
 
Avatar de fenkys
 
Inscription : octobre 2007
Messages : 157
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : octobre 2007
Messages : 157
Points : 181
Points : 181
Que signifie la phrase : "mettre les cookies en haut de la page" ?

Dans une page HTML il n'y a pas de cookies.
fenkys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 14h38   #3
Membre à l'essai
 
Inscription : mai 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 98
Points : 21
Points : 21
heu....heu...

Debut de la page du fichier.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
début du code php , je dois mettre le cookie ici pour que ça fonctionne...
 
ici du code php
 
ici milieu du code php, ici je veux mettre mon cookie qui ne fonctionne pas ...
 
ici du code php
 
ici fin du code php
?>
 
Puis après du HTML
fin de la page du fichier.php


Voila, j'espère que c'est plus clair mais je n'ai pas parlé de HTML

Mettre en "haut de la page" c'est mettre au début de code...
fabiofabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 14h53   #4
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Bonjour,
vous pouvez mettre votre cookie avant n'importe quel echo ou balises html.

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
 
  // traitement sans affichage
  // echo 'test'; // erreur
  // ?><html><?php // erreur
 
  setcookie();
 
  echo '<html>';
 
?>
Cordialement,
DaRiaN.
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 07h26   #5
Membre à l'essai
 
Inscription : mai 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 98
Points : 21
Points : 21
Ok merci pour cette réponse

voila dans mon code c'est que j'ai quand meme un seul "echo" avant d'installer mon cookie car je test la provenance de mon formulaire comme ceci

Code :
1
2
3
4
5
6
7
8
9
10
 
<?php
if(!isset($_POST['prod']))
else
{
echo "Désolé, vous ne pouvez pas accéder directement à cette page";
exit;
}
 
?>
toujours pas d'autre solution?
fabiofabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 09h07   #6
Membre actif
 
Avatar de fenkys
 
Inscription : octobre 2007
Messages : 157
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : octobre 2007
Messages : 157
Points : 181
Points : 181
Les cookies sont envoyés avec les en têtes. Le texte de la page est envoyés avec le corps du message HTTP. Les en têtes sont envoyés avant le corps du message. Donc quand le corps du message est envoyé, par un echo ou du texte HTML situé hors des balises "<?php ... ?>" ou un message d'erreur généré par PHP, on ne peut plus envoyer d'en tête supplementaire, donc de cookies. Ceci est valable pour toutes les en têtes, comme par exemple "location" qui ne marche plus une fois que des données ont été affichées.

La précision que je t'ai demandé était utile car il n'y a pas de pages en PHP, il n'y a que des scripts. Et le haut du script PHP ne correspond pas forcement au haut de la page HTML.
fenkys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2008, 12h06   #7
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Code :
1
2
echo "Désolé, vous ne pouvez pas accéder directement à cette page";
exit;
Non, cela n'a aucune incidence car il y a un exit(), juste après. Vérifiez bien ne pas avoir de balise HTML ou d'espace, saut de ligne en tout début de script, avant la balise <?php.
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2008, 15h30   #8
Membre à l'essai
 
Inscription : mai 2005
Messages : 98
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 98
Points : 21
Points : 21
Et bien merci pour tous vos conseils, j'ai donc ré-essayé et ça fonctionne.

Ce qui m'embête, c'est que je n'ai rien fait de spécial !

J'ai quand remis tous mes lignes de codes en ordre comme enlever les espaces, ré-indenter, et mettre tout le code php possible au début du code

je vous remercie tout de même car ça fonctionne et je ne sais malheureusement pas pourquoi !

bye bye
fabiofabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h47.


 
 
 
 
Partenaires

Hébergement Web