Kleines Problem mit Script...

Hallo,

könnte mir jemand von euch sagen, ob die Umsetzung meiner Idee so richtig ist…???

Code:

[php]

T E R M I N E <?php // Der Name der Termin - Datei lautet: $datenbankdatei = 'termine.txt';

// Ü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’ ‚;
echo‘ Klicke hier um zurück auf das Eingabeformular 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‘].‘ || ‚.$_POST[‚check‘].‘ || ‚.$_POST[‚zeit‘].‘ „\n“;

  // 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); 

}
}
else
{
// wenn das Formular nicht ausgefüllt wurde, es also nur einfach angezeigt werden soll, dann führe diesen Teil aus:
$file = fopen($datenbankdatei, ‚r‘) ;

// Solange wiederholen, bis die Datei vollständig ausgelesen wurde 

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];
$check = $daten[5];
$zeit = $daten[6];
//…
}
// Ausgabe auf den Bildschirm:
if($_POST[‚check‘] == „“)
{
echo 'Termin am: ‚.email.‘ den '.$name. ‚
Wann (Uhrzeit): ‚.zeit.‘
Wichtig: nein
Wo und nähers: ‚.$eintrag.‘


‘;
}
if($_POST[‚check‘] != „“)
{
echo 'Termin am: ‚.email.‘ den '.$name. ‚
Wann (Uhrzeit): ‚.zeit.‘
Wichtig: ja
Wo und nähers: ‚.$eintrag.‘


‘;

}

// Formular für weitere Einträge:
echo ‚

Hier kannst du deine Party eintragen:


<form method=„post“ action="‘.$_SERVER[„PHP_SELF“].‚">‘;
?>
Termin am: den

Wann (Uhrzeit):
Wichtig:
Wo und weiters:


[/php]

Ich bekomme nämlich folgende Fehlermeldung:

Parse error: parse error, unexpected T_STRING in C:\Programme\Apache Group\Apache2\htdocs\termine.php on line 63

Zeile 63:

// wenn das Formular nicht ausgefüllt wurde, es also nur einfach angezeigt werden soll, dann führe diesen Teil aus:
$file = fopen($datenbankdatei, 'r') ; 

Was is daran schon falsch…??

Gruß

webi

ändern mal $eintrag in das:
[php]
$eintrag = date(‚d.m.Y - H:i:s‘).’ || ‚.$_SERVER[„REMOTE_ADDR“].‘ || ‚.$_POST[‚name‘].‘ || ‚.$_POST[‚email‘].‘ || ‚.$_POST[‚eintrag‘].‘ || ‚.$_POST[‚check‘].‘ || ‚.$_POST[‚zeit‘].‘ \n’;[/php]

Aha, danke

jetzt kommt das hier:

Parse error: parse error, unexpected $end in C:\Programme\Apache Group\Apache2\htdocs\termine.php on line 106

geschweifte klammer net zugemacht.

Nils aka XraYSoLo

Tip zu unausgefüllten Felder.

Anstatt so:
[php]
if($_POST[‚name‘] == „“ || $_POST[‚eintrag‘] == „“)
{
echo’ ‚;
echo‘ Klicke hier um zurück auf das Eingabeformular zu kommen…

';
} [/php]

So:
[php]
if(empty($_POST[‚name‘]) || empty($_POST[‚eintrag‘]))
{
print"Bitte gehen Sie <a href="javascript:history.back()">zurück, füllen Sie alle Felder aus.";
}
//Rest[/php]

Oder eben ein Script bei unausgefüllten Feldern

Danke für die Tipps.

Wo soll die geschweifte Klammer fehlen…??

Ich wüsste nich wo…??

Gruß

webi