Einträge im Gästebuch hängen zusammen

Guten Morgen,

ich habe das Gästebuch von elsner.bplaced.net/gaestebuch.php). Am liebsten wäre mir eine Leerzeile, horizontale Trennlinie und nochmals eine Leerzeile. Wie muss ich den Code dafür abändern? Oder hat jemand vielleicht eine andere Idee zur Trennung der Einträge?
Vielen Dank.

Gruß Elsner

Dann gib uns doch mal den Code davon, wenn es ein Tamplate gibt, gib uns das :wink:

Mit dem Begriff Tamplate kann ich leider nichts anfangen. Meinste du den Code?

Code gaestebuch.php

[code]

Gästebuch


Startseite

Ich

Freunde

Sprüche

Interessantes

Witziges

Kreative Ader

Gästebuch

Gästebuch



<?php include_once('script/inc.php'); include_once('script/funktionen.php');

// Variablen auf 0 setzen
$nname = ‘’; $vname =’’; $ort = ‘’; $email = ‘’; $beitrag = ‘’;
$t_nname = ‘’; $t_ort = ‘’; $t_email = ‘’; $t_beitrag = ‘’;

// code erstellen, um zu verhindern, dass Spam erfolgt
$code = date(‘m’) * 3 + date(‘Y’) * 7 + 59 + date(‘d’) * 23 + 47;

if (isset($_POST[‘submit’])) {

// richtige Form prüfen -> die
if (strlen($_POST[‘nname’]) > 50 ) die (‘Manipulation’) ;
if (strlen($_POST[‘vname’]) > 50 ) die (‘Manipulation’) ;
if (strlen($_POST[‘ort’]) > 50 ) die (‘Manipulation’) ;
if (strlen($_POST[‘email’]) > 50 ) die (‘Manipulation’) ;

if (!isset($_POST[‘code’]) || $_POST[‘code’] != $code) die(‘Mailcode fehlt!’);

// Tags entfernen
$nname = strtr(trim(strip_tags($_POST[‘nname’])),’@/’,’ ‘);
$vname = strtr(trim(strip_tags($_POST[‘vname’])),’@/’,’ ‘);
$ort = strtr(trim(strip_tags($_POST[‘ort’])),’@\ ‘,’ ‘);
$email = trim(strip_tags($_POST[‘email’]));
$beitrag = strtr(trim(strip_tags($_POST[‘beitrag’])),’@/’,’ ');

// Lange Wörter (>50) zwangstrennen, um richtige Darstellung zu erhalten.
$beitrag = wordwrap($beitrag, 50, ’ ‘, 1);
// doppelte Leerstellen entfernen
$beitrag = str_replace(’ ', ’ ', $beitrag);

// pruefen ob alle Variablen richtig
if ( $nname == “” ) { $t_nname = “Bitte Nachname angeben!” ; }
if ( $nname == $vname ) { $t_nname = “Das kann nicht sein, Vor- und Nachname!” ; }
if ( $ort == “” ) { $t_ort = “Bitte Ort angeben!” ; }
if ( $email == “” ) { $t_email = “” ; }
else {
if(check_email($email)) { $t_email = “” ; }
else { $temail = “E-Mail nicht richtig!” ; }
}
if ( $beitrag == “” ) { $t_beitrag = “Bitte Beitrag schreiben!” ; }

// wenn i.O., Mails senden und eintragen in DB
if ( $t_nname == “” && $t_ort == “” && $t_beitrag == “” && $t_email == “” ) {

$headers  = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From:bplaced <elsner.bplaced@freenet.de>\n";
$headers .= "Reply-To: elsner.bplaced@freenet.de\n";
$headers .= "X-Sender-IP:".$REMOTE_ADDR."\n";
$headers .= "X-Mailer:PHP/".phpversion();

$webmaster = "elsner.bplaced@freenet.de";
$betreff = "Gästebuch";
$kopf1 = "Folgender Eintrag erfolgte:\n\n";
$eintrag = "Nachname: ".$nname."\nVorname: ".$vname."\nOrt: ".$ort."\nEMail: ".$email."\n\n".$beitrag."\n";
$loeschlink = "\n\nLöschen: http://elsner.bplaced.net/scripte/gaestebuch_loe.php\n\n";
$text1 = $kopf1.$eintrag.$loeschlink;

@mail($webmaster,$betreff,$text1,$headers);

if ($email !=""){
  $kopf2 = "Du hast in meinem Gästebuch folgenden Eintrag vorgenommen:\n\n";
  $fuss2 = "\n\nVielen Dank für deinen Eintrag\nOliver Elsner\nelsner.bplaced.net";
  $text2 = $kopf2.$eintrag.$fuss2;
  @mail($email,$betreff,$text2,$headers);
}

// Eintraege an DB gaestebuch senden
$query = "INSERT into gaestebuch (vname,nname,ort,email,beitrag)
VALUES('$vname','$nname','$ort','$email','$beitrag')";
$result = mysql_query($query, $conn) or mysql_die();

// gegebenenfalls Scriptteil Newsletter

    echo '
    <p class="center"><strong>Erfolgreich eingef&#252;gt!</strong></p>
    ';

// Felder leeren
$nname = "" ; $vname = "" ; $ort = "" ; $email = "" ; $beitrag = "" ;

}
}
// submit abgeschlossen, es folgt die eigentliche Seite ---------------

echo ’

Nachname '.$t_nname.' 
Vorname
Ort '.$t_ort.' 
E-Mail '.$t_email.' 
Beitrag '.$beitrag.'
'.$t_beitrag.' 
 
'; ?>

Gästebucheintragungen

<?php // Verbindung mit DB fuer Eintragungen anzeigen $query = "SELECT *, DATE_FORMAT(tstamp,'%d.%m.%y') AS tstamp_f FROM gaestebuch ORDER BY tstamp DESC"; $result = mysql_query($query,$conn); $num = mysql_num_rows($result); for ($i = 0; $i < $num; $i++){ $row = mysql_fetch_array($result); echo '
Name: '.$row['vname'].' '.$row['nname'].' Ort: '.$row['ort'].'
Mail: '.$row['email'].' Date: '.$row['tstamp_f'].'

'.nl2br($row['beitrag']).'

'; } mysql_close($conn); ?>
</td>
[/code]

Tabellenstruktur:

[quote]CREATE TABLE gaestebuch (
id_gaesteb int(12) NOT NULL AUTO_INCREMENT,
vname varchar(40) DEFAULT NULL,
nname varchar(40) NOT NULL DEFAULT ‘’,
ort varchar(40) DEFAULT NULL,
email varchar(40) DEFAULT NULL,
beitrag text NOT NULL,
tstamp timestamp(14) NOT NULL,
PRIMARY KEY (id_gaesteb)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

Daten für Tabelle gaestebuch

INSERT INTO gaestebuch
(id_gaesteb, vname, nname, ort, email, beitrag, tstamp)
VALUES (1, ‘Testerli’, ‘Tester’, ‘Testdorf’, 'test@test.xy’, ‘Dies ist ein Testtext, der immer hier steht.\r\nEr dient nur zum Zeigen der Funktion.’, 20040924124140);[/quote]

Das ist kein gutes Skript, alleine schon die Ausgabe als Tabelle ist Wahnsinn :ps:

@michi7x7: Mach mich nicht schwach. Ich hatte mir erst ein anderes Skript ausgesucht und der user “fusion” hat mich zu dem hier geführt. Hast du eine bessere Vorlage für mich?

Es ist eh ziemlich einfach aufgebaut, d.h. die Änderung ist kein Problem:
Das ist der Codeteil den es abzuändern gilt.

  echo '
<table width="100%">
<colgroup>
   <col width="60" />
    <col />     
    <col width="50" />     
    <col width="150" />     
</colgroup>
<tr>
   <td >Name:</td>
   <td>'.$row['vname'].' '.$row['nname'].'</td>
   <td>Ort:</td>
   <td>'.$row['ort'].'</td>
</tr>
<tr>
   <td>Mail:</td>
   <td>'.$row['email'].'</td>
   <td>Date:</td>
   <td>'.$row['tstamp_f'].'</td>
</tr>
</table>
<p class="bgweiss">'.nl2br($row['beitrag']).'</p>
';

Blöderweise ist das komplette Skript nicht XHTML1.0-konform. Du solltest daher erstmal den Doctype auf HTML4.1 trans setzen :wink:

Dann kannst du mit gewohnten HTML-Methoden den genannten Codeteil verändern :wink: (color-Attribut u.Ä.)

@michi7x7: Danke für deine Bemühungen. Ich habe den Code 1 zu 1 übernommen und den anderen überschrieben. Jedoch erscheinen beim Gästebuch jetzt keine Eingabefelder mehr. Woran liegt das?

Der gepostete Codeteil ist nur ein Teil deines Codes, und das auch nur als Zitat, nicht als geänderte Ausführung. Hier mal der ganze Code mit den gewünschten Änderungen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Gästebuch</title>
<script src="/script/formpruef-de.js" type="text/javascript"></script>
<link rel="stylesheet" href="design/design.css" type="text/css">
</head>

<body onload="startnname()">

<a href="index.html"><img src="bilder+grafiken/banner.gif" border="0"></a>

<p><hr></p>

<div id="navi">
<h2><a href="index.html">Startseite</a></h2>
<h2><a href="ich.html">Ich</a></h2>
<h2><a href="freunde.html">Freunde</a></h2>
<h2><a href="sprueche.html">Sprüche</a></h2>
<h2><a href="interessantes.html">Interessantes</a></h2>
<h2><a href="witziges.html">Witziges</a></h2>
<h2><a href="kreative_ader.html">Kreative Ader</a></h2>
<h2><a href="gaestebuch.php">Gästebuch</a></h2>
</div>

<div id="inhalt">
<h1>Gästebuch</h1>
<hr>
<br>
<?php
include_once('script/inc.php');
include_once('script/funktionen.php');

// Variablen auf 0 setzen
$nname = ''; $vname =''; $ort = ''; $email = ''; $beitrag = '';
$t_nname = ''; $t_ort = ''; $t_email = ''; $t_beitrag = '';

// code erstellen, um zu verhindern, dass Spam erfolgt
$code = date('m') * 3 + date('Y') * 7 + 59 + date('d') * 23 + 47;

if (isset($_POST['submit'])) {
   
  // richtige Form prüfen -> die
  if (strlen($_POST['nname'])  > 50 ) die ('Manipulation') ;
  if (strlen($_POST['vname'])  > 50 ) die ('Manipulation') ;
  if (strlen($_POST['ort'])    > 50 ) die ('Manipulation') ;
  if (strlen($_POST['email'])  > 50 ) die ('Manipulation') ;
 
  if (!isset($_POST['code']) || $_POST['code'] != $code) die('Mailcode fehlt!');
   
  // Tags entfernen
  $nname   = strtr(trim(strip_tags($_POST['nname'])),'@\/','   ');
  $vname   = strtr(trim(strip_tags($_POST['vname'])),'@\/','   ');
  $ort     = strtr(trim(strip_tags($_POST['ort'])),'@\ ','   ');
  $email   = trim(strip_tags($_POST['email']));     
  $beitrag = strtr(trim(strip_tags($_POST['beitrag'])),'@\/','   ');
   
  // Lange Wörter (>50) zwangstrennen, um richtige Darstellung zu erhalten.
  $beitrag = wordwrap($beitrag, 50, ' ', 1);
  // doppelte Leerstellen entfernen
  $beitrag = str_replace('  ', ' ', $beitrag);
     
  // pruefen ob alle Variablen richtig
  if ( $nname == "" )     { $t_nname = "Bitte Nachname angeben!" ; }
  if ( $nname == $vname ) { $t_nname = "Das kann nicht sein, Vor- und Nachname!" ; }
  if ( $ort == "" )       { $t_ort   = "Bitte Ort angeben!" ; }
  if ( $email == "" )     { $t_email = "" ; }
  else {
    if(check_email($email)) { $t_email = "" ; }
    else { $temail = "E-Mail nicht richtig!" ; }
  }
  if ( $beitrag == "" ) { $t_beitrag = "Bitte Beitrag schreiben!" ; }

  // wenn i.O., Mails senden und eintragen in DB
  if ( $t_nname == "" && $t_ort == "" && $t_beitrag == "" && $t_email == "" ) {

    $headers  = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
    $headers .= "From:bplaced <elsner.bplaced@freenet.de>\n";
    $headers .= "Reply-To: elsner.bplaced@freenet.de\n";
    $headers .= "X-Sender-IP:".$REMOTE_ADDR."\n";
    $headers .= "X-Mailer:PHP/".phpversion();

    $webmaster = "elsner.bplaced@freenet.de";
    $betreff = "Gästebuch";
    $kopf1 = "Folgender Eintrag erfolgte:\n\n";
    $eintrag = "Nachname: ".$nname."\nVorname: ".$vname."\nOrt: ".$ort."\nEMail: ".$email."\n\n".$beitrag."\n";
    $loeschlink = "\n\nLöschen: http://elsner.bplaced.net/scripte/gaestebuch_loe.php\n\n";
    $text1 = $kopf1.$eintrag.$loeschlink;

    @mail($webmaster,$betreff,$text1,$headers);

    if ($email !=""){
      $kopf2 = "Du hast in meinem Gästebuch folgenden Eintrag vorgenommen:\n\n";
      $fuss2 = "\n\nVielen Dank für deinen Eintrag\nOliver Elsner\nelsner.bplaced.net";
      $text2 = $kopf2.$eintrag.$fuss2;
      @mail($email,$betreff,$text2,$headers);
    }

    // Eintraege an DB gaestebuch senden
    $query = "INSERT into gaestebuch (vname,nname,ort,email,beitrag)
    VALUES('$vname','$nname','$ort','$email','$beitrag')";
    $result = mysql_query($query, $conn) or mysql_die();

    // gegebenenfalls Scriptteil Newsletter

        echo '
        <p class="center"><strong>Erfolgreich eingef&#252;gt!</strong></p>
        ';

    // Felder leeren
    $nname = "" ; $vname = "" ; $ort = "" ; $email = "" ; $beitrag = "" ;
  }
}
// submit abgeschlossen, es folgt die eigentliche Seite ---------------

echo '
<form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" name="meldung">
<table width="100%" summary="Eingabeformular">
    <colgroup>
        <col width="150" />
        <col />
    </colgroup>
    <tr>
        <td>Nachname</td>
        <td>
            <input type="text" name="nname" size="40" maxlength="50" tabindex="1" value="'.$nname.'" />
            <span class="rot"><strong>'.$t_nname.'&#160;</strong></span>
        </td>
    </tr>
    <tr>
        <td>Vorname</td>
        <td><input type="text" name="vname" size="40" maxlength="50" tabindex="2" value="'.$vname.'" /></td>
    </tr>
    <tr>
        <td>Ort</td>
        <td>
            <input type="text" name="ort" size="40" maxlength="50" tabindex="3" value="'.$ort.'" />
            <span class="rot"><strong>'.$t_ort.'&#160;</strong></span>
        </td>
    </tr>
    <tr>
        <td>E-Mail</td>
        <td>
            <input type="text" name="email" size="40" maxlength="50" tabindex="4" value="'.$email.'" />
            <span class="rot"><strong>'.$t_email.'&#160;</strong></span>
        </td>
    </tr>
    <tr>
        <td>Beitrag</td>
        <td>
            <textarea rows="9" name="beitrag" cols="60" tabindex="5">'.$beitrag.'</textarea>
            <br /><span class="rot"><strong>'.$t_beitrag.'&#160;</strong></span>
        </td>
    </tr>
    <tr>
        <td>&#160;</td>
        <td>
            <input type="hidden" id="code" name="code" value="'.$code.'" />
            <input class="norm" type="submit" name="submit" value="abschicken" tabindex="6" />
        </td>
    </tr>
</table>
</form>
';
?>

<h4>G&#228;stebucheintragungen</h4>

<?php
// Verbindung mit DB fuer Eintragungen anzeigen
$query = "SELECT *, DATE_FORMAT(tstamp,'%d.%m.%y') AS tstamp_f FROM gaestebuch ORDER BY tstamp DESC";
$result = mysql_query($query,$conn);
$num = mysql_num_rows($result);

for ($i = 0; $i < $num; $i++){
  $row = mysql_fetch_array($result);
  echo '
<table width="100%">
<colgroup>
   <col width="60" />
    <col />     
    <col width="50" />     
    <col width="150" />     
</colgroup>
<tr>
   <td >Name:</td>
   <td>'.$row['vname'].' '.$row['nname'].'</td>
   <td>Ort:</td>
   <td>'.$row['ort'].'</td>
</tr>
<tr>
   <td>Mail:</td>
   <td>'.$row['email'].'</td>
   <td>Date:</td>
   <td>'.$row['tstamp_f'].'</td>
</tr>
</table>
<p class="bgweiss">'.nl2br($row['beitrag']).'</p>
<br><hr><br>
';
}
mysql_close($conn);
?>

    </td>
  </tr>
</table>
<!--
Quelle Script: http://www.zudila.ch/scripte/php_gaestebuch.php
Zudila Gästebuch v1.4, GPL
-->
</div>
</body>
</html>

Vielen Dank michi7x7 und jw-lighting. Genau das habe ich gesucht. Jetzt geht es. Ohne euch wäre ich da nie hingekommen. Danke.

Gruß Elsner