Gå til innhold

[Løst] PHP problem - Warning: Cannot modify header information


Anbefalte innlegg

Jeg holder på å skal lage en gjestebok til en nettside, men når jeg skal poste en melding eller logge meg inn i gjesteboka kommer dette her:

 

Warning: Cannot modify header information - headers already sent by (output started at /home/hardang/public_html/gjestebok.php:11) in /home/hardang/public_html/gjestebok.php on line 156

 

Men når jeg legger denne fila(gjestebok.php) i ei html fil (<iframe name="gjestebok" style="width:560px;height:536px;z-index:0" src="./gjestebok.php" frameborder="1"></iframe>) Så funker alt.

 

Noen som har en smart løsning?

Lenke til kommentar
Videoannonse
Annonse

ob_start er egentlig ikke å anbefalle. Lasting av siden tar lengre tid.

… og hvor tar du det fra? Vær klar over at echo/print må sende data til webserveren for hvert kall hvis output buffering er av. Har man mange nok echo/print vil faktisk output buffering gi bedre ytelse fordi man samler opp data fra mange echo/print-kall før noe faktisk sendes til webserveren.

Lenke til kommentar

ob_start er egentlig ikke å anbefalle. Lasting av siden tar lengre tid.

 

Det kan umulig være så mye, merket ikke noe forskjell, og i tillegg er det en simpel side som skal lastes, nesten ingen bilder. Så viss det bare er det som er det negative ved den, så får det bare være!

Lenke til kommentar

ob_start er egentlig ikke å anbefalle. Lasting av siden tar lengre tid.

… og hvor tar du det fra? Vær klar over at echo/print må sende data til webserveren for hvert kall hvis output buffering er av. Har man mange nok echo/print vil faktisk output buffering gi bedre ytelse fordi man samler opp data fra mange echo/print-kall før noe faktisk sendes til webserveren.

 

But still be aware, that your output will not be sent, before the script is finished, which will make your page slower to load that way also, since it cannot send any output while loading, but will have to wait until the load is finished.

- php.cn

Lenke til kommentar

ob_start er egentlig ikke å anbefalle. Lasting av siden tar lengre tid.

… og hvor tar du det fra? Vær klar over at echo/print må sende data til webserveren for hvert kall hvis output buffering er av. Har man mange nok echo/print vil faktisk output buffering gi bedre ytelse fordi man samler opp data fra mange echo/print-kall før noe faktisk sendes til webserveren.

 

But still be aware, that your output will not be sent, before the script is finished, which will make your page slower to load that way also, since it cannot send any output while loading, but will have to wait until the load is finished.

- php.cn

Jeg tar ikke det der for god fisk.

 

Test dette:

<?php
$start = microtime(true);
ob_start();
for ($i = 0; $i < 1000000; $i++)
   echo "<!-- Dummy data -->";
$end  = microtime(true);
echo ($end-$start)."\n";
ob_end_flush();
?>

mot dette:

<?php
$start = microtime(true);
for ($i = 0; $i < 1000000; $i++)
   echo "<!-- Dummy data -->";
$end  = microtime(true);
echo ($end-$start)."\n";
?>

fortrinnsvis med en tekstnettleser ala lynx og se hva du får (koden er skrevet i full fart). Det er såklart mulig det er noe feil med testmetodikken, men hos meg blir det ca 0.31s med og 0.76s uten. Det er testet lokalt på maskinen, så når man legger på et reelt nettverk vil resultatet i teorien bli enda verre siden output buffering vil samle opp dataene før de sendes til webserveren.

Endret av Ernie
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...