Gästebuch

03/13/2012 21:52 <Stiggi>#1
Hey,

Ich brauche hilfe bei einem Gästebuch, das ich nach einem Tutorial im Internet gelernt habe.
Das Gästebuch speichert die geschriebenen Dinge in einer Textdatei "gaestebuch.txt". Die Beiträge in dieser txt werden direkt hinter den vorherigen Eintrag gehängt. Dies möchte ich nicht. Ich möchte das er z.B. 2 Zeilenumbrüche macht um es besser zu strukturieren. Sonstige Vebesserungvorschläge und Kritik sind erwünscht!

Hier die Gaestebuch.php:

Code:
<html>
<head>
<title>Gästebuch</title>

<link rel="stylesheet" type="text/css" href="style.css" />

<br>
<br>

<center><h2>Wir freuen uns, das Sie uns einen Eintrag<br>in unserem neuen Gästebuch hinterlassen wollen!</h2></center>

<?php
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

foreach($beitrag as $ausgabe)
   {
   $ausgabe = stripslashes($ausgabe);
   $zerlegen = explode("|", $ausgabe);

   echo "
   <table align=\"center\"
	border=\"1\" cellspacing=\"0\"
   cellpadding=\"5\" bordercolorlight=\"black\"
   bordercolordark=\"black\" width=\"50%\">
   <tr>
   <td>
  Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a>
  am $zerlegen[2]
   </td>
   </tr>

   <tr>
   <td>
   $zerlegen[3]
   </td>
   </tr>
   </table><br>
   ";
   }
?>


<hr>


<center>

<h3>Wollen Sie einen Beitrag hinzufügen?</h3><br>

<form action="neuerbeitrag.php" Method="post">
Ihr Name:<br>
<input name="Name" size="40"><br><br>

E-Mail:<br>
<input name="EMail" size="40"><br><br>

Inhalt:<br>

<textarea name="inhalt" cols="40" rows="12"
wrap="physical"></textarea><br>
<br>
<input type="submit" value="Absenden">
</form>

</center>
hier die neuerbeitrag.php:

Code:
<html>
<head>
<title>Gästebuch</title>

<link rel="stylesheet" type="text/css" href="gstyle.css" />

</head>
<body>

<?php
$user = $_POST["Name"];
$user = htmlentities($user);

$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", "<br>", $inhalt);

$email = $_POST["EMail"];
$email = htmlentities($email);

if ($inhalt == "" or $user == "")
   {
   echo "Sie müssen das Feld \"Namen\"
   und \"Inhalt\" ausfüllen!";
   }

else
   {
   $datum= date("d.m.Y H:i:s");

   $eintrag="$email|$user|$datum|$inhalt";

   $datei = fopen("gaestebuch.txt", "a");
   fwrite($datei,$eintrag);
   fclose($datei);

   echo "Ihr Eintrag wurde erfolgreich gespeichert!";
   }
?>

<br>
<a href="gaestebuch.php">Zurück zum Gästebuch</a>
</body>
</html>
Danke im Vorraus!:)
PS: Meine Kenntnisse sind noch nicht fortgeschritten im Thema PHP, ich bin dabei es zu lernen...

<Stiggi>
03/13/2012 22:47 PseudoPsycho#2
Dann nimm' doch einfach im 2. Code:
PHP Code:
$eintrag="\r\n\r\n$email|$user|$datum|$inhalt"
Dann hast'e 2 Zeilenumbrüche.

Dennoch möchte ich dir von Textdateien abraten, auch wenn es nur Lernzwecken dient. Hab' ich früher auch mal mit Dateien gelernt und mittlerweile bracuhe ich sowas fast garnicht mehr...
Wenn man mit MySQL(i) umgehen kann, wird das überflüssig.
Ich empfehle daher, dir lieber einige SQL-Tutorials durchzulesen...
03/13/2012 22:50 lujaluja#3
€: PseudoPsycho war schneller...
03/14/2012 14:20 <Stiggi>#4
Danke es funktioniert!!!
Ich habe aber ein weiteres Problem das ich gerne beheben möchte.
Ich möchte nicht das immer 2 mal "von am" zwischen den Posts im Gästebuch stehen.

[Only registered and activated users can see links. Click Here To Register...]
03/14/2012 15:48 .Marcel'#5
bitte keine == "" Überprüfungen... dafür gibts die empty() Funktion...
03/23/2012 12:17 Lord Avo​#6
Habe das selbe Problem, kann mir einer das komplette Script mit der empty Funktion schreiben.
03/23/2012 20:12 .Marcel'#7
Anschauen, sonst lernt ihr es nicht, vorschreiben bringt euch nichts.
03/24/2012 21:11 Lord Avo​#8
Unnötige Antwort, kannst jmd. anderes aufn Sack gehen mit deinen dummen Kommentaren!
03/24/2012 23:38 PseudoPsycho#9
Quote:
Originally Posted by Avo' View Post
Habe das selbe Problem, kann mir einer das komplette Script mit der empty Funktion schreiben.
Einfach statt:
PHP Code:
if ($inhalt == "" or $user == ""
das schreiben:
PHP Code:
if (empty($inhalt) || empty($user)) 
...und in ähnlichen Fällen gilt das Selbe.

Quote:
Unnötige Antwort
Sorry, aber ebenso unnötige Frage.
Dergleichen ist noch bei Weitem unter Anfänger-Niveau!
03/25/2012 13:02 .Marcel'#10
Quote:
Originally Posted by Avo' View Post
Unnötige Antwort, kannst jmd. anderes aufn Sack gehen mit deinen dummen Kommentaren!
Ziemlich unverschämt von dir, hauptsache alles hingeklatscht bekommen, und nichts verstehen, mach weiter so!