Page 1 sur 1

probleme avce setcookie

Posté : 19 avr. 2006, 09:08
par nabs
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.

Posté : 19 avr. 2006, 09:27
par ouckileou
Regarde si tu n'as pas du texte envoyé au navigateur avant le setcookie() (HTML, texte ou même simple espace)

Posté : 19 avr. 2006, 10:13
par nabs
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.

Posté : 19 avr. 2006, 10:31
par ouckileou
Et bien c'est le moment de montrer le code je crois...

Posté : 19 avr. 2006, 10:38
par nabs
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.

Posté : 19 avr. 2006, 10:45
par Ryle
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 ??!! ;)

Posté : 19 avr. 2006, 10:50
par nabs
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.

Posté : 19 avr. 2006, 10:58
par ouckileou
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

Posté : 19 avr. 2006, 11:02
par nabs
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.

Posté : 19 avr. 2006, 11:05
par nabs
au faite comment mettre ce message en résolu je trouve pas de lien me permettant de le faire.

Posté : 19 avr. 2006, 11:06
par ouckileou
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