ich raste gleich aus, unexpected $ in...

  • Themenstarter Themenstarter Lumakrieger
  • Beginndatum Beginndatum
L

Lumakrieger

Hi,

seit gestern habe ich ein Problem in einer ziemlich großen PHP Datei. Seit gestern zeigt es folgende Fehlermeldung an, und das, obwohl ich kaum etwas an der Datei geändert habe:

Parse error: parse error, unexpected $ in blablabla...

Ihr werdet jetzt bestimmt meinen, dass ich manche Klammern nicht korrekt geschlossen habe! Aber ich kann euch versichern, ich habe ALLE Klammern koreekt geschlossen. Schliesslich bastel ich ja seit gestern and er Datei rum und ich habe sie bestimmt schon 50 mal zerlegt. Die Fehlermeldung hat nachdem ich einen Teil weggenommen habe einfach die Zeile gewechselt. Ganz unwillkürlich! Die Fehlermeldung war schon in jeden Abschnitt meines Skripts! Sie geht erst weg wenn mein Skript fast nur noch aus <?php ?> besteht. Und die Zeillen, welche die Fehlermeldung immer anprangert waren schon if else abfragen, datenbankverbindungen und sogar zeilen mit kommentaren. ich bin überzeugt davon das die fehlermeldung ncht von einem logischen fehler wie vergessene zeichen hervorgerufen wird.

Weiss jemand was diese Fehlermeldung noch bedeuten kann, außer dass man eine Klammer nicht gesetzt hat? Gibt es verschiedene formale Fehler die diese Meldung herraufbeschwören können. Bsp.: Sonderzeichen in namen für variablen oder zulange namen für variablen. ich kann mir net helfen, vielleicht könnt ihr mir ja sagen, was diese fehlermeldung alles bedeuten kann.

Danke im Voraus, Luma

ps: Ich raste gleich aus, da will man einmal eine größere Datei verändern und dann gleich sowas!
 
Die Meldung besagt genau Eines: Es befindet sich ein $-Zeichen, wo es nix zu suchen hat...mehr nicht.

Wo genau der Fehler liegt, kann man nur sagen, wenn du die betreffenden Zeilen postest.
 
Diese variiren total unwillkürlich im Skript hin und her. Aber ich kann ja mal gleich ein paar posten. Aber wo solte denn ein $ sein, wo keines hin soll? Normaleweise bedeutet diese Fehlermeldung ja, dass die Klammern net richtig geschlossen wurden, da hat es doch auch nix mit $ zu tun. Aber ich poste gleich mal en paar Zeilen! Danke für die schnelle Antwort!
 
So hier mal nur ein Beispiel, was so als Fehlerhaft angegeben wird. Also ich sehs da nix!

PHP:
}else if($gebäude_ablage_g == 12) {
  $gebäude_ng = $gebäude_anzahl_g+$gebäude_g12;
  $gebäude_np = $gebäude_punkte+$p12;
  mysql_query ("UPDATE user SET g12 = '$gebäude_ng' WHERE id = '$gebäude_id'");
  }else if($gebäude_ablage_g == 13) {
  $gebäude_ng = $gebäude_anzahl_g+$gebäude_g13;
  $gebäude_np = $gebäude_punkte+$p13; //<-- Das soll die Zeile sein!
  mysql_query ("UPDATE user SET g13 = '$gebäude_ng' WHERE id = '$gebäude_id'");
  }else if($gebäude_ablage_g == 14) {
  $gebäude_ng = $gebäude_anzahl_g+$gebäude_g14;
  $gebäude_np = $gebäude_punkte+$p14;
  mysql_query ("UPDATE user SET g14 = '$gebäude_ng' WHERE id = '$gebäude_id'");

Es geht immerso weiter. Der else if Abschnitt 13 ist genau wie alle anderen Abschnitte.
Seht ihr da was ungewöhnliches?
 
Der Fehler kann auch vollkommen woanders liegen, und erst einige Zeilen später in einer Fehlermeldung resultieren.

Was mich etwas irritiert, sind die Umlaute in den Variablennamen. Normalerweise sollte PHP damit kein Problem haben, aber man weiß ja nie...

Ansonsten: mach mal eine "binäre Suche" nach dem Fehler. D.h., kommentiere zuerst die obere Hälfte deine Scripts aus, und schau, was passiert. Wird trotzdem eine Fehlermeldung ausgegeben, dann liegt der Fehler wahrscheinlich in der anderen Hälfte. Wird keine Fehlermeldung ausgegeben, dann liegt die fehlerhafte Zeile in der ersten Hälfte. Den jeweiligen Bereich mit dem Fehler kannst du dann wieder in zwei Hälften zerlegen und wie anfangs verfahren. So kannst du den fehlerhaften Bereich Schritt für Schritt eingrenzen. Problematisch wird es nur, wenn gleich mehrere fehlerhafte Stellen über das ganze Script verteilt auftreten.
 
Also woher der Fehler kommt weis ich jetzt auch nicht so sicher.
Aber hier ein kleiner Tipp wie du dein Script kleiner und übersichtlicher bekommst.


Wenn du weist wie man Array benutzt empfehle ich dir das zu tun. Dadurch kannst du aus deinen 14 "else if" teilen, einen einzigen machen. Möglicherweise tritt der Fehler dann auch nicht mehr auf.

Gruss
 
mhh werde mal beides testen. aber früher ging es auch immer.

zum fehlereingrenzen: wie genau soll ich das machen? ich habe schonmal im skript alles code-blocks entfernt gehabt, die fehler enthalten. am ende hatte ich nur noch ein paar sql-anbindungen.^^ aber komentieren? ist das das hier: // blablabla ? das hatte ich nämlich zwischen jedem codeblock.
 
nun sagt der das:

Warning: Unterminated comment starting line 533 in blabla on line 533

Parse error: parse error, unexpected $ in blabla on line 533

edit:

hab en bsichen mehr auskomentiert und nun geht wieder alles, bis halt auf den abschnitt. aber diese fehlermeldung geht einfach net weg:


Warning: Unterminated comment starting line 533 in blabla on line 533
 
Zuletzt bearbeitet von einem Moderator:
Zurück