Unerklärlicher PHP Error

Hallo,

ich habe mit meinen mittelmäßigen Kenntnissen in PHP eine Auf TXT Dateien basierende Bilder Gallery verrucht zu programmieren. Die Gallery funktioniert, nur die Datei in der die einzelnen Galerien und Bilder hinzugefügt werden soll, bekomme ich folgenden ERROR:

Parse error: syntax error, unexpected $end in /users/schnawel007/www/gallery/gallerydaten/admin_add.php on line 1 :qst: :qst:

Warum?

<?php
 $was = $_POST["was"];
 $catname = $_POST["catname"];
 $catsave = $_POST["catsave"];
 $catpass = $_POST["catpass"];
 if($catsave == "" or $catpass == "")
 {
 $catsave = 0;
 $catpass = 0;
 }
 $key = $_POST["key"]-1;
 $count = 0;
 if ($was == "create")
 {
    if($_FILES['Datei']['tmp_name'])
    {
        move_uploaded_file($_FILES['Datei']['tmp_name'], "catpics/".$_FILES['Datei']['name']);
    }
    else
    {
        echo"Bitte geben Sie eine Datei an!";
		die();
    }
 $catpic = $_FILES['Datei']['name']  ;
 $datei = fopen("cats.txt","a+");
 if (filesize("cats.txt") == 0)
 {
 $counterstand = "";
 }
 else
 {
 $counterstand = "::: \r\n";
 }
 $counterstand .= $catname;
 $counterstand .= ":::";
 $counterstand .= $catpic;
 $counterstand .= ":::";
 $counterstand .= $catsave;
 $counterstand .= ":::";
 $counterstand .= $catpass;
 fwrite($datei, $counterstand);
 fclose($datei);
 echo "Gallery ", $catname, " wurde erstellt!";
 }
 else if ($was == "delet")
 {
$oldfile = "cats.txt";
$old = fopen($oldfile, "r");
flock($old, 1) or die("Kann die Quelldatei $oldfile nicht locken.");
$new = fopen($oldfile.".new", "w");
flock($new, 2) or die("Kann die Zieldatei $newfile nicht locken.");
$lineno = 0;
while($line = fgets($old, 1024)) {
  if ($lineno++ == $key)
    continue;  // Zeile auslassen
 
  fputs($new, $line);
}
fclose($old);
unlink($oldfile);
fclose($new);
rename($oldfile.".new", $oldfile);
 echo "Gallery ", $key+1, " wurde gelöscht!";
 }
 
?>
<form enctype="multipart/form-data"  action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="create" name="was">
  <p>Galleryname:<br><input name="catname" type="text" size="30" maxlength="40"></p>
  <p>Gallerypic:<br><input name="Datei" type="file"></p>
<input type="submit" value="erstellen">
</form>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" value="delet" name="was">
  <p>key:<br><input name="key" type="text" size="5" maxlength="1"></p>
<input type="submit" value="löschen">
</form>

gegoogelte Ergebnisse sagen man hat eine { vergessen. ich finde keine, und zudem habe ich keine in Line 1. Bitte helft mir!

MfG schnawel007

PS: Auf meinem Rechner mit XAMPP funktioniert es!

[quote=“schnawel007”]Parse error: syntax error, unexpected $end in /users/schnawel007/www/gallery/gallerydaten/admin_add.php on line 1 :qst: :qst:

Warum?[/quote]
Diese Fehlermeldung bekommt man deshalb, weil der Parser früher auf das Scriptende trifft, als er erwarten durfte - weil es auf grund der vorhandenen Klammerung o.ä. dort, wo die Datei endet., noch gar nicht zu Ende sein dürfte.

Wohl eher eine schliessende }

Vermutlich, weil du in der falschen Scriptdatei (oder -version) suchst …?
Im angegebenen Code finde ich auch keinen solchen Fehler, der lässt sich ausführen.

Der Parser kann nur feststellen, dass die Verschachtelung der Blöcke im Code nicht korrekt beendet wurde. Wo genau der Fehler liegt, kann er nicht feststellen - deshalb nennt er dir nur diese Zeile.

Das könnte ja gar nicht sein, wenn das dortige Script den gleichen Code enthielte.
Also überprüfe das wirklich noch mal genau.

Zähl mal die Anzahl aller { und alle } und subtrahiere die Werte…

Been there, done that …

Obigen Code 1:1 kopdiert, im Texteditor { und } (jeweils 8), und auch runde Klammern (jeweils 25) gezählt - daran kann’s nicht liegen. (Könnte schon, wenn die Klammern irgendwo im Textinhalt oder einem PHP-String stünden, hier aber nicht der Fall.)

Ausserdem sagte ich ja schon, der Code wie gepostet lässt sich ausführen - wirft dann zwar natürlich andere Laufzeitfehler, aber zumindest keinen parse error.

Der Fehler muss woanders sitzen - meine schon geäusserte Vermutung lautet ja wieder mal “vor dem Bildschirm” :slight_smile:

Das mit Xampp geht wohl:


Es gibt nur diesen teil vom Script. Er wird nicht included oder sonst irgendwas.
es gibt 8 { und 8 }, 25 ( und 25 ), und 13 [ und 13 ].
Bitte helft mir!

MfG schnawel007

PS: nein der Fehler sitzt nicht vor dem Bildschirm. Ich habe Bilder die beweisen, das es auf meinem Rechner geht!

Ups…dein Code ist rein Syntaxgesehen fehlerfrei

Ist die Datei komplett hochgeladen? Zeile 1 lässt böses vermuten…

Diese Bilder “beweisen” einen feuchten Furz …

Dass du kontrollieren sollst, ob die Scriptdateien lokal und auf dem Server auch identisch sind, schrieb ich doch bereits - also mach’s gefälligst, anstatt uns hier irgendwelche Bildchen reinzustellen, deren Aussagekraft, was das eigentliche Problem angeht, gegen Null geht.

Die Datei auf dem Server ist 100% identisch. Und wen du glaubt das ich das Problem nur spiele, dann kann ich dir nicht helfen. Auf meinem lokalen Server geht er. Du hörst, er ist 100% Fehlerfrei. Was mich interessiert, wiso geht der identische Script auf meinem lokalen Server aber nicht auf bplaced, im Anhang ist der Script als PHP-Datei. Vllt könnte ihn jemand testen! Und deine feuchten Fürze kannst du behalten! :slight_smile:

Im Anhang ist gar nix…

erstell mal eine Datei mit dem Inhalt auf dem Webspace:

DAAAAAAAAAAAAANNNNNNNNNNNNNNKEEEEEE!!!

Ich hab meinen Fehler durch das // Zeile auslassen, wurde die hälfte des Scripts nicht verwendet. Wiso das Xampp nicht juckt und dem bplaced Server schon, weis ich nicht, aber egal, es geht! DAAAAAAAAAAANNNNNNNNKEEE!

Nach was an dich chrisb, ich finde es nett das du mir helfen wolltest, aber wen man mal auf dem Schlauch steht nicht gleich so aufbrausend! Und meine Bilder haben bewiesen, das auf XAMPP der Script ausgeführt wird! (Auch wen du es nicht siehst!)

MfG schnawel007

PS: Besucht doch mal meine HP http://schnawel007.bplaced.net