Thomas D: Gästebuch funzt nicht bei register_globals = Off

Hallo liebe Selfhtml Gemeinde

Ich hab mir vor längerer Zeit mal ein Gästebuch von www.conborn.de installiert. Doch nun hab ich in der php.ini register_globals=Off eingestellt.
Da ich nicht der php Experte bin, bitte ich um eure Unterstützung in dem Fall hier der Quellcode...

Ich hab schon versucht die Variablen zu ändern, doch leider ohne Erfolg.

guestbook_adv.php

<?php
$rootdir="../";

$section="gaestebuch";

include("../admin/zugang1.inc.php");

if($GuestbookNew){
  //Das Formular der Datei guestbook_new.php wurde ausgefüllt und abgeschickt

//HTML- und PHP-Tags aus den Eingabefeldern entfernen
  $name=strip_tags($name);
  $email=strip_tags($email);
  $homepage=strip_tags($homepage);
  $eintrag=strip_tags($eintrag);

//Konvertiere Zeilenumbrüche in HTML-<br>-Umbrüche
  $eintrag=nl2br($eintrag);

//Eingaben überprüfen
  if(strlen($name)<3){
  //Kein richtiger Name eingegeben
  $error_msg="Bitte geben Sie Ihren Namen an";
  }
  if(strlen($eintrag)<3){
  //Kein Eintrag vorgenommen
  $error_msg.="<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
  }
  if(ereg("[1]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,4})$",$email)){
  //Mailadresse korrekt angegeben - Name entsprechend formatieren
  $name="<a href=mailto:" . $email . ">" . $name . "</a>";
  }
  if(ereg("^([a-zA-Z0-9-]+.)+([a-zA-Z]{2,4})$",$homepage)){
  //Es wurde auch eine Homepageadresse angegeben - entsprechende Formatierung vornehmen
  if(!ereg("^http:////",$homepage)){
  //http:// fehlt in der Angabe der Adresse - hier ergänzen
    $homepage="http://" . $homepage;
    }
  $hp_format="<br>Homepage: <a href=" . $homepage . " target=new>" . $homepage . "</a>";
  }
  //Ende Eingaben überprüfen

if($error_msg){

//Fehlerhafte Angaben - Hinweis ausgeben und keinen Eintrag vornehmen
     $message ="<br>Ihr Eintrag konnte leider nicht in unser Gästebuch aufgenommen werden:<br>";
     $message.=$error_msg;
     $message.="<br>Klicken Sie auf <a href=javascript:history.back(1)>zurück</a>.<br><br>";

}else{

//Neuen Gästebucheintrag vornehmen
     $now=date("Y-m-d H:i:s");
     $guestbook_SQL_insert="INSERT INTO guestbook (guestbook_name,guestbook_homepage,guestbook_text,guestbook_datetime) VALUES ('$name','$hp_format','$eintrag','$now')";
     mysql_query($guestbook_SQL_insert);

//Mail verschicken
     $recipient="mail@domain.de";
     $subject="Neuer Eintrag im Gaestebuch";
     $header="From: webmaster@adsl.microfun.de\n";
     $mail_body="Neuer Eintrag im Gaestebuch";

mail($recipient,$subject,$mail_body,$header);

}
}

//Gästebucheinträge auslesen
if(!$pos) $pos=0;
$count=10;
$guestbook_SQL="SELECT * FROM guestbook ORDER BY guestbook_datetime DESC LIMIT $pos,$count";
$guestbook_result=mysql_query($guestbook_SQL);

//Anzahl der Datensätze ermitteln
$no_data=mysql_num_rows(mysql_query("SELECT guestbook_ID FROM guestbook"));

//Mit diesen Anweisungen werden die Links für das Blättern zwischen den Ergebnissen erzeugt
$new_pos_next=$pos+$count;
if($new_pos_next>=$no_data){
$link_next="weiter >>";
}else {
$link_next="<a href=guestbook_adv.php?pos=" . $new_pos_next . ">weiter >></a>";
}
$new_pos_prev=$pos-$count;
if($new_pos_prev<0){
$link_prev="<< zurück";
} else {
$link_prev="<a href=guestbook_adv.php?pos=" . $new_pos_prev . "><< zurück</a>";
}

//Ersten Teil des Standardlayouts nachladen
include("../background2.inc.php");
//Hier können dann die Inhalte platziert werden
?>
<link rel="stylesheet" href="layout/templates/css-blau.css" type="text/css">

<link rel="stylesheet" href="../layout/templates/css-blau.css" type="text/css">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td><img src="layout/bilder/spacer.gif" width="20" height="1" alt=""></td>
    <td colspan="2"><img src="layout/bilder/spacer.gif" width="530" height="1" alt=""></td>
    <td><img src="layout/bilder/spacer.gif" width="20" height="1" alt=""></td>
  </tr>
  <tr>

<td colspan="2">

</td>
  </tr>
    <tr>
    <td>&nbsp;</td>
    <td valign="top" colspan="2">
<table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="D3DCE3">
  <tr>
    <td width="100%">
      <p align="center"><font size="5"><b>Gaestebuch Eintraege</b></font></td>
  </tr>

</table>

<br>
        <?php echo $message ?>
        <br>
       <table width='400' border='1' cellspacing='1' cellpadding='1'>
      <table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="CCCCCC">

<?php
//Hier die Einträge aus der Datenbank auslesen und darstellen
while($guestbook_data=mysql_fetch_array($guestbook_result)){
//Datum und Uhrzeit formatieren
$ts=$guestbook_data['guestbook_datetime'];
$unixtime = mktime(substr($ts,11,12),substr($ts,14,15),substr($ts,17,18),substr($ts,5,6),substr($ts,8,9),substr($ts,0,4));
?>
           <tr valign='top' >
            <td class='kleiner' width='400'>Name: <?php echo $guestbook_data['guestbook_name'] . " " . $guestbook_data['guestbook_homepage'] ?></td>
            <td class='kleiner' width='100'><?php echo date("j.n.y H:i",$unixtime) ?></td>
           </tr>
        <tr valign='top'>
            <td colspan='2' class='kleiner'>
      <p><?php echo $guestbook_data['guestbook_text'] ?></p>
    </td>
  </tr>
  <tr>

<table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="CCCCCC">
      <hr width='400' size='1' noshade>

</td>
  </tr>
<?php
}
?>

</table>

<p class='kleiner'><?php echo $link_prev . " " . $link_next ?></p>
      </p>
    </td>

</tr>
</table>

---------------------------------------------------------------------
guestbook_new.php

<?php include("../background.inc.php")?>
  <tr>
    <td valign="top" colspan="2">
      <h2 align="center">
      <p>Hier k&ouml;nnen Sie sich in unser G&auml;stebuch eintragen.</p>

<form action=guestbook_adv.php method=post>
      <table width="400" border="0" cellspacing="1" cellpadding="1">
    <tr valign="middle" bgcolor="CCCCCC">
      <td class="stdtextconfig">Name :</td>
      <td>
        <input type="text" name="name" size="41" maxlength="78">
    </td>
  </tr>
    <tr valign="middle" bgcolor="DDDDDD">
      <td class="stdtextconfig">E-Mail :</td>
      <td>
        <input type="text" name="email" size="41" maxlength="78">
    </td>
  </tr>
     <tr valign="middle" bgcolor="CCCCCC">
      <td class="stdtextconfig">Homepage :</td>
      <td>
        <input type="text" name="homepage" size="41" maxlength="78">
    </td>
  </tr>

<tr valign="middle" bgcolor="DDDDDD">
      <td class="stdtextconfig">Eintrag :</td>
      <td>
            <textarea name="eintrag" rows="5" cols="35"></textarea>
          </td>
        </tr>
        <tr>
          <td colspan="2">
            <p align="center">
                <input type="submit" name="GuestbookNew" value="Abschicken">
            </p>
          </td>
        </tr>
      </table>
      </form>

<p><br>
      </p>
    </td>
    <td>&nbsp;</td>
  </tr>
</table>


  1. _a-zA-Z0-9- ↩︎

  1. Hallo Thomas,

    funzt nicht ist ja nicht wirklich aussagekräftig, aber du ja schreibts, dass du register_globals ausgeschaltet hast, kann mir dir vielleicht doch helfen....

    Also, ich denke, dass dein Problem hier liegt:

    guestbook_adv.php

    //HTML- und PHP-Tags aus den Eingabefeldern entfernen
      $name=strip_tags($name);
      $email=strip_tags($email);
      $homepage=strip_tags($homepage);
      $eintrag=strip_tags($eintrag);

    Da register_globals ausgeschaltet ist, kannst du nicht direkt auf $name etc. zugreifen. Du muss dir angucken, wie das Formular abgeschickt wird (GET/POST) und entsprechend darauf zugreifen ($_GET['name']/$_POST['name'])
    Am Besten ganz an den Anfang eine Zuweisung auf die momentan verwendeten Variablen machen, dann brauchst du sie nicht im gesamten Skript zu ändern. Also als erstes einfach:
    $name = $_GET['name']...

    MfG,
      Juan

    1. Hallo Juan

      ich hab jetzt folgendes abgeändert...

      in guestbook_new.php

      <form action=guestbook_adv.php method=get>

      in guestbook_adv.php

      $name=$_GET($name);^M
        $email=$_GET($email);^M
        $homepage=$_GET($homepage);^M
        $eintrag=$_GET($eintrag);^M
      ^M$message=$_GET($message);

      keinerlei Änderung......

      Gruss Thomas

      1. Hi,

        so schlecht waren die Änderungen ja nicht, aber vergleiche sie mal mit dem, was ich geschrieben habe...

        Das:

        $name=$_GET($name);^M

        müsste heissen:
        $name=$_GET('name');

        Probier das nochmal so....

        MfG,
          Juan

        1. hi,

          Das:

          $name=$_GET($name);^M
          müsste heissen:
          $name=$_GET('name');

          Das müsste wenn überhaupt so heißen:
          $name=$_GET['name'];

          Aber es ist natürlich nicht wirklich notwendig, die Variablen aus $_GET erst mal in "andere" Variablen zu "importieren" - es erhöht idR. die Übersichtlichkeit, wenn man gleich $_GET an den entsprechenden Stellen im Script verwendet.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Moin,

            Das:

            $name=$_GET($name);^M
            müsste heissen:
            $name=$_GET('name');

            Das müsste wenn überhaupt so heißen:
            $name=$_GET['name'];

            natürlich mit []. Hab mich da wohl vertippt...beim ersten Posting hatte ich es ja richtig....

            MfG,
              Juan

        2. Moin!

          Das:

          $name=$_GET($name);^M
          müsste heissen:
          $name=$_GET('name');

          Bestimmt nicht.

          Richtig wäre_
          $name=$_GET['name'];

          - Sven Rautenberg

          --
          My sssignature, my preciousssss!
          1. Hallo Sven

            ich hab nun alles durch probiert

            $name=$_POST['name'];^M
              $email=$_POST['email'];^M
              $homepage=$_POST['homepage'];^M
              $eintrag=$_POST['eintrag'];^M

            $name=$_GET['name'];^M
              $email=$_GET['email'];^M
              $homepage=$_GET['homepage'];^M
              $eintrag=$_GET['eintrag'];^M

            es funzt immer noch nicht, kann es sein das irgendwo noch eine Variable deklariert werden muss ?

            Gruss Thomas

            1. Moin!

              es funzt immer noch nicht

              Das ist keine Fehlerbeschreibung.

              Kriegst du Fehlermeldungen? Wenn nicht, wäre es extrem wichtig, dafür zu sorgen, dass. Setze diesen Code ganz an erste Stelle im PHP-Skript:

                
              error_reporting(E_ALL);  
              
              

              kann es sein das irgendwo noch eine Variable deklariert werden muss ?

              Es kann alles mögliche sein, ohne Fehlermeldung habe ich aber keine Lust, blind drauflos zu raten.

              - Sven Rautenberg

              --
              My sssignature, my preciousssss!
              1. Hey Sven...

                Oje, einige Fehlermeldungen

                Notice: Undefined variable: GuestbookNew guestbook_adv.php on line 18
                Notice: Undefined variable: pos in guestbook_adv.php on line 79

                und das hab ich geändert...

                $name=$_GET['name'];^M
                  $email=$_GET['email'];^M
                  $homepage=$_GET['homepage'];^M
                  $eintrag=$_GET['eintrag'];^M
                $pos=$_GET['pos'];

                Gruss Thomas

                1. Hey Sven...

                  hab nochmal was geändert

                  $name=stripslashes($_POST['name']);
                  $email=stripslashes($_POST['email']);
                  $homepage=stripslashes($_POST['homepage']);
                  $eintrag=stripslashes($_POST['eintrag']);
                  $pos=stripslashes($_POST['pos']);

                  weil im Original auch was mit stripslashes drin war..

                  leider die gleichen Fehlermeldungen..

                  Gruss Thomas

                  1. Sinnvoll wäre es, wenn du mal die betreffenden Zeilen posten würdest.
                    Wenn du eine Fehlermeldung bekommst, die im übrigen recht eindeutig ist, dann wird da auch eine Zeilennummer zu angezeigt.

                    Poste doch bitte die entsprechende Zeile und die Zeile davor, wenn du möchtest, daß man dir weiterhilft.

                    Gruß, rob

                    1. Hey..

                      Zeile 17 enthält if($GuestbookNew){
                      Zeile 78 enthält if(!$pos) $pos=0;

                      womit ich mal garnichts anfange.

                      Gruss Thomas

            2. Hallo nochmal,

              $name=$_POST['name'];^M
                $email=$_POST['email'];^M
                $homepage=$_POST['homepage'];^M
                $eintrag=$_POST['eintrag'];^M

              $name=$_GET['name'];^M
                $email=$_GET['email'];^M
                $homepage=$_GET['homepage'];^M
                $eintrag=$_GET['eintrag'];^M

              hast du dir mal die Werte von $_GET['name'] bzw. $_POST['name'] ausgeben lassen?
              Ich hab auch grad gesehen, dass ganz am Anfang
              if($GuestbookNew){
              ...}
              steht. Wo kommt $GuestbookNew her? Was sollte da drin stehen und was steht da wirklich drin? Ich denke damit ist Submit-Button gemeint.
              Müsste also auch $_GET['GuestbookNew'] bzw. $_POST['GuestbookNew'].
              So wird der Code innerhalb des Ifs überhaupt nicht ausgeführt, denke ich....

              MfG,
                Juan

              1. Hallo Juan

                So wird der Code innerhalb des Ifs überhaupt nicht ausgeführt, denke ich....

                Leider falsch gedacht, funzt trotzdem nicht...

                Gruss Thomas

      2. Hi!

        <form action=guestbook_adv.php method=get>

        <form action="guestbook_adv.php" method="get">

        Und das kann auch nicht funktionieren. Ist ja auch eine völlig falsche Syntax.

        $name=$_GET($name);^M

        $name = $_GET['name'];

        und dementsprechend weiter.
        Eigentlich brauchst du die Variablen nicht noch mal extra in einer neuen Variabeln speichern. Du könntest direkt mit $_GET['var'] weiterabeiten.

        BTW: Meinst du eigentlich nicht, daß du dies vielleicht selbst rausgefunden hättest, wenn du mal nach register_globals nachgeschlagen hättest..?

        Gruß, rob

        1. Hallo rob!

          $name=$_GET($name);^M
          $name = $_GET['name'];

          Das Formular überträgt aber mittels post.
          $name = $_POST['name'];

          Schönen Gruß

          Afra

          1. Hallo rob!

            Hi!

            Das Formular überträgt aber mittels post.

            glaub ich nicht:

            <form action=guestbook_adv.php method=get>

            Gruß, rob

            1. Hallo!

              Das Formular überträgt aber mittels post.

              glaub ich nicht:

              <form action=guestbook_adv.php method=get>

              Doch, weiter unten:

              <form action=guestbook_adv.php method=post>

              Schöne Qualität ;o)

              Schönen Gruß

              Afra

              1. Hallo afra, Hallo rob,

                Das Formular überträgt aber mittels post.

                glaub ich nicht:

                <form action=guestbook_adv.php method=get>

                Doch, weiter unten:

                <form action=guestbook_adv.php method=post>

                Das »get« hat sich erst nach Thomas' Änderung] eingeschlichen.

                Unabhängig davon ist $_REQUEST in ähnlichen Fällen aber manchmal ganz nützlich.

                Schöne Grüße,

                Johannes

                --
                ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
  2. Hello,

    das ist eine eklige Arbeit, von register_globals = on auf register_globals = off umzustellen.
    Wenn dann gleichzeitig auch noch die alten Sessionfunktionen beseitigt wreden müssen, ist es fast unmöglich, weil die ganze Logik dann "andersherum" aufgebaut ist.

    1. Schritt:
       Alle Fehlermedlungen ausgeben lassen

    error_reporting(E_ALL);

    am Anfang des Scriptes sollte meistens genügen.

    2. Schritt:
       Große Zettel nehmen, und alle Parameternamen aus den Formularen
       und den URi's pro adressiertes Script separat aufschreiben.
       Also, wenn in der Fomular-Action ein Scriptname steht: neuer Zettel
          und als Methode Post steht, die Namen in der Spalte Post eintragen
          und als Methode Get steht, die Namen in der Spalte Get eintragen
       wenn die Formular-Action selber Parameter hat
          und als Methode Post steht, die Parameter in der Spalte Get eintragen

    Wenn ein Link mit Parametern auftaucht, Zettel mit dem Ressource-Namen anlegen
       (wenn es noch keinen gibt)
          und die Parameternamen in die Spalte Get schreiben

    Das Spielchen muss leider für jeden möglichen View (Dokument-Zusammenstellung), einzeln
    gemacht werden.

    if($GuestbookNew)

    {
       # ...
      }

    Das sollte bei error_reporting(E_ALL) den ersten Fehler geben.

    Aud das Vorhandensein eines Paramters sollte man immer mit der Funktion isset() prüfen
    http://de.php.net/manual/en/function.isset.php

    3. Schritt
       für jedes adressierte Script alle Variablennamen aufschreiben
       alle, die auf den anderen beiden Zetteln stehen jeweils durch $_GET[...]
       und $_POST[...] austauschen. Dabei muss man später noch beachten, was damit im
       Weiteren passiert. ggf. muss man sie noch prüfen, demaskieren, neu maskieren.

    Alles, was dann übrig bleibt, sollten interne Variablen des Scriptes oder der include-Dateien sein.

    Viel Spaß weiterhin ;-)

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hey Tom

      Ist ja nett beschrieben, aber ich bin leider kein Profi, hab mir wie am anfang beschrieben, das mal aus dem NEtz installiert.

      Ein wenig mehr Hilfestellung wäre echt nett.

      Gruss Thomas

      1. Hello,

        Ist ja nett beschrieben, aber ich bin leider kein Profi, hab mir wie am anfang beschrieben, das mal aus dem NEtz installiert.

        Ein wenig mehr Hilfestellung wäre echt nett.

        Welche Schritte verstehst Du denn nicht?
        Mach doch erstmal, was ich geschrieben habe, oder frag, was Du davon nicht verstehst.

        Zum Thema "Sicherheit" kommen wir erst, wenn es wieder läuft. Das sollten wir aber nicht vergessen!

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hey Tom

          Ich melde mich später muss auf Mittagschicht...

          Gruss Thomas

          1. Hallo.

            Ich melde mich später muss auf Mittagschicht...

            "... sprach es und ward fortan nie wieder gesehen."
            MfG, at

            1. Hallo at

              Hatte doch schon weitere Sachen gepostet.

              Gruss Thomas

      2. Moin!

        Ist ja nett beschrieben, aber ich bin leider kein Profi, hab mir wie am anfang beschrieben, das mal aus dem NEtz installiert.

        Ein wenig mehr Hilfestellung wäre echt nett.

        Die Sache kann ganz einfach sein: Schmeiß dein blödes kaputtes Gästebuch-Skript auf den Müll und suche dir ein neues Skript. Das Web dürfte voll davon sein, Gästebücher sind typische Anfänger-Programmieraufgaben bzw. gehören zu der Kategorie von Skript, die eigentlich schon jeder Programmierer einmal geschrieben hat.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
  3. echo $begrüßung;

    Da ich nicht der php Experte bin, bitte ich um eure Unterstützung in dem Fall hier der Quellcode...

    Mit anderen Worten: "Repariert mir mal das Script, das ich von irgendwo hergeholt habe." Das funktioniert hier nicht.
    In diesem Forum kannst du Hilfe zur Selbsthilfe erwarten. Die kannst du bekommen bis zum Umfallen. Oft jedoch fallen in solchen Fällen die Anfragenden eher um, als dass auch nur ein Bruchteil solch eines Scriptes korrigiert ist. Das liegt zum einen daran, dass den Anfragenden massiv Grundkenntnisse in PHP und/oder Programmieren allgemein fehlen und zum anderen, dass die fehlerhaft laufenden Scripte meist mehr Schwachstellen enthalten als der Anfragende vermutet. Ersteres scheint hier gegeben zu sein, das zweite ist es auf alle Fälle.

    Meine Vorschläge:

    • Wende dich an den Autor des Scriptes mit der Bitte um Aktualisierung und Fehlerbereinigung. Er möge sich außerdem das Kapitel Database Security zu Gemüte führen und mal spaßeshalber auf einem System, auf dem Magic Quotes ausgeschaltet sind, einen Apostroph ' in sein Gästebuch einzutragen versuchen. Außerdem werden Fehler ignoriert, die beim Zugreifen auf die MySQL-Datenbank auftreten können.
    • Suche dir ein funktionierendes Script.
    • Lerne die Grundlagen von PHP mit Hilfe eines Tutorials. Wenn du Dinge nicht verstehst, wird sie dir hier gern jemand beantworten. Schreibe danach selbst ein Gästebuch. So schwer ist das Thema nicht, wenn man die Grundlagen kann.

    echo "$verabschiedung $name";

    1. Hey...

      Ich hab den Autor schon angeschrieben, doch leider bis heute keine Reaktion.

      Gruss Thomas

  4. Hallo Thomas,

    Ich hab mir vor längerer Zeit mal ein Gästebuch von www.conborn.de installiert. Doch nun hab ich in der php.ini register_globals=Off eingestellt.
    Da ich nicht der php Experte bin, bitte ich um eure Unterstützung in dem Fall hier der Quellcode...

    Ich hab schon versucht die Variablen zu ändern, doch leider ohne Erfolg.

    [...]

    Mein Tipp: Vergiss das Gästebuch. Das Bestehen auf register_globals=on ist nicht der einzige Fehler und die einzige Sicherheitslücke die dieses Script aufweist. Du handelst dir damit mehr Ärger als Nutzen ein. Ihc würde dir vorschlagen, dich nach einem anderen Script umzusehen.

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)
    1. Hallo.

      Mein Tipp: Vergiss das Gästebuch. Das Bestehen auf register_globals=on ist nicht der einzige Fehler und die einzige Sicherheitslücke die dieses Script aufweist. Du handelst dir damit mehr Ärger als Nutzen ein. Ihc würde dir vorschlagen, dich nach einem anderen Script umzusehen.

      Wenn man nicht weiß, woarauf man zu achten hat, nutzt dieser Tipp allerdings auch nicht sonderlich.
      MfG, at

      1. Hallo at,

        Ihc würde dir vorschlagen, dich nach einem anderen Script umzusehen.

        Wenn man nicht weiß, woarauf man zu achten hat, nutzt dieser Tipp allerdings auch nicht sonderlich.

        Deshalb sollte er sich an die Tipps von Leuten halten, die sowas wissen. Da ich jedoch keinen Überblick über die derzeit im Internet kursierenden guten Gästebuchscripte kenne, konnte ich ihm leider auch zu keinem besonderen raten.

        Schöne Grüße,

        Johannes

        --
        ie:% fl:( br:< va:| ls:[ fo:) rl:) n4:? ss:| de:] js:| ch:} sh:) mo:| zu:)