login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Unexpected end of file (Opgelost)

Offline keesgerbers - 08/01/2014 13:29
Avatar van keesgerbersLid Hallo,

ik heb een script dat ik al meer als een jaar gebruik zonder problemen,
nu werkt dit script online perfect,
maar ik heb een exacte kopie lokaal in xampp draaien en dan krijg ik sinds kort

Parse error: syntax error, unexpected end of file in E:\xampp\htdocs\websites\website_2\wedstrijd.php on line 395

nu weet ik dat dit komt door een niet afgesloten statement maar als ik dan aan het eind
} } toevoeg werkt hij lokaal wel maar online niet en heb ik een lege pagina,
en geeft dreamweaver al aan dat er een fout in de broncode zit

weet iemand waar ik overheen kijk, kan dit komen door verschillen in php versies, al lijkt me dat sterk.

Alvast bedankt,

Kees

9 antwoorden

Gesponsorde links
Offline marten - 08/01/2014 13:33
Avatar van marten Beheerder Je moet hem op de juiste plaats afsluiten. Wanneer je dit niet doet kan er een hele andere 'flow' onststaan. Zonder code kunnen we niks, maar door de haakjes goed in te laten springen zie je snel wat er fout gaat.

Voorbeeld:

  1. //Fout
  2. if($x = 1) {
  3. if($y = 2) {
  4. echo 'ja x en y zijn 1 en 2';
  5. }
  6. }
  7.  
  8. //Goed
  9. if($x = 1) {
  10. if($y = 2) {
  11. echo 'ja x en y zijn 1 en 2';
  12. }
  13. }


Mocht van de tweede if statement een haak vergeten zijn af te sluiten zie je dit gelijk.
Offline Wijnand - 08/01/2014 13:40
Avatar van Wijnand Moderator Kan het zijn dat je een probleem hebt in een andere file die je included en dat de 2 versies verschillend zijn (live met andere bestanden dan de lokale versie)? Inderdaad is op de juiste manieren tappen erg belangrijk voor de overzicht.

Ik zou echt de code moeten zien om specifiek te antwoorden (waarschijnlijk de hele code, dus dat wordt lastig).
Offline keesgerbers - 08/01/2014 14:12 (laatste wijziging 08/01/2014 14:13)
Avatar van keesgerbers Lid Plaatscode: 142304

de header en footer bestaan alleen uit html + css

ik ben redelijk secuur met inspringen maar toch kom ik er niet uit, vooral omdat lokaal en online exact dezelfde files draaien, heb deze namelijk net via ftp gedownload.
Offline Thomas - 08/01/2014 14:47
Avatar van Thomas Moderator Het codefragment op plaatscode.be bestaat uit 381 regels, is dit wedstrijd.php, aangezien de foutmelding het heeft over regel 395? Hoe vaag de foutmelding ook is, lijkt me sterk dat PHP er regels bijverzint?
Heb je display_errors EN error_reporting lokaal aangezet?

Wat kan helpen is het volgende, niet zozeer met het oplossen van het probleem, maar wel met het beheersbaarder maken van je code:
- deel je programma op in stukken i.p.v. ellenlange (geneste) if/elseif/else structuren
- voorzie je afsluitende accolades van annotatie, eventueel voorzien van extra informatie van wat er zojuist is gebeurd bijvoorbeeld:

  1. <?php
  2. while ($zut) {
  3. ... heel veel code ...
  4. } // end while $zut
  5. ?>
Offline Wijnand - 08/01/2014 14:51
Avatar van Wijnand Moderator Interessant ja...

Een aantal dingen die nog kunnen helpen. Dit bovenaan zetten

  1. <?php
  2. ini_set('display_errors','On');
  3. ini_set('error_reporting',E_ALL);
  4. ?>


en ook toch controleren of config.inc.php niets raars heeft.
Daarnaast nog even de commentaar regels weghalen (daar heb ik een keer problemen mee gehad, bleek dat de enters (\r) eruit waren door een type-verschil van het bestand ofzoiets.
Offline marten - 08/01/2014 15:05
Avatar van marten Beheerder
  1. echo '<INPUT TYPE="button" onClick="parent.location='?programma='.$_GET['programma'].'&archief=0'" value=" Bekijk toekomstige wedstrijden "> ';


Hier gaat sowieso het escapen van de quotes verkeerd.
Offline keesgerbers - 08/01/2014 15:11 (laatste wijziging 08/01/2014 15:12)
Avatar van keesgerbers Lid lokaal staat display_errors en error_reporting aan,

het verschil in regel nummers komt omdat achteraan de file een aantal lege regels stonden welke ik niet mee gekopieerd heb.

die tip over de afsluiten accolades is een goeie, die ga ik gebruiken.
ik wil in de toekomst deze en de andere scripts omschrijven naar OOP en dus opdelen in classes maar daar heb ik de moed nog niet voor gehad om aan te beginnen naast school

ik zal alle commentaar eens verwijderen en kijken of het verschil opleverd

config.inc.php staat ook niks raars in:
  1. <?php
  2.  
  3. $DB['dbhost'] = "localhost"; // Mysql host
  4. $DB['dbuser'] = "usr"; // Mysql gebruiker
  5. $DB['dbpas'] = "...."; // Mysql wachtwoord
  6. $DB['dbname'] = "db"; // Mysql database
  7. //$mysqli = new mysqli($DB['dbhost'], $DB['dbuser'], $DB['dbpas'], $DB['dbname']);
  8. mysql_connect($DB['dbhost'],$DB['dbuser'],$DB['dbpas']) or die ("<CODE>Sorry, connectie is verbroken.</CODE>");
  9. mysql_select_db($DB['dbname']) or die ("<CODE>Sorry, Onze database is tijdelijk niet bereikbaar.</CODE>");
  10. ?>

Offline Thomas - 08/01/2014 16:20
Avatar van Thomas Moderator Waar ik wel eens tegenaan liep met WAMP was het volgende: als ik <? gebruikte in plaats van <?php liep ik ook wel eens tegen zo'n "unexpected T_END" foutmelding aan (steevast aan het einde van het desbetreffende PHP-bestand). Ook <?= werkt dan niet. Ik ben het inmiddels gewend om <?php en <?php echo ... te gebruiken in plaats van <? en <?=.

Dit hangt samen met de short_open_tag-setting. Mogelijk gooit die in een van je PHP bestanden roet in het eten?

Ergo: controleer deze instelling met phpinfo() en speur je code af naar de korte openingstags <? en <?=.
Bedankt door: keesgerbers
Offline keesgerbers - 09/01/2014 11:45
Avatar van keesgerbers Lid Het is al opgelost, soort van.
ik heb alle code in een nieuw bestand gekopieerd en dat werkt als een zonnetje, maar zo gauw ik dat specifieke bestand van de server haal werkt het niet offline,
maar heb dus nu gekopieerd opgeslagen onder andere naam en het werkt als een trein.

short tags staan uit, ik gebruik tegenwoordig ook alleen <?php etc, maarja waarschijnlijk zit er een ftp fout ergens ofzo anders aangezien het in een nieuw bestand wel werkt.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s