probleme avce setcookie

nabs
Invité n'ayant pas de compte PHPfrance

19 avr. 2006, 09:08

slt a tous,

j'ai un souci avec cette fonction, qui marchait bien ya un certain temps sur une petite appli que j'ai fait en php, en reessayant cette meme appli, bein ca me donne ca :
Warning: Cannot modify header information - headers already sent by (output started at e:\program files\easyphp1-8\www\application\liste.php:2) in e:\program files\easyphp1-8\www\application\liste.php on line 17
Warning: Cannot modify header information - headers already sent by (output started at e:\program files\easyphp1-8\www\application\liste.php:2) in e:\program files\easyphp1-8\www\application\liste.php on line 18
Warning: Cannot modify header information - headers already sent by (output started at e:\program files\easyphp1-8\www\application\liste.php:2) in e:\program files\easyphp1-8\www\application\liste.php on line 19
Warning: Cannot modify header information - headers already sent by (output started at e:\program files\easyphp1-8\www\application\liste.php:2) in e:\program files\easyphp1-8\www\application\liste.php on line 20
si quelqu'un avait une idée de ce que ca peut etre ca m'aiderai bien. j'ai pensé que la fonction renvoyait false et que l'affichage était due a ca, mais non car je récupere la valeur et je fais un test dessus, ce qui devrait éviter de m'afficher ce genre de cochonnerie. pourtant c tjrs la. je comprend pas en + ca marchait nikel.
merci de bien vouloir m'aider sur ce point.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 avr. 2006, 09:27

Regarde si tu n'as pas du texte envoyé au navigateur avant le setcookie() (HTML, texte ou même simple espace)
Modifié en dernier par ouckileou le 19 avr. 2006, 10:47, modifié 1 fois.

Eléphant du PHP | 120 Messages

19 avr. 2006, 10:13

justement non, j'ai lu sur un site que l'utilisation de cette fonction exigeait d'etre avant toute balise html, contrainte des cookies. donc j'ai adapté mon code en mettant mes balises apres l'appel a ces fonctions.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 avr. 2006, 10:31

Et bien c'est le moment de montrer le code je crois...

Eléphant du PHP | 120 Messages

19 avr. 2006, 10:38

lol :D

le voila :
<?php

 if(isset($_POST["debut"])==TRUE)
 {
  $host=$_POST['host'];
  $login=$_POST['login'];
  $passwd=$_POST['pass'];
  $base=$_POST['bdd'];

  $connexion=@mysql_connect($host,$login,$passwd);
  if(!$connexion)
  {
   print("connexion non établie");
  }
  else {
   if(setcookie("bdd_host","$host",(time()+900))==false)echo "pas de cookie";
   if(setcookie("bdd_login","$login",(time()+900))==false)echo "pas de cookie";
   if(setcookie("bdd_pass","$passwd",(time()+900))==false)echo "pas de cookie";
   if(setcookie("bdd_base","$base",(time()+900))==false)echo "pas de cookie";      
   
   echo "<html><head><TITLE>liste utilisateurs</TITLE>";
   echo "<STYLE type='text/css'>";
   echo "body {";
   echo "font-size:20;";
   echo "color:#00ff00;";
   echo "}";
   echo "</STYLE>";
   echo "</head>";
   echo "<BODY  bgcolor='#0000ff'>";
   if(mysql_select_db("$base")==FALSE)
   {
    $query="CREATE DATABASE $base;";
//...
ceci est le code contenu dans le fichier liste.php, ce fichier est appelé a partir d'un fichier install.php qui envoi en POST l'host,le login,le pass et le nom de la bdd.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 avr. 2006, 10:45

Regarde si tu n'a pas du texte envoyé au navigateur avant le setcookie() (HTML, texte ou même simple espace)
justement non
Et c'est quoi cette premiere ligne blanche avant ton "<?" hmm ??!! ;)

Eléphant du PHP | 120 Messages

19 avr. 2006, 10:50

mdr !!!
c ce qui me permet d'introduire mon code php, si je ne la met pas comment vais-je introduire ces fonctions ?
si tu vois comment le corriger merci de me le montrer.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 avr. 2006, 10:58

Il y avait effectivement une ligne vide, AVANT la balise <?php, elle a disparu quand j'ai changé les balises

Code : Tout sélectionner

en [php] C'est de cette ligne qu'il parle, pas de balise <?php, lis bien les messages... Aucun texte ne doit être envoyé au navigateur avant le setcookie(), ça veut dire : - pas de echo ou print ou autre fonction d'affichage avant le setcookie - pas de texte, HTML, ou même un SIMPLE ESPACE avant la balise <?php Donc vérifie que tu n'as rien

Eléphant du PHP | 120 Messages

19 avr. 2006, 11:02

nikel !!!
ca marche ! c le top, merci bcp pour votre aide les gars !!!
c tré subtile n'empeche, un simple saut de ligne avant cette balise <? me faisait planter la fonction. fallait le voir, franchement chapeau les gars. merci encore.

Eléphant du PHP | 120 Messages

19 avr. 2006, 11:05

au faite comment mettre ce message en résolu je trouve pas de lien me permettant de le faire.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

19 avr. 2006, 11:06

Quand tu as ces messages d'erreurs tu peux être quasiment sûr que c'est la cause de ton problème, tu le sauras les prochaines fois ;)
au faite comment mettre ce message en résolu je trouve pas de lien me permettant de le faire.
Tu ne peux pas, tu as posté en Invité
je l'ai fait