Toon posts:

Probleem met syntaxisfout

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een eigen persoonlijke website welke ik in de toekomst graag wil uitbreiden.

nu zit hier ook een gastenboek in verwerkt, maar deze geeft in internet explorer op 1024 x 768 een syntaxisfout op regel 89 maar in de index.php staan echter maar 71 regels.

voorbeeld is te vinden op : http://londemanmp.no-ip.info/web/ en dan kiezen voor gastenboek-lees.

het gekke is ook als je de gastenboek-lees pagina alleen zal opvragen in een browser geeft die geen syntaxisfout. ???

de code is als volgt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
require("header.php");
require("ubb.php");

if($_GET['p']){
require("email.php");
}
else{
$query = mysql_query("select * from ".$tabel2."");
$rij = mysql_fetch_object($query);
$webreactie = $rij->reactie;

$query = mysql_query("select * from ".$tabel2."");
while ($rij = mysql_fetch_object($query)){
 $welkom = htmlspecialchars($rij->welkom);
 $welkomtekst = nl2br($rij->welkomtekst);
 $welkomtekst = html_entity_decode($welkomtekst);
 if($welkom == "1"){
 echo "
 <table width=100% border=0 class='tabel'>
 <tr><td><div align='left'><b>Welkomsttekst:</b><br>&nbsp;</div></td></tr>
 <tr><td><div align='left'>".$welkomtekst."</div></td></tr>
 </table><br><br>";
 }
 else{ }
}
?>
<br>
<br>
<?php
echo "<table width=100% border=0 class='tabel'>";

$query = mysql_query("select * from ".$tabel." order by datum desc");
while ($rij = mysql_fetch_object($query)){
 $id = $rij->id;
 $naam = htmlspecialchars($rij->naam);
 $bericht = nl2br($rij->bericht);
 do_ubb_code($bericht);
 do_ubb_smile($bericht);
 $bericht = html_entity_decode($bericht);
 $datum = htmlspecialchars($rij->datum);
 $email = htmlspecialchars($rij->email);
 $reactie = nl2br($rij->reactie);
 do_ubb_code($reactie);
 do_ubb_smile($reactie);
 $reactie = html_entity_decode($reactie);

echo "<tr><td width=365>&nbsp;</td></tr>
<tr><td width=365><div align='left'>".$datum." &nbsp;|&nbsp; <b>".$naam."</b> &nbsp; ";

echo "
<tr><td colspan=2>&nbsp;</td></tr>
<tr><td width=310><div align='left'>".$bericht."</div></td><td width=35>&nbsp;</td>";

if($email == ""){ }
else{
echo " <td valign='top' width=35><a href='index.php?p=".$id."'  onClick='popup('email.php','popup',640,480);'><img src='img/email.gif' border=0></a></td></tr> ";
}

if($reactie == "" || $webreactie == "nee"){}
else{
echo "<tr><td><table class='tabel-rood' width=100%><tr><td><div align='left'><strong>Reactie van de Webmaster:</strong><br>&nbsp;<br>".$reactie."</div></td></tr></table></td></tr>";
}

echo "<tr><td colspan=2><div align='center'><br><br><br><img src='img/lijn.gif' width=100% height=1><br><br></div></td></tr>";
}
echo "</table>";
?><?php
}
require("footer1.php");
?>


Deze syntaxisfout wordt niet weergegeven in firefox.

Ook is er met een resolutie van 1024 x 768 een balk onderin te zien die heen en weer geschoven kan worden en deze krijg ik ook niet weg.

Alvast bedankt.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ik ben zo vrij om meerdere punten aan te stippen. :>
  • Wijzig je bericht om [php] [/php] tags te gebruiken zodat syntax highlighting werkt. ;)
  • In je html: </head><center><body ...> : die center tag hoort daar niet.
  • Je kan het 'else {}' gedeelte bij een if-constructie ook weglaten. ;)
  • Je kan ook een negatie gebruiken in de if conditie zodat je geen lege if hebt om maar wel een else te kunnen doen
    PHP:
    60
    
      if (! ($reactie == '' || $webreactie == 'nee'))
  • Iets meer indenten kan imo geen kwaad. Ik wil de heilige oorlog over 2, 4 of 8 spaties niet opnieuw opgraven, maar 1 spatie is zeker wel te weinig. Bovendien niet consequent gedaan.
  • 'Select *...' is slechte stijl, selecteer liever expliciet de daadwerkelijk in code gebruikte kolommen.
  • Je haalt 2x de gehele tabel op, terwijl je de 1e keer slechts 1 rij gebruikt. Kan wel met 1 query en anders desnoods met LIMIT 1 in de 1e query.

{signature}


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:25

Janoz

Moderator Devschuur®

!litemod

Tja, het zit hem in het GOED lezen van de foutmelding. Je ziet een aantal belangrijke dingen over het hoofd:
-De fout is een CLIENTSIDE fout, dit heeft dus helemaal niks met je php te maken.
-De fout zit in de gegenereeerde html, niet in je php sourcecode. Het regelnummer is dus ook de regel van de gegenereerde source.

[ Voor 30% gewijzigd door Janoz op 29-12-2006 21:30 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Voutloos schreef op vrijdag 29 december 2006 @ 21:24:
Ik ben zo vrij om meerdere punten aan te stippen. :>
  • Wijzig je bericht om [php] [/php] tags te gebruiken zodat syntax highlighting werkt. ;)
  • In je html: </head><center><body ...> : die center tag hoort daar niet.
  • Je kan het 'else {}' gedeelte bij een if-constructie ook weglaten. ;)
  • Je kan ook een negatie gebruiken in de if conditie zodat je geen lege if hebt om maar wel een else te kunnen doen
    PHP:
    60
    
      if (! ($reactie == '' || $webreactie == 'nee'))
  • Iets meer indenten kan imo geen kwaad. Ik wil de heilige oorlog over 2, 4 of 8 spaties niet opnieuw opgraven, maar 1 spatie is zeker wel te weinig. Bovendien niet consequent gedaan.
  • 'Select *...' is slechte stijl, selecteer liever expliciet de daadwerkelijk in code gebruikte kolommen.
  • Je haalt 2x de gehele tabel op, terwijl je de 1e keer slechts 1 rij gebruikt. Kan wel met 1 query en anders desnoods met LIMIT 1 in de 1e query.
aangezien dat ik nog een zeer ernstige noob ben in het schrijven van .php lukt mij wat je allemaal zegt moeilijk voor mij is.

hoe kan ik het verhelpen van die syntaxisfout ?? in de index.php van het gastenboek ??

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 16:20

DataGhost

iPL dev

Verwijderd schreef op vrijdag 29 december 2006 @ 21:30:
[...]

aangezien dat ik nog een zeer ernstige noob ben in het schrijven van .php lukt mij wat je allemaal zegt moeilijk voor mij is.

hoe kan ik het verhelpen van die syntaxisfout ?? in de index.php van het gastenboek ??
Die zit niet in index.php, maar in een van je includes. Je moet het probleem helemaal niet serverside zoeken (uiteindelijk wel), maar je moet in IE rechtermuisknop doen op de pagina waar je de fout krijgt en dan 'Bron weergeven' kiezen. DAN PAS krijg je het bestand waar een 'regel 89' in zit. Waarschijnlijk kan je het probleem dat daar zit zelf wel oplossen met de informatie die IE verder geeft.

edit: Die balk die je ziet is op te lossen met wat zorgvoldig geconstrueerde CSS, dit is zelf vrij makkelijk uit te zoeken :)

[ Voor 8% gewijzigd door DataGhost op 29-12-2006 21:36 ]


Verwijderd

Topicstarter
Als ik namelijk de pagina opvraag van het gastenboek-lees dan krijg ik wel een syntaxisfout van internet explorer.

http://82.73.36.163/M-Guest/
edit: Die balk die je ziet is op te lossen met wat zorgvoldig geconstrueerde CSS, dit is zelf vrij makkelijk uit te zoeken :)
ik werk niet met .css op de gehele pagina , is dit niet anders op te lossen ??

[ Voor 44% gewijzigd door Verwijderd op 29-12-2006 21:40 ]


  • kooijtje
  • Registratie: December 2006
  • Laatst online: 30-11 21:48
ik zou de quote's in dit stukje:
onClick='popup('email.php','popup',640,480);'
vanwege de dubbele quotes even vervangen door dit:
onClick='popup(\'email.php\',\'popup\',640,480);'
quotes binnen quotes gaat niet goed

Verwijderd

Topicstarter
kooijtje schreef op vrijdag 29 december 2006 @ 21:47:
ik zou de quote's in dit stukje:
onClick='popup('email.php','popup',640,480);'
vanwege de dubbele quotes even vervangen door dit:
onClick='popup(\'email.php\',\'popup\',640,480);'
quotes binnen quotes gaat niet goed
Maar helaas is het daar niet mee verholpen, wat is wel zie dat ik zie dat als er een bericht wordt geplaatst wordt er regels tussen gezet met

code:
1
<br /> <-- dus niet aan elkaar gesloten.


zal dat misschien de oorzaak zijn ??

Verwijderd

kooijtje schreef op vrijdag 29 december 2006 @ 21:47:
ik zou de quote's in dit stukje:
onClick='popup('email.php','popup',640,480);'
vanwege de dubbele quotes even vervangen door dit:
onClick='popup(\'email.php\',\'popup\',640,480);'
quotes binnen quotes gaat niet goed
Dat is dus
code:
1
onclick="popup('email.php','popup',640,480);"

of
code:
1
onclick='popup(&#x27;email.php&#x27;,&#x27;popup&#x27;,640,480);'

Wel even op de juiste manier escapen dus...

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 17:12

hamsteg

Species 5618

Gooi hem even door de validator van www.w3c.org. Bij gebruik van Opera browser kun je dit heel snel doen: Ctrl+Alt+V.

... gecensureerd ...

Pagina: 1