Antworten auf deine Fragen:
Neues Thema erstellen

Gästebuchfehler: Ein Leerbeitrag

AW: Gästebuchfehler: Ein Leerbeitrag

Ohne Code kann dir hier nicht geholfen werden, die allmächtige Glaskugel ist immer noch nicht erfunden.


Duddle
 
Zuletzt bearbeitet:
AW: Gästebuchfehler: Ein Leerbeitrag

PHP:
<html>
<head>
<title>Gästebuch - Speichere Beitrag</title>
</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, "\n".$eintrag);
   fclose($datei);

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

<br>
<a href="gaestebuch.php">Zurück zum Gästebuch</a>
</body>
</html>

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

Wollen Sie einen Beitrag hinzufgen?<br><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><br>

Inhalt:<br>

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

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

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

   echo "
   <table align=\"left\"
        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>
   ";
   }
?>

<br />
 
AW: Gästebuchfehler: Ein Leerbeitrag

Du liest jede Zeile ein. Offenbar gibt es eine leere Zeile und file() liest diese eben auch ein. Wenn du die ignorieren willst, musst du FILE_SKIP_EMPTY_LINES als Flag übergeben. Oder du prüfst manuell, ob die aktuelle Zeile leer ist und machst ein "continue".


Duddle
 
Zuletzt bearbeitet:
AW: Gästebuchfehler: Ein Leerbeitrag

Und wie mache ich das?
Wie man einen Parameter übergibt oder eine Variable auf ihren Inhalt überprüft?

Wenn dir die Grundlagen von PHP fehlen, dann musst du sie dir aneignen.





Duddle
 
AW: Gästebuchfehler: Ein Leerbeitrag

Nein, nein. Ich meinte, den komplizierten Vorgang aus dem Beitrag zuvor:
Du liest jede Zeile ein. Offenbar gibt es eine leere Zeile und file() liest diese eben auch ein. Wenn du die ignorieren willst, musst du FILE_SKIP_EMPTY_LINES als Flag übergeben. Oder du prüfst manuell, ob die aktuelle Zeile leer ist und machst ein "continue".


Duddle

Also: mit dem Script wird in eine Textdatei geschrieben, die dann ausgelesen werden kann. Ich sehe da aber keine Leerzeile:

PHP:
...
//Verarbeitung der Daten

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

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

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

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

und

PHP:
//Beitrag ausgeben
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

echo "<h2>Bisherige Beitr&auml;ge</h2><div class='gaestebuch'>";

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

   echo "<br /><div class='Beitrag'>
   <div class='avatar'>
   <img src=\"Bilder/$zerlegen[0]\">
   </div>
<div id='Sprechblase'>
  <div class='Info'>Von <a href=\"mailto:$zerlegen[1]\">$zerlegen[2]</a>
  am $zerlegen[3]</div>
<div class='Text'>
   <h3>$zerlegen[4]</h3>
   $zerlegen[5]
</div></div><br /><br />
   ";
   }
   
   echo "</div></div></div>";
 
AW: Gästebuchfehler: Ein Leerbeitrag

Ich meinte, den komplizierten Vorgang aus dem Beitrag zuvor:
In diesem Absatz habe ich zwei Ansätze vorgestellt. Der eine ist das Einfügen eines Parameters in einen Funktionsaufruf und der andere ist das Überprüfen der Variable auf ihren Inhalt (lies: die Zeile ist leer).

Ich sehe da aber keine Leerzeile:
Die Leerzeile steht doch nicht im Code, sondern in der Textdatei. Diese wird doch ausgelesen.
Im Code selbst erzeugst du aber auch eine Leerzeile, indem du vor jedem Eintrag einen Zeilenumbruch in die Datei schreibst. Daraus folgt unmittelbar, dass vor dem ersten Eintrag eine Leerzeile ist.


Duddle
 
AW: Gästebuchfehler: Ein Leerbeitrag

Dann würde ich gerne das mit dem Parameter machen. Denke das ist einfacher, oder? Wie mache ich das?

SWFP

Edit: Ja, daran liegt es. habe es gerade manuell überprüft. Kann ich das eigentlich nicht im Script einbauen? Ich kann doch auch im CSS Ausnahmen definieren.
 
Zuletzt bearbeitet:
AW: Gästebuchfehler: Ein Leerbeitrag

Eine der großen Stärken von PHP ist das ziemlich gute Handbuch.
Der Eintrag zu listet wunderbar alle möglichen Argumente auf und hat ein kleines Beispiel obendrauf. Ganz unten stehen dann noch Kommentare mit meist hilfreichen Anmerkungen oder Einsatzfällen.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.969
Beiträge
1.540.175
Mitglieder
68.165
Neuestes Mitglied
Luki11
Oben