Rare bug in php ontdekt?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmzz.. Vandaag kwam iemand naar me toe met deze error:

Warning: Cannot modify header information - headers
already sent by (output started at
/home/11/public_html/33/class.template.p
hp:541) in
/home/11/public_html/33/login.php on
line 4

Hij wilde een cookie zetten.. ik dacht.. oow.. ergens iets ge-echo-t..
niet dus..

hij had 2 includes bovenaan staan

config.php
class.template.php

de header was dus gestuurd door class.template.php

maar nergens stond een echo.. wat bleek nu

onderaan stond:

?>SPATIE

die spatie is dus een echte spatie..

toen hij deze spatie weghaalde was het over.. Hoe kan dit? Ik vond het best grappig.. ik dacht terug aan een paar jaar geleden toen ik ook heel vaak van deze errors had.. en er niet vaak uit kwam... |:(

[ Voor 4% gewijzigd door Verwijderd op 17-04-2003 16:06 ]


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

da's geen bug hoor, dat is correct.

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

yep, alles wat buiten <?php ?> staat wordt gewoon naar de browser gestuurd :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • bigben04
  • Registratie: December 2001
  • Laatst online: 30-08 20:47
"It's not a bug, it's a feature" :)
Het is idd logisch, de spatie die na een afsluitende PHP-tag (?>) komt, is in principe hetzelfde als
echo " ";

[ Voor 70% gewijzigd door bigben04 op 17-04-2003 16:12 ]


Acties:
  • 0 Henk 'm!

  • ShadowBumble
  • Registratie: Juni 2001
  • Nu online

ShadowBumble

Professioneel Prutser

bigben04 schreef op 17 April 2003 @ 16:10:
"It's not a bug, it's a feature" :)
LOL zou de slogan van microsoft kunnen zijn

Maar f fofftopic het komt idd omdat php de header mee stuurd en doordat er een spatie staat buiten de php tekens word die nogmaal naar de browser gestuurd

"Allow me to shatter your delusions of grandeur."


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ShadowBumble schreef op 17 April 2003 @ 16:12:
[...]
LOL zou de slogan van microsoft kunnen zijn
offtopic:
Nee, da's "This behaviour is by design" :P

Niks tegen MS overigens, RobIII is MS fan!

[ Voor 12% gewijzigd door RobIII op 17-04-2003 16:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ah... (Biologisch)... eigenlijk best wel logisch .. wel grappig :) wist dit nooit ..

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Men heeft het hierboven over een spatie buiten de php tags, dit kan echter ook een simpele return buiten de tags zijn ipv een spatie e.d.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

nee... de headers staan niet als eerste regels van een file. als hij eerst iets include kan dat niet meer... een vreemde maar werkende oplossing...

bovenaan het bestand:

PHP:
1
<? ob_start(); ?>
werkt 100% zeker. Dit MOET!!!!! wel als eerste regel. Anders werkt het nog niet goed. Nu kan je zelfs headers en cookies in de laatste regel toevoegen.

Acties:
  • 0 Henk 'm!

Verwijderd

Maar ook daar mag geen teken voor staan, geen spatie of return, niks.
Dus wat win je er precies mee? Niet veel, want je moet gewoon goed opletten.
Maar dit is toch een probleempje dat je als het goed is in tien tellen op kunt lossen, als je maar weet waar je het moet zoeken, en dat weet de TS nu ;)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 17 April 2003 @ 16:05:
toen hij deze spatie weghaalde was het over.. Hoe kan dit? Ik vond het best grappig.. ik dacht terug aan een paar jaar geleden toen ik ook heel vaak van deze errors had.. en er niet vaak uit kwam... |:(
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Denk niet dat je de eerste bent ;)
Maar helaas staat dit stukje tekst een beetje weggemoffeld... Doen ze wel vaker in de php-manual, belangrijke dingen wegmoffelen en loze voorbeelden heel uitgebreid accentueren :)

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

ACM schreef op 17 April 2003 @ 19:18:
[...]
Denk niet dat je de eerste bent ;)
Maar helaas staat dit stukje tekst een beetje weggemoffeld... Doen ze wel vaker in de php-manual, belangrijke dingen wegmoffelen en loze voorbeelden heel uitgebreid accentueren :)
goh? waarom moet ik nu ineens aan superglobals denken? ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
laat ik er dan aan toevoegen dat ditzelfde geintje ook in ASP fout kan gaan

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

majornono schreef op 18 April 2003 @ 16:29:
laat ik er dan aan toevoegen dat ditzelfde geintje ook in ASP fout kan gaan
Netzoals in perl, c, c++ en elke andere taal waar je HTML opmaak mee genereert :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Ik vind trouwens dat het officieel verboden moet worden om bugs in PHP te rapporteren op dit forum want het klopt nooit. :(
Pagina: 1