Antworten auf deine Fragen:
Neues Thema erstellen

Gästebuchfehler: Ein Leerbeitrag

Duddle

Posting-Frequenz: 14µHz

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:

SWFP

SWFP Mitglied

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

Duddle

Posting-Frequenz: 14µHz

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:

SWFP

SWFP Mitglied

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>";
 

Duddle

Posting-Frequenz: 14µHz

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
 

SWFP

SWFP Mitglied

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:

Duddle

Posting-Frequenz: 14µHz

AW: Gästebuchfehler: Ein Leerbeitrag

Eine der großen Stärken von PHP ist das ziemlich gute Handbuch.
Der Eintrag zu file() 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.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben