webForumDet fria alternativet

Parse error: syntax error ???

PHP

14 svar · 467 visningar · startad av filipbh

Medlem sedan juli 2002405 inlägg
Frågan#1

Varför kommer den här texten bara upp på startdatum men inte på slutdatum när de är i stort sett identiska??

"Välj startdatum:
Parse error: syntax error, unexpected $end in stat-start.php on line 815"

Det är ?> som den klagar på

echo "<option value=\"59\"";
 if($ed_cm_end=='59'){
  echo "SELECTED";
 }
echo ">59</option>";
echo "</select>";
?>

Så här ser stat-slut.php ut längst ner:

echo "<option value=\"59\"";
if(!$_POST['ed_skicka']){
 if(date("H")=='23'){
  echo "SELECTED";
 }
}
else{
 if($ed_cm_end=='59'){
  echo "SELECTED";
 }
}
echo ">59</option>";
echo "</select>";
?>

Nån som kan tolka detta? Båda hämtas med include

echo "<tr>";
echo "<td>";
echo "Välj startdatum: ";
echo "</td>";
echo "<td>";
include("stat-start.php");
echo "</td>";
echo "</tr>";

echo "<tr>";
echo "<td>";
echo "Välj slutdatum: ";
echo "</td>";
echo "<td>";
include("stat-slut.php");
echo "</td>";
echo "</tr>";

Sidan klagar inte på stat-slut.php

Medlem sedan mars 20025 907 inlägg
#2

Jag tror du visar fel kod. Den klagar på att variabeln $end förekommer på ett ställe där den inte borde vara, men du har ingen sådan variabel med i den kod du visar. Är du säker på att du visar rätt kodstycke i rätt fil?

Medlem sedan juli 2002405 inlägg
#3

Ja, om jag inte skrivit fel nånstans för det ska inte vara nån sån kodsnutt med. Den raden klagar på är iaf längst ner på den översta kopian. Ska leta igen...

Medlem sedan juli 2002405 inlägg
#4

Nej, inte ett enda $end finns med i filen.

Medlem sedan mars 2007845 inlägg
#5

$end är filslutet. Den hade inte förväntat sig att skriptet skulle sluta där.

Kolla efter ett { utan motsvarande } och liknande.

/D

Medlem sedan juli 2002405 inlägg
#6

Jag tycker jag har gjort det men måste ha missat något. Ett antal rader bara :/

Medlem sedan aug. 2004903 inlägg
#7

titta så att det finns lika många { som det finns } om det är ojämt kan du börja fundera. om du har include där du kanske inkluderar en fil med funktioner eller liknande, kolla i den så att den också stämmer. Titta också efter ; överallt. På det du skickade kan jag inte se något fel

Medlem sedan mars 20025 907 inlägg
#8

En bra editor (zend eller eclipse rekommenderas) med syntaxfärgning är ett bra hjälpmedel vid sådana här situationer. Likaså är en korrekt indentering underlättande.

Medlem sedan juli 2002405 inlägg
#9

Peeer: Var får jag tag i dem?

Medlem sedan mars 20025 907 inlägg
#10

Eclipse med PDT-plugin (PHP-modul) hittas här (ta en av "Integration Builds").

Medlem sedan juli 2002405 inlägg
#11

Jag har inte gått igenom allt ännu men jag har hittat ett fel och det är nog det som ställer till det. Felet är detta:

echo "<option value=\"23\"";
 if(date("H")=='23'){
  echo "SELECTED";
 }
else{
 if($ed_ch_start=='23'){
  echo "SELECTED";
 }
echo ">23</option>";

En } för lite alltså...

Medlem sedan aug. 2004903 inlägg
#12

japp, ser ut att vara det. så grymt lätt att missa

 { } ; " ' [] . , ()

jag programmerar dagligen och använder både editor och notepad... lyckas ändå missa dessa tecken frekvent :) Men man lär sig av de error meddelanden man får och vad de innebär :)

Medlem sedan juli 2002405 inlägg
#13

Tulork skrev:

japp, ser ut att vara det. så grymt lätt att missa

 { } ; " ' [] . , ()

jag programmerar dagligen och använder både editor och notepad... lyckas ändå missa dessa tecken frekvent :) Men man lär sig av de error meddelanden man får och vad de innebär :)

Det är nästan så jag vill påstå att jag hatar dem tecknena :p

Anledningen till att jag missade } var för att jag hade tagit bort för lite kod på det stället och därför blev ett } för lite.

Tack alla som hjälpt till!

Medlem sedan mars 20041 505 inlägg
#14

filipbh, du borde börja indentera din kod. Då blir det enklare att upptäcka just sånna här problem med måsvingar.
Här exempelvis ser man tydligare att det saknas en måsvinge:

echo "<option value=\"23\"";
if(date("H")=='23'){
	echo "SELECTED";
}
else{
	if($ed_ch_start=='23'){
		echo "SELECTED";
	}
echo ">23</option>";
Medlem sedan juli 2002405 inlägg
#15

Troxy skrev:

filipbh, du borde börja indentera din kod. Då blir det enklare att upptäcka just sånna här problem med måsvingar.
Här exempelvis ser man tydligare att det saknas en måsvinge:

echo "<option value=\"23\"";
if(date("H")=='23'){
	echo "SELECTED";
}
else{
	if($ed_ch_start=='23'){
		echo "SELECTED";
	}
echo ">23</option>";

Tack för tipset... Om det är mycket kod försöker jag göra lite mellanrum för lättare översikt men nu ville jag bara få koden klar och då blev det lite slarv också tyvärr :/

300 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
175 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)