• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Party script funzt auf den PC aber nicht auf dem Webspace...

Status
Für weitere Antworten geschlossen.

WEBI

Neues Mitglied
Hallo,

der Titel sagt es ja schon.

Ich habe ein Art Newsscipt gecodet, funzt auch perfekt auf meinem Apache Server, nur auf dem Server von uttx gibts Fehlermeldungen....

Hier der Code in dem der "Fehler" steckt:

PHP:
      // Zeile für Zeile auslesen:  		
      $daten  = explode(" || ", $zeile);		
      $zeile  = fgets($file, 5000);		
      $datum  = $daten[0]; 		
      $ip     = $daten[1]; 		
      $name   = $daten[2]; 		
      $email  = $daten[3]; 		
      $eintrag = $daten[4];

Fehlermeldungen:

Notice: Undefined variable: zeile in /www/usersites/s-x/webi/pub/news.php on line 79
Notice: Undefined offset: 1 in /www/usersites/s-x/webi/pub/news.php on line 82
Notice: Undefined offset: 2 in /www/usersites/s-x/webi/pub/news.php on line 83
Notice: Undefined offset: 3 in /www/usersites/s-x/webi/pub/news.php on line 84
Notice: Undefined offset: 4 in /www/usersites/s-x/webi/pub/news.php on line 85

Der gesamte Code schaut folgendermaßen aus:

PHP:
<html>
<head>
<title>PARTY-SEITE</title>
</head>
<body>
<body bgcolor="yellow">
<?php 
   // Der Name der Gästebuch-Datei lautet: 
  $datenbankdatei = 'gaestebuch2.txt'; 
  $mailempfaenger = '[email protected]'; 

  // Überprüfung, ob die Datei vorhanden ist. 
  // wenn nicht vorhanden, dann versuche diese zu erstellen 
  // wenn das Erstellen nicht erfolgreich war (mangelnde Rechte), dann Skript abbrechen 
  if(!file_exists($datenbankdatei)) 
    if(!@touch($datenbankdatei)) 
      die("Fehler: Die Datenbank ist nicht erreichbar."); 



  if(isset($_POST['button'])) 
  { 
   // wenn das Formular abgeschickt wurde, dann führe das hier aus (Daten in die Datei eintragen) 

   // ÜBerprüfe, ob Name und Text angegeben wurde - sonst kein Eintrag 
   if($_POST['name'] == "" || $_POST['eintrag'] == "") 
   { 
   echo' <script>alert(" Bitte alle Felder vollständig ausfüllen, Danke ...!!! ")</script>';
   echo' Klicke <a href="http://localhost/news.php">hier</a> um zurück auf das Eingabeformular zu kommen....<p>';
   echo' Klicke <a href="http://www.sieglbua.de">hier</a>, um auf die Startseite zu kommen....';
   } 
   else 
   { 
     // als erstes werden die Daten zu einem langen string zusammengefasst. Damit die einzelnen Variablen später wieder getrennt werden können setzen wir ein Trennzeichen. In diesem Fall habe ich mich für || entschieden. 
     // das \n am Ende sorgt dafür, dass ein Zeilenumbruch in der Textdatei gemacht wird. Das ist für das Auslesen wichtig! 
      $eintrag = date('d.m.Y - H:i:s').' || '.$_SERVER["REMOTE_ADDR"].' || '.$_POST['name'].' || '.$_POST['email'].' || '.$_POST['eintrag']."\n"; 

      // Nun wird die Datei geöffnet. Der Modus 'a' gibt an, dass die Datei zum Schreiben geöffnet wurde und die Daten hinten dran gehängt werden 
      // Wenn die Datei nicht geöffnet werden kann: Abbruch 
      if(!$file = @fopen($datenbankdatei,"a")) 
        die("Fehler: Die Datenbank ist nicht erreichbar."); 

      // Datei für andere sperren 
      flock($file,LOCK_EX) or die(); 

      // mit fwrite werden nun die Daten, welche wir vorher zu einer Variable zusammengefasst haben hineingeschrieben 
      // Wenn die Datei nicht beschrieben werden kann: Abbruch 
      if(!@fwrite($file, $eintrag)) 
        die("Fehler: Die Datenbank ist nicht erreichbar."); 

      // Sperre der Datei wieder aufheben 
      flock($file,LOCK_UN) or die(); 

      // Datei schliessen 
      fclose($file); 

      // Ausgabe für den user: 
      echo '<center><h2>Vielen Dank für deinen Eintrag</h2>Deine Party wurde erfolgreich aufgenommen.<br /><p><a href="'.$_SERVER["PHP_SELF"].'"><<<...Zurück zur Party-Seite...>>></a>'; 


      // eMail wird verschickt: 
      @mail($mailempfaenger, "Gästebucheintrag", "Folgender Eintrag wurde hinterlassen:\n\nName: ".$_POST['name']."\nAbsender: ".$_POST['email']."\nText: ".$_POST['eintrag']."\n\nIP: ".$_SERVER["REMOTE_ADDR"]."\n".date('d.m.Y - H:i:s'), "From: ".$_POST['email']."\r\nX-Mailer: PHP/" . phpversion()); 
   } 
  } 
  else 
  { 
    // wenn das Formular nicht ausgefüllt wurde, es also nur einfach angezeigt werden soll, dann führe diesen Teil aus: 

    // Anzeige der Einträge aus dem Gästebuch: 
    echo '<font color="red"><center><u><b><font size="7">Meine Party-Seite:</font></font><p><br><br>'; 

    // Öffnen der Datei im Lese-Modus: 
    $file = fopen($datenbankdatei, 'r'); 

    // Solange wiederholen, bis die Datei vollständig ausgelesen wurde 
    while (!feof($file)) 
    { 
      // Zeile für Zeile auslesen:  
      $daten  = explode(" || ", $zeile);
      $zeile  = fgets($file, 5000);
      $datum  = $daten[0]; 
      $ip     = $daten[1]; 
      $name   = $daten[2]; 
      $email  = $daten[3]; 
      $eintrag = $daten[4];  


      // Ausgabe auf den Bildschirm: 
      if($name != "" && $eintrag != "") 
        echo '<a href="'.$email.'">'.$name. '</a><br>schrieb am:</u> '.$datum.'<p><u>folgende Party:<br /></u>'.$eintrag.'<br /><br /> <hr />'; 
        
    } 
    fclose($file); 
        echo '<hr><hr>'; 

      // Formular für weitere Einträge: 
    echo '<h2><u>Hier kannst du deine Party eintragen:</u></h2><br> 
<form method="post" action="'.$_SERVER["PHP_SELF"].'"> 
Dein Name:   <input type="text" name="name"><br />
Deine Home:  <input type="text" name="email" value="http://www."><br /><p> 
Deine Party: <p><textarea name="eintrag" rows="5" cols="50"></textarea><p> 
<input type="submit" name="button" value="Und ab geht´s...."><input type="reset" name="button" value="Alles löschen...."> 
</form>'; 
  } 
?> 
</body>
</html>

Danke schon mal für eure Hilfe...

Gruß

WEBI
 
Jo, da wird wahrscheinlich das ErrorReporting standardmäßig auf All oder ähnlichem strengem stehen.
Alle Fehler basieren auf einem Gedankenfehler.

Du musst in der Schleife natürlich zuerst einmal eine Zeile auslesen.
PHP:
while (!feof($file))
{
  // Zeile auslesen
  $zeile = fgets($file, 4096);

  // Zeile für Zeile auslesen:  
  $daten   = explode(" || ", $zeile);
  $zeile   = fgets($file, 5000);
  $datum   = $daten[0];
  $ip      = $daten[1];
  $name    = $daten[2];
  $email   = $daten[3];
  $eintrag = $daten[4];
  //...
}
 
Ah, danke.....

jetzt wenn mir noch jemand erklärt was das bedeutet:

Parse error: syntax error, unexpected $end in /www/usersites/s-x/webi/pub/news.php on line 111

dann wäre ich erstmal zufrieden....

Danke schon mal

WEBI
 
Dann tu mal die Zeile 111.
Ansonsten kann ich nur sagen, dass da ein $end steht, was nicht erwartet wurde. Möglicherweise etwas wie echo "Hallo " $end; (. nach dem "Hallo" vergessen.)
 
Das heisst, das du sicher eine Klammer ('(' oder '{') vergessen hast zu schliessen und das PHP nun unerwarteter Weise das Ende der Datei/des Skripts erreicht hat ohne diese schliessende Klammer zu finden
 
Zuletzt bearbeitet:
Wenn du deinen Code ordentlich formatierst, ist das Finden von Fehlern wesentlich leichter ;-)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben