PHP geeft wit scherm

Status
Niet open voor verdere reacties.

tomdb

Gebruiker
Lid geworden
10 nov 2008
Berichten
417
Hallo,

de titel zegt het al: ik krijg gewoon een wit scherm, er wordt geen output gegeven. Zelfs niet als ik bijv. neerzet: print "kamsfkmc"; geeft ie nog niks...
Ook krijg ik geen error, ik heb error_reporting wel op E_ALL staan.
Ik ben bezig met een bepaald onderdeel van een website, en omdat we de code een beetje overzichtelijk willen houden, wordt er bij elke actie die met een andere module werkt een ander bestand geïnclude.
In het hoofdbestand:
PHP:
if( substr( $action, 0, 5 ) == "diff_" )
{
 	include "modules/showdiffgroups/parser.php";
}

if( substr( $action, 0, 4 ) == "cal_" ) 
{

         include "modules/calendar/parser.php";

}
Het probleem is dat bij elke actie die met cal_ begint, PHP een wit scherm geeft. Terwijl elk bestand apart de variabele $fVal terug geeft, en die wordt in het hoofdbestand ge-output, maar ik krijg dus een wit scherm, bijv. bij de actie cal_2.
Zo ziet dat bestand met de acties met cal_ ervoor eruit:
PHP:
<?php
error_reporting( E_ALL );
print "x"; //wordt ook niet weergegeven :(
if( $action == "cal_2" ) {
     $x = doedit();
     $fVal = "de actie doedit() gaf dit resultaat: " . $x;
}

if( $action == "cal_3" ) {
	$fVal = loadFile( "file.php" );
}
?>


Ik hoop dat jullie begrijpen wat ik bedoel, en anders: vraag maar raak!

Alvast bedankt,

Tom
 
Laatst bewerkt:
Meest waarschijnlijke is dat er ergens een output buffer aanstaat die niet geflusht wordt...

Probeer eens na je echo zoiets te doen?

PHP:
ob_end_flush();

En kijk ook in de broncode; is die ook leeg? Het kan ook nog zijn dat je code gewoon niet zichtbaar is in HTML namelijk :)
 
M'n broncode is ook leeg, helaas.
En er wordt 1x een print gedaan, en als ik daarna die regel zet doet ie het alsnog niet :(.
 
Weet je zeker dat je code op die file komt?

Ik vrees dat je flink moet gaan debuggen, vanaf het begin (je index), en uit moet zoeken vanaf waar de code ophoudt met output geven, want veel anders kan ik ook niet verzinnen zonder het hele project door te gaan spitten :/
 
Waarschijnlijk ligt het hier aan:
PHP:
     $x = doedit();
...
    $fVal = loadFile( "file.php" );

Je gebruikt hier 2 methodes "doedit" en "loadFile", maar nergens doe je een include die deze 2 methodes bevat. Oftewel: je krijgt een PHP Fatal Error: undefined method (ofzo) gok ik.

Oplossing: ervoor zorgen dat die 2 methodes in dat bestand aanwezig zijn :)
 
@Frats
Hij geeft overal gewoon output, behalve bij het cal_ gedeelte.

@aaajeetee
Die functies worden geÏnclude in het hoofdbestand, dus daar kan het ook niet aan liggen...
 
Zet dit eens in het hoofdbestand neer:
PHP:
error_reporting (E_ALL);
ini_set ("display_errors", "on");

Daarnaast kan je in je php.ini de error-reporting standaard op "on" zetten (als je recht hebt om dat te wijzigen).

Weet je zeker dat het bestand "modules/calendar/parser.php" echt bestaat?
 
Als je op de regel boven "include "modules/calendar/parser.php";" een echo zet, zie je die dan ook?

Dan weet je zeker dat ie idd aankomt bij het includen van de file; het zou nog kunnen dat je IF statement verkeerd staat namelijk.
 
Als je op de regel boven "include "modules/calendar/parser.php";" een echo zet, zie je die dan ook?

Dan weet je zeker dat ie idd aankomt bij het includen van de file; het zou nog kunnen dat je IF statement verkeerd staat namelijk.

Da's ook een goede. Daarnaast zou ik geen "substr" gebruiken, maar "strpos". Met substr moet je dus je begin en eind opgeven en als er bijv. een spatie aan vooraf gaat ben je al de klos.
Qua snelheid (of strpos sneller is dan substr) weet ik het niet.
 
@Frats
Hij geeft wel de echo weer, als ik die boven de include zet.

@ajeetee
Dat heb ik ook geprobeerd, maar hij geeft geen errors...

Wat heel vreemd is, dat als ik bij het geïnclude bestand de php-tags weghaal, zie ik gewoon mijn code op het scherm. Hij doet die include dus wel, maar hij reageert niet als er aan $fVal een waarde wordt meegegeven. Die waarde zou dan op het scherm moeten komen, maar dat doet ie niet...

Tot nu toe al heel erg bedankt voor jullie hulp!
 
Wat is de precieze actie? cal_2 of cal_3? Gaat "cal_2" bijv. wel goed (en "cal_3" bijv. niet)? Of gaan ze allemaal fout, ongeacht de actie (als er maar "cal_" inzit)?
 
Alles waar cal_ inzit, gaat fout en levert een wit scherm op. Ook de broncode is dan helemaal leeg...
 
Trek je Apache Error Log eens open, en kijk eens of daar niet wat instaat?
 
Ik heb het opgelost, wat de uiteindelijke fout is weet ik niet.Ik heb de acties één voor één uitgecommentarieerd, en uiteindelijk heb ik gevonden waar die precies zat en heb ik een paar dingen veranderd en nu doet ie het!

Bedankt voor alle hulp:thumb:!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan