[php] output-buffer werkt niet meer onder linux *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een website gemaakt op mijn laptop waar alles dus localhost draaide. Ik had altijd een probleem met het feit dat de headers al verzonden waren met een pagina die ik include maar door in php.ini de OUTPUT-BUFFER op ON te zetten was dat probleem al snel opgelost, tevens ook omdat flush() niet werkte.

Nu zet ik alles op mijn Linux-webserver en het werkt dus niet meer en OUTPUT-BUFFER staat wel op ON.

Wat zou hier de oorzaak van kunnen zijn ?

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Titel verduidelijkt.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 19:38
Heeft dit niet meer met je config dan je code te maken? (hoort ie dan niet in de SA?)

Maar kan je ons wat meer details over je systeem je php enz. geven?

|>


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Twee puntjes:
1. Voorzie ons eens van wat extra info (php-versie, apache-versie, modules etc.)
2. Is het niet handiger om met ob_* functies te werken? Dan heb je nèt iets meer vrijheid en controle.

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik draai alles onder een RAq 550. Dat betekend dus Linux 7.0 :) Php versie 4.0.6 en MySQL 3.23.32

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Heb je ook gecontroleerd dat het ook in phpinfo() als on gezien wordt? Oftewel, of je wel de goede php.ini hebt gecontroleerd.

Linux 7.0 bestaat niet trouwens en volgens mij was de output_buffering van na php 4.0.6, wat draai je op je laptop?

[ Voor 35% gewijzigd door ACM op 21-07-2003 17:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
yeps klopt als een bus :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Redhat 7.0 bestaat zeer zeker wel :) Het is een speciale distro voor op een Raq550 :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
op m'n laptop draaide ik XP met dezelfde versies van apache en PHP

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 21 July 2003 @ 17:11:
Redhat 7.0 bestaat zeer zeker wel :) Het is een speciale distro voor op een Raq550 :)
Ja, Redhat linux 7.0 bestaat, suse linux 7.0, mandrake linux 7.0 e.v.a :)

Maar "Linux 7.0" niet... Linux is nog maar in versie 2.6.0-pre als laatste verse development versie en 2.4.21 als stable release.

anyway, dat is verder niet zo aan de orde.

Owja helemaal vergeten:
"Nu zet ik alles op mijn Linux-webserver en het werkt dus niet meer en OUTPUT-BUFFER staat wel op ON. "

WAT werkt er niet meer dan?

[ Voor 16% gewijzigd door ACM op 21-07-2003 17:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kan geen headers meer versturen terwijl ze al verstuurd zijn......... dat kun je oplossen door output-buffering....... snap je wat ik bedoel ??

Ja van Linux 7 dat klopt......... die warmte ook :p

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
Kun je de uitvoer van phpinfo() ergens plaatsen? Dan hebben we gelijk een beter idee waar we het precies over hebben (en hoef je zelf niet allerlei gegevens als versies en instellingen op te zoeken).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-

[ Voor 100% gewijzigd door Verwijderd op 05-08-2003 00:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
deze specs worden ook afgegeven zoals jullie zien:

Apache/1.3.20 Sun Cobalt (Unix) mod_ssl/2.8.4 OpenSSL/0.9.6 PHP/4.0.6 FrontPage/5.0.2.2510 mod_perl/1.26

Dus apache 1.3.20 ??

[ Voor 8% gewijzigd door Verwijderd op 21-07-2003 18:16 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

MATBOY, zou je in het vervolg de edit knop willen gebruiken in plaats van achter elkaar te posten?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
Wanneer je een warning krijgt dat de headers al verstuurd zijn bij een include van een file dan zegt dat voldoende.

Je kan beter kijken of er toevalig in die geinclude file statements als session_start en/of header("blah") staat.
Dat output buffering lijkt me meer een workaround voor foute code.

[ Voor 3% gewijzigd door stekkel op 21-07-2003 18:43 ]


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
stekkel schreef op 21 juli 2003 @ 18:43:
Wanneer je een warning krijgt dat de headers al verstuurd zijn bij een include van een file dan zegt dat voldoende.

Je kan beter kijken of er toevalig in die geinclude file statements als session_start en/of header("blah") staat.
Dat output buffering lijkt me meer een workaround voor foute code.
Dat vind ik wat kort door de bocht. Je kunt er ook voor kiezen om je pagina in één keer te versturen (bijvoorbeeld als je pas weet welke headers je wilt instellen nadat je een deel van de pagina hebt gegenereerd) en dan gebruik je dus output buffering. Dat is gewoon een legitieme methode die zou moeten werken.

Het gaat er in deze thread dan ook niet om hoe in PHP geprogrammeerd moet worden, maar waarom output buffering niet werkt (en hoe dat verholpen moet worden) Geen output buffering gebruiken is inderdaad een work-around, maar geen oplossing van het probleem, namelijk dat output buffering niet werkt.

Ik zou zelf ook geen zin hebben om allerlei bestanden aan te gaan passen omdat een legitieme feature om de een of andere reden niet goed werkt. Dan kun je echt beter die feature werkend proberen te krijgen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry van die post maar de bedoeling was idd editten.

@soultaker: idd jij ziet de kern van het probleem..... het moet werken :) maar idd de vraag is waaorm het niet meer werkt. Ik kan helaas niet meer op mijn lappert kijken hoe de instellingen daar waren omdat er nu Mandrake en straks Knoppix op staat :s maarja het moet idd op te lossen zijn, de vraag is waar zit de fout, bij mijn weten in php.ini

Misschien dat iemand dit probleem ook eens gehad heeft namelijk :)

Acties:
  • 0 Henk 'm!

  • The_Eternal
  • Registratie: Oktober 2001
  • Laatst online: 26-08 16:59
maar jij gebruikt dus geen ob_start(); etc functies maar alleen de ini file om dit aan te zetten?

hoezo gebruik je dan die ob_start() en ob_end_flush() niet? zoals kvdveer al zei :)
het is heel goed mogelijk dat je gewoon niets in de ini mag aanpassen vanuit je php scripts.

(het kan ook zijn dat ik je fout heb begrepen en je die functies wel gebruikt, want zelf gebruik ik eigenlijk nooit ini opties rechtstreeks behalve als het niet anders kan, voor output buffering niet dus)

Uhm... ja


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
The_Eternal schreef op 22 juli 2003 @ 15:12:
hoezo gebruik je dan die ob_start() en ob_end_flush() niet? zoals kvdveer al zei :)
het is heel goed mogelijk dat je gewoon niets in de ini mag aanpassen vanuit je php scripts.
Als je naar de phpinfo van MATBOY kijkt (die ergens hierboven stond) dan zie je duidelijk dat output buffering al aanstaat in de ini-file. Die optie wordt dus niet dynamisch aangezet.

[ Voor 6% gewijzigd door Soultaker op 22-07-2003 16:15 ]


Acties:
  • 0 Henk 'm!

  • The_Eternal
  • Registratie: Oktober 2001
  • Laatst online: 26-08 16:59
mijn misteek soultaker :)

Uhm... ja


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zo ik ben weer terug van vakantie :) Maar zijn er mensen die er al een oplossing voor kunnen geven ?? Ik ben er in de tussentijd niet uitgekomen.......

EDIT !!

Ik heb ook problemen met "includen" zie ik net. Dit is dus ook sinds alles op mijn server staat en die outputbuffering niet meer goed werkt.

[ Voor 39% gewijzigd door Verwijderd op 03-08-2003 11:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Oplossing is eigenlijk al gegeven, maar om het nog even samen te vatten :
in begin van je script
ob_start() aanroepen

en op het einde (helemaal het einde dus) ob_end_flush() oid aanroepen.
In de tussentijd kan je dan je headers nog aanpassen.

Meet info op php.net : ob_start

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 03 augustus 2003 @ 11:11:
Oplossing is eigenlijk al gegeven, maar om het nog even samen te vatten :
in begin van je script
ob_start() aanroepen

en op het einde (helemaal het einde dus) ob_end_flush() oid aanroepen.
In de tussentijd kan je dan je headers nog aanpassen.

Meet info op php.net : ob_start
Dit hoef ik niet te doen zoals je 3 posts hierboven ook al kunt lezen omdat ik outputbuffering altijd al heb aanstaan in mijn .ini file !

Het heeft altijd op die manier gedraaid dus waarom zou jou oplossing beter moeten zijn ? Voorheen heb ik juist outputbuffering permanent aangezet omdat ik met de oplossing die jij geeft alleen maar problemen gaf, iets wat bij PHPfreakz niet onbekend was. Dus vandaar outputbuffering standaard aan !

Acties:
  • 0 Henk 'm!

Verwijderd

ook niet de moeite om het even te proberen in een test bestandje ?
Gewoon om dat het bij mij wel altijd werkt ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het werkt gewoonweg niet en lees de post van Soultaker eens ....... Ik moet teveel bufferen om het allemaal virtueel aan te moeten zetten....... mijn manier is ook een reguliere manier.
Pagina: 1