Parse error syntax error unexpected end of file

Status
Niet open voor verdere reacties.

damnsharp

Terugkerende gebruiker
Lid geworden
6 jan 2012
Berichten
1.394
Goedemiddag,
Hoe kan ik het beste een "Parse error: syntax error, unexpected end of file" debuggen?
Ik kan de code plaatsen maar misschien zijn er zo tips te geven.

Het lastige is dat als ik de website lokaal test (Wampp) ik deze error krijg en bij hostingbedrijf niet.

Bedankt voor meedenken.
 
Controleer even of er een spatie of enter staat na <?php en idem voor ?>
Met andere woorden, gebruik bijvoorbeeld niet }?> of <?php} , zorg voor een spatie (of enter) op de juiste plek.

Staat er overal <?php ... ?> dus niet <? ... ?>
Als uitzondering hierop mag je wel <?= ... ?> (echo | php5.4+) gebruiken omdat deze geen conflict geeft met xml. Echter <?php ... ?> heeft de voorkeur.

Gebruik je lokaal dezelfde php versie?
Zitten er verscvhillen in error reporting tussen jouw wamp en de host?
 
Laatst bewerkt:
Hi @bron, fijn zo'n snelle reactie. Ik ga die spaties / enters controleren.

De verschil bij foutrapportage weet ik niet maar ook dat ga ik kijken hoe dat zit. Daar zal dan een verschil in zijn lijkt mij.
Zal ik wel bij php.ini moet aanpassen hè. Ga het meteen checken.
 
Nou de spaties of enters staan goed; heb bij php.ini "error_reporting = E_ALL & ~E_NOTICE" geplaatst maar een "hide" van deze error gebeurd niet.
Ik zal nog verder zoeken.
 
Gevonden! Ik moest "short_open_tag=On" bij Wampp in php.ini plaatsen. Dan gaat het goed.
 
short_open_tag=On
Dan heb je toch ergens <? (is short open tag) staan :p in plaats van <?php

Bij <? kan je geen xml in je php verwerken omdat <? voorbestemd is voor xml.
 
Laatst bewerkt:
bij php.ini "error_reporting = E_ALL & ~E_NOTICE" geplaatst
In je php code kan je ook error reporting regelen, bijvoorbeeld:
Code:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
?>
 
Nóg een keer doorlopen en je hebt gelijk! :D Eén stom dingetje hè.

En bedankt voor de aanvulling wbt error reporting :thumb:
 
Persoonlijk raad ik aan om de error reporting via .htaccess te regelen:
Code:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

Het verschilt soms per webserver of dit mag, soms moet je een apart php.ini aanmaken in je webroot met dit:
Code:
;Error display
display_startup_errors = On
display_errors = On
html_errors = On

En als dat niet werkt moet je bij de webhosting vragen hoe het wel moet.

Ik vraag mij wel af wat nou het verschil is tussen display_startup_errors en display_errors.
Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.
Dit lijkt me meer met de log-files te maken te hebben, die bij het opstarten van de webserver of PHP-proces juist wel of geen dingen moeten tonen?
Heb je een voorbeeld @Bron?
 
De tip van @php4u om php ini waardes in .htaccess te wijzigen doe ik zelf ook. Achterliggende reden: error reporting is geregeld voordat de pagina wordt gecompileerd.
Tot nu toe ben ik geen host tegengekomen die dit niet ondersteunt. Uiteraard mag je alleen "veilige" instellingen veranderen.

error_reporting
Je kan gebruik maken van php constanten om de integer samen te stellen.
http://php.net/manual/en/errorfunc.constants.php

display_errors
Wil je wel ("1") of geen ("0") errors op het scherm zien

display_startup_errors
php toont geen startup errors, zelfs als display_errors op "1" staat. Wil je startup_errors zien zet display_startup_errors dan op True.
Mijn advies: laat deze gewoon op False staan tenzij je een keer vage problemen hebt.

log_errors
Zet deze op True of False om bovenstaande errors wel of niet te loggen.

Noot: de waardes van instellingen in php zijn anders in .htaccess (altijd de juiste waarde even googelen)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan