Erreur header avec une affiliation de petites-annonces

Erreur header avec une affiliation de petites-annonces - PHP - Programmation

Marsh Posté le 09-09-2004 à 04:28:31    

Bonjour ou plutot bonsoir :p
j'ai une erreur :  

Code :
  1. Warning: Cannot modify header information - headers already sent by (output started at /home/fullport/web/petites-annonces/index.php:5) in /home/fullport/web/petites-annonces/index.php on line 208


avec une marque blanche de petites-annonces
voici la ligne 208 en question :

Code :
  1. header($mix_headerclient);


 
 
voilà j'ai vu sur un forum qu'il y'avait un truc a faire pour regler le bleme mais je m'ensouvient plus  :o  
merci de m'aider  :sarcastic:  
a+


Message édité par boeing le 09-09-2004 à 04:30:16
Reply

Marsh Posté le 09-09-2004 à 04:28:31   

Reply

Marsh Posté le 09-09-2004 à 04:46:07    

Cette erreur veut dire que tu envoi des données d'en-tete aprés avoir envoyer du html, tu as besoin de regarder dans le reste du code pour trouver ca !
 
Sinon tu peux tout mettre dans un buffer et envoyer le buffer à la fin, c'est plus simple.

Reply

Marsh Posté le 09-09-2004 à 08:22:24    

ligne 208, ben ça veut dire que dans les 207 lignes qui précèdent il faut que tu n'envoi rien en HTML vers le client, mais ça aspegic te l'a déjà dis...
 
ya pas moyen que tu fasse ta redirection avant, paske 200 lignes de traitement avant de savoir où tu dois aiguiller le visiteur ça me parait long...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 09-09-2004 à 10:07:30    

aspegic500mg a écrit :

Cette erreur veut dire que tu envoi des données d'en-tete aprés avoir envoyer du html, tu as besoin de regarder dans le reste du code pour trouver ca !
 
Sinon tu peux tout mettre dans un buffer et envoyer le buffer à la fin, c'est plus simple.


c'est quoi ce buffer ?? tu aurais un bon tuto par hasard ? s'il te plait...  :)


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 11:25:07    

Tu as commencé à envoyer des données à la ligne 5 (c'est indiqué dans le message d'erreur).
Faudrait qu'on voit ton code pour pouvoir t'aider.

Reply

Marsh Posté le 09-09-2004 à 14:46:23    

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Language" content="fr">
  4. <?php
  5. $AFF_NUMBER = "AFF2336";
  6. $mix_lien_redirect = "";
  7. $COOKIES_MIXAD = $GLOBALS["HTTP_COOKIE"];
  8. function GetServicePA()
  9. {
  10. $COOKIES_MIXAD = $GLOBALS["COOKIES_MIXAD"];
  11. $mix_redirect=False;
  12. $mix_fichiers="";
  13. $mix_headers="";
  14. $mix_dc = 0;
  15. $mix_form="";
  16.         $mix_bo="";
  17. $mix_variables="";
  18. $mix_buf="";
  19. $mix_header = true;
  20. $mix_result = "";
  21. $mix_urlsitebase=$_COOKIE["MixadUrlSiteBase"];
  22. $mix_method = $GLOBALS["REQUEST_METHOD"];
  23. $mix_host = "perso.mixad.com";
  24. $mix_create_form = $GLOBALS["create_form"];
  25. $mix_path = "/";
  26. $mix_port = 80;
  27. $mix_strcookie = "";
  28. $mix_headerclient="";
  29. $mix_lien_http = $GLOBALS["lien_http"];
  30. if ($mix_lien_http == "" ) {
  31.  $mix_lien_http=$GLOBALS["url_mixad"];
  32. }
  33. //Gestion des redirect IIS
  34. if ($GLOBALS["lien_redirect"] != "" ) {
  35.  $mix_lien_http = $GLOBALS["lien_redirect"];
  36. }
  37. //Extraction du path
  38. if ($mix_lien_http!="" ) {
  39.  $mix_path = $mix_lien_http;
  40.  $pos = strpos($mix_path,"?" );
  41.  if (is_int($pos)) {
  42.   $mix_path = substr($mix_path,0,$pos);
  43.   $mix_variables = substr($mix_lien_http,$pos+1) . "&";
  44.  }
  45. }
  46. //Extraction des variables du GET
  47. if ($GLOBALS["lien_redirect"] == "" && $mix_create_form=="" ) {
  48.  foreach($GLOBALS["HTTP_GET_VARS"] as $key=>$elem) {
  49.   if ($key!="lien_http" && $key!="action_http" && $key!="url_mixad" ) {
  50.    $mix_variables .=  $key . "=" . urlencode($elem) . "&";
  51.   }
  52.  }
  53. }
  54. //Interrogation du serveur IIS/MixadPerso distant  
  55. //pour affichage du service de petites annonces
  56. $fp = fsockopen($mix_host,$mix_port, $errno, $errstr,300);
  57. if (!isset($_COOKIE["MIXADTRACKING"]) || !strpos($_COOKIE["MIXADTRACKING"],"TCKID=" . $GLOBALS["AFF_NUMBER"]) ) {
  58.  $mix_variables.="TCKID=". $GLOBALS["AFF_NUMBER"] . "&NBCVERSION=PHP2&";
  59. }
  60. $mix_headers.="$mix_method $mix_path?$mix_variables HTTP/1.1\r\nHost: $mix_host\r\n";
  61. //On repasse tous les cookiees précédemment récupérés
  62. if (isset($COOKIES_MIXAD)&&$COOKIES_MIXAD!="" ) {
  63.  $mix_headers.="Cookie: ".$COOKIES_MIXAD."\r\n";
  64. }
  65. $mix_headers.="Accept: */*\r\n";
  66. $mix_headers.="Connection: Keep-Alive\r\n";
  67. if ($mix_create_form == "2" ) {
  68.  $bo_key = substr(md5($local_file.time()), 1, 15);
  69.  $mix_bo="-----------------------------".$bo_key;
  70.  $mix_form.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n";
  71.  $mix_form.="Accept-Charset: iso-8859-1,*,utf-8\r\n";
  72.  $mix_form.="Content-type: multipart/form-data; boundary=$mix_bo\r\n";
  73.  $mix_bo="-----------------------------".$bo_key."\r\n";
  74.  foreach($GLOBALS["HTTP_GET_VARS"] as $key=>$val) {
  75.   if ($key!="create_form" && $key!="lien_http" ) {
  76.    $ds =sprintf("%sContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", $mix_bo, $key, $val);
  77.    $mix_dc += strlen($ds);
  78.   }
  79.  }
  80.  $mix_dc += strlen($mix_bo)+3;
  81.  $mix_form.="Content-length: $mix_dc \r\n";
  82.  $mix_form.="\r\n";
  83.  foreach($GLOBALS["HTTP_GET_VARS"] as $key=>$val) {
  84.   if ($key!="create_form" && $key!="lien_http" ) {
  85.    $ds =sprintf("%sContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", $mix_bo, $key, $val);
  86.    $mix_form.=$ds;
  87.   }
  88.  }
  89.  $mix_bo =  "-----------------------------".$bo_key . "--";
  90.  $mix_form.=$mix_bo;
  91. }
  92. //Si create_form = 1
  93. if ($mix_create_form == "1" ) {
  94.  foreach($GLOBALS["HTTP_GET_VARS"] as $key=>$val) {
  95.   if ($key!="create_form" && $key!="lien_http" ) {
  96.    $mix_form .= $key . "=" . urlencode($val) . "&";
  97.   }
  98.  }
  99.  $mix_form = substr($mix_form,0,strlen($mix_form)-1);
  100.  $mix_headers.="Content-type: application/x-www-form-urlencoded\r\n";
  101.  $mix_headers.="Content-length: ". strlen($mix_form) ."\r\n\r\n";
  102. }
  103. if ($mix_create_form == "" ) {
  104.  $mix_headers.="\r\n";
  105. }
  106. fputs($fp, $mix_headers);
  107. fputs($fp, $mix_form."\r\n\r\n" );
  108. //Récupération du résultats  
  109. while(!feof($fp)) {
  110.  $line = fgets($fp,4096);
  111.  //Gestion des redirect de la Plate-Forme IIS
  112.  if ($line != "HTTP/1.1 302 Object moved\r\n" ) {
  113.   if ( $line == "\r\n"&&$mix_header) $mix_header = false;
  114.   //traitement des cookie renvoyés
  115.   if (substr($line,0,10) == "Set-Cookie" ) {
  116.    $mix_strcookie .= $line;
  117.    $dline=urldecode($line);
  118.    $firstpos=strpos($dline,'URL_BASE_AFFILIEUR=');
  119.    if ($firstpos!= false) {
  120.     $firstpos+=19;
  121.     $secpos=strpos($dline,'&ISAFFILIEUR');
  122.     $mix_urlsitebase = substr($dline,$firstpos,$secpos-$firstpos);
  123.     $mix_strcookie .= 'Set-Cookie: MixadUrlSiteBase='. urlencode($mix_urlsitebase) . "; path=/\r\n";
  124.    }
  125.   }
  126.   if ( $mix_header == false )
  127.   {
  128.    $mix_result = $fp;
  129.    break;
  130.   }
  131.  }
  132.  else {
  133.   $mix_redirect = True;
  134.   while(!feof($fp)) {
  135.    $line = fgets($fp,4096);
  136.    if ($line == "\r\n" ) {
  137.     break;
  138.    }
  139.    if (substr($line,0,9) == "Location:" ) {
  140.     $GLOBALS["lien_redirect"] = str_replace("\r\n","",substr($line,10));
  141.    }
  142.    //traitement des cookie renvoyés
  143.    if (substr($line,0,10) == "Set-Cookie" ) {
  144.     $mix_strcookie .= $line;
  145.     $dline=urldecode($line);
  146.     $firstpos=strpos($dline,'URL_BASE_AFFILIEUR=');
  147.     if ($firstpos!= false) {
  148.      $firstpos+=19;
  149.      $secpos=strpos($dline,'&ISAFFILIEUR');
  150.      $mix_urlsitebase = substr($dline,$firstpos,$secpos-$firstpos);
  151.      $mix_strcookie .= 'Set-Cookie: MixadUrlSiteBase='. urlencode($mix_urlsitebase) . "; path=/\r\n";
  152.     }
  153.    }
  154.   }
  155.   break;
  156.  }
  157. }
  158. if ($mix_redirect) {
  159.  header("HTTP/1.1 301 Moved Permanently" );
  160.  $mix_headerclient.="Location: ".$mix_urlsitebase."lien_http=".urlencode($GLOBALS["lien_redirect"])."\r\n";
  161.  $mix_headerclient.="Connection: Close\r\n";
  162.  fclose($fp);
  163. }
  164. $mix_headerclient.=$mix_strcookie;
  165.     header($mix_headerclient);
  166. if ($mix_redirect) {
  167.  exit;
  168. }
  169. return $mix_result;
  170. }
  171. function DisplayServicePA ($MyfpMixad) {
  172. while(!feof($MyfpMixad)) {
  173.  $line = fgets($MyfpMixad,4096);
  174.  echo($line);
  175.  if ($line == "</html>\r\n" ) {
  176.   break;
  177.  }
  178. }
  179. fclose($MyfpMixad);
  180. }
  181. $fpMixad=GetServicePA();
  182. ?>
  183. <body>
  184. <?DisplayServicePA($fpMixad);?>
  185. </body>
  186. </html>


 
voilà c le code la page en entier ..
Merci

Reply

Marsh Posté le 09-09-2004 à 14:54:15    

Les lignes 1 à 4 doivent être déplacées à la ligne 238

Reply

Marsh Posté le 09-09-2004 à 15:05:26    

Excellent !
Merci beaucoup ratibus
a+

Reply

Marsh Posté le 09-09-2004 à 15:25:38    

on a enfin trouvé un avantage à cette numérotation de ligne sur le forum


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 09-09-2004 à 16:08:10    

JagStang a écrit :

on a enfin trouvé un avantage à cette numérotation de ligne sur le forum


 
+1


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed