Gästebuch besser schützen vor Fremdeintrag

Frigg

Mitglied
Hallo Leute.
Wer kennt das problem. Es kommen immer wieder welche leute auf die Page und machen einen Eintrag ins Gästebuch was gerade nicht passend ist. So wie Porno URLs und so sachen. Die sind natürlich dann mit einer asd@asdsa.com Mail adresse eingetragen. Wie kann man so ein Gästebuch schützen.

PHP:
<p align="center"><font face="Arial, Helvetica, sans-serif" size="12" color="#0D4686">G&auml;stebuch</font></p>
<p><br>
</p>
<table width="100%" border="0" cellpadding="1" cellspacing="0">
  <tr>
    <td>
      <table width="100%" border="0" cellpadding="2" cellspacing="0" class="small" OnLoad="setupDescriptions()">
        <tr class="mainoben"> 
          <td class="small">Eintragen</td>
        </tr>
        <tr class="mainunten"> 
          <td><FORM NAME="Eintrag" METHOD="post" ACTION="php/gbook/post.php">
              <TABLE WIDTH="0" BORDER="0" CELLSPACING="1" CELLPADDING="1" ALIGN="CENTER">
                <TR> 
                  <TD WIDTH="115"><LABEL FOR="name">Name:</LABEL></TD>
                  <TD> <INPUT TYPE="text" ID="name" NAME="name" <? echo"VALUE=$res1a[nick]"; ?>> 
                  </TD>
                </TR>
                <TR> 
                  <TD><LABEL FOR="email">E-Mail:</LABEL></TD>
                  <TD> <INPUT TYPE="text" ID="email" NAME="email" <? echo"VALUE=$res1a[email]"; ?>> 
                  </TD>
                </TR>
                <TR> 
                  <TD><LABEL FOR="hp">Homepage:<BR>
                    (optional)</LABEL></TD>
                  <TD> <INPUT TYPE="text" ID="hp" NAME="hp" <? if($res1a[hp] == "") echo"Value=\"http://\""; else echo"VALUE=\"$res1a[hp]\""; ?>> 
                  </TD>
                </TR>
                <TR> 
                  <TD valign="top"><P> 
                      <LABEL FOR="nachricht">Nachricht:</LABEL>
                      <LABEL FOR="nachricht"></LABEL>
                    </P></TD>
                  <TD><TEXTAREA NAME="nachricht" ID="nachricht" ROWS="10" COLS="40" WRAP="VIRTUAL"></TEXTAREA> 
                  </TD>
                </TR>
              </TABLE>
              <DIV ALIGN="CENTER"> 
                <INPUT TYPE="submit" NAME="eintragen2" VALUE="Send/Senden">
              </DIV>
            </FORM></td>
        </tr>
      </table></td>
  </tr>
</table>
<br> 
<table width="100%" border="0" cellpadding="1" cellspacing="0">
  <tr> 
        <td>
      <table class="small" width="100%" border="0" cellpadding="2" cellspacing="0" OnLoad="setupDescriptions()">
        <tr class="mainunten"> 
              
          <td class="small" height="202"> 
            <center>
                  <?
$schritt = 20;

$max = mysql_query( "select count(*) from gbook");
$max = mysql_fetch_row($max);
$max = $max[0];
$k=$max/$schritt;
echo $max;
?>
                  Beiträge auf Seiten: 
                  <?
for($i=0; $i<=$k; $i++){
    $j = $i + 1;
?>
                  <a href=index.php?mode=gbook&m=<? echo $i; ?>><? echo $j; ?></a> 
                  <?
}
?>
                </center>
                <br> 
                <?
if(isset($m)) {
    $start  = $schritt*$m;
} else {
    $start = 0;
}
$ende = $schritt - 1;

$st = "LIMIT $start, $ende";
$res= mysql_query("select * from gbook order by zeit DESC $st");

while($resa = mysql_fetch_array($res)) {
    $datum = date("j.n.Y - H:i", $resa[zeit]);

    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>",  ":D", $resa[text]);
    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>", ":-D", $text);
    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>",  ":d", $text);
    $text = str_replace("<img src=../bilder/smilies/confused.gif>",  ":confused:", $text);
    $text = str_replace("<img src=../bilder/smilies/mad.gif>",  ":(", $text);
    $text = str_replace("<img src=../bilder/smilies/mad.gif>", ":-(", $text);
    $text = str_replace("<img src=../bilder/smilies/sad.gif>",  ":[", $text);
    $text = str_replace("<img src=../bilder/smilies/sad.gif>", ":-[", $text);
    $text = str_replace("<img src=../bilder/smilies/smile.gif>",  ":)", $text);
    $text = str_replace("<img src=../bilder/smilies/smile.gif>", ":-)", $text);
    $text = str_replace("<img src=../bilder/smilies/tounge.gif>",  ":p", $text);
    $text = str_replace("<img src=../bilder/smilies/tounge.gif>",  ":P", $text);
    $text = str_replace("<img src=../bilder/smilies/wink.gif>",  ";)", $text);
    $text = str_replace("<img src=../bilder/smilies/wink.gif>", ";-)", $text);
    $text = str_replace("<img src=../bilder/smilies/wow.gif>",  ":o", $text);
    $text = str_replace("<img src=../bilder/smilies/wow.gif>", ":-o", $text);
    $text = str_replace("<", "&lt;", $text);
    $text = str_replace(">", "&gt;", $text);
    $text = str_replace("\n", "<br>", $text);
    $text = str_replace(":D",  "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":-D", "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":d",  "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":confused:",  "<img src=../images/system/smilies/confused.gif>", $text);
    $text = str_replace(":(",  "<img src=../images/system/smilies/mad.gif>", $text);
    $text = str_replace(":-(", "<img src=../images/system/smilies/mad.gif>", $text);
    $text = str_replace(":[",  "<img src=../images/system/smilies/sad.gif>", $text);
    $text = str_replace(":-[", "<img src=../images/system/smilies/sad.gif>", $text);
    $text = str_replace(":)",  "<img src=../images/system/smilies/smile.gif>", $text);
    $text = str_replace(":-)", "<img src=../images/system/smilies/smile.gif>", $text);
    $text = str_replace(":p",  "<img src=../images/system/smilies/tounge.gif>", $text);
    $text = str_replace(":P",  "<img src=../images/system/smilies/tounge.gif>", $text);
    $text = str_replace(";)",  "<img src=../images/system/smilies/wink.gif>", $text);
    $text = str_replace(";-)", "<img src=../images/system/smilies/wink.gif>", $text);
    $text = str_replace(":o",  "<img src=../images/system/smilies/wow.gif>", $text);
    $resa[text] = str_replace(":-o", "<img src=../images/system/smilies/wow.gif>", $text);
?>
                <BR> <TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="2">
                  <TR> 
                    <TD WIDTH="70%"> <FONT SIZE="2"><A HREF="<? if($resa[email] <> "") echo"mailto:$resa[email]"; else echo"#";?>"><? echo $resa[author]; ?></A></FONT></TD>
                    <TD ALIGN="right" WIDTH="30%"> <FONT SIZE="1"><? echo $datum; ?></FONT></TD>
                  </TR>
                  <TR> 
                    <TD HEIGHT="55" COLSPAN="2"><? echo $resa[text]; ?></TD>
                  </TR>
                  <TR> 
                    <TD COLSPAN="2"> 
                      <?
if($resa[email]=="" && $resa[url]=="") {
    echo"&nbsp;";
} else {
    if($resa[email] <> "") {
    ?>
                      <A HREF="mailto:<? echo $resa[email]; ?>">Send Email</A> 
                      <?
        if($resa[url] <> "") {
        ?>
                      - 
                      <?
        }
    }
    if($resa[url] <> "") {
    ?>
                      <A HREF="<? echo $resa[url]; ?>">Homepage</A> 
                      <?
    }
}
if($admin == 1) {
?>
                      - <a href="php/gbook/delete.php?gbid=<? echo $resa[id]; ?>">Löschen</a> 
                      <?
}
?>
                    </TD>
                  </TR>
                </TABLE>
                <HR width="50" noshade> 
                <?
}
?>
              </td>
            </tr>
          </table></td>
      </tr>
    </table>
    <p>&nbsp;</p>

Bitte Helft mir, weill ich will nicht immer wieder ins MySQL Datenbank zugreifen und die Manuel löschen. Hat jemand eine idee

Danke fürs Helfen
 
Wovor willst du das Gästebuch schützen?
Vor pornographischen Links etc?
Du könntest es entweder nur eingeloggten Usern gestatten eine nacricht zu hinterlassen,
oder der User muss sich eine Mail schicken lassen, um den eintrag zu bestätigen
Da beides viel aufwand für den userbedeutet, könntest du eventuell einfach bestimmte wörter filtern, also eine "BadWordList" anlegen.
 
Was sind den Captchas Ist das wirksam

Das ist mal wieder sollch ein eintrag, von dem ich erzähle. Was haltet ihr davon?

Hello, nice site look this:
Aufzählung von Links und pornographischen Wörtern, die hier nicht wiedergegeben werden müssen
End ^) See you


Danke fürs Helfen.
 
Hi,

wenn, dann solltest Du schon das Script posten, das das Formular verarbeitet, nicht das Ausgabescript.
Wo ist das Gästebuch denn her, selbst geschrieben oder runtergeladen?

LG

PS.: Und noch zwei Beiträge aus dem Selfhtml-Forum zu dem Thema
 
Nun ich habe die Page übernommen. Ich habe mich zwar mit der einter person in kontakt getreten, aber der zeigt keinerlei Hilfsbereitschaft. Ich müsse daher das Script ändern. Meine kenntnise mit PHP sind dermassen schlecht, dass es einfach nicht funktioniert. Man sollte es einfach einbinden können. Siet aber schwerer aus als es geschrieben ist.

Kann mir einer da helfen das script in mein qbook ein zu binden?

Währe echt net wenn einer mir da helfen würde.

post.php:

PHP:
<?
session_start();
$ip = getenv("REMOTE_ADDR");
include("../system/mysqlstart.php");

$spammzeit = 10;
$zeit = time();

//Spammschutz
$sql1="select * from gbook where ip='$ip' order by 'zeit' DESC";
$resa = mysql_fetch_array(mysql_query($sql1));

$endspamm=$zeit - $spammzeit;
if($resa[zeit] > $endspamm) {
    Header("Location: "."../../index.php?mode=gbook");
    exit();
}

if($hp=="http://") {
    $hp="";
}

$sql="INSERT INTO gbook (id, text, author, email, url, zeit, ip) VALUES ('', '$nachricht', '$name', '$email', '$hp', '$zeit', '$ip')";
mysql_query($sql);

Header("Location: "."../../index.php?mode=gbook");
?>

gbook.php:
PHP:
<?php 
session_start(); 
function encrypt($string, $key) { 
$result = ''; 
for($i=0; $i<strlen($string); $i++) { 
   $char = substr($string, $i, 1); 
   $keychar = substr($key, ($i % strlen($key))-1, 1); 
   $char = chr(ord($char)+ord($keychar)); 
   $result.=$char; 
} 
return base64_encode($result); 
} 
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921"); 
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe); 
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){ 
unset($_SESSION['rechen_captcha_spam']); 
} 
?>
<p align="center"><font face="Arial, Helvetica, sans-serif" size="12" color="#0D4686">G&auml;stebuch</font></p>
<p><br>
<table width="100%" border="0" cellpadding="1" cellspacing="0">
  <tr>
    <td>
      <table width="100%" border="0" cellpadding="2" cellspacing="0" class="small" OnLoad="setupDescriptions()">
        <tr class="mainoben"> 
          <td class="small">Eintragen</td>
        </tr>
        <tr class="mainunten"> 
          <td>
            <div align="center"> </div>
            <FORM NAME="Eintrag" METHOD="post" ACTION="php/gbook/post.php">
              <div align="center"><br>
                
                <br>
              </div>
              <TABLE WIDTH="0" BORDER="0" CELLSPACING="1" CELLPADDING="1" ALIGN="CENTER">
                <TR> 
                  <TD WIDTH="115"><LABEL FOR="name"><img src="rechen-captcha.php"></LABEL></TD>
                  <TD>
                    <input type="text" name="sicherheitscode">
                  </TD>
                </TR>
                <TR> 
                  <TD WIDTH="115">Name:</TD>
                  <TD>
                    <input type="text" id="name" name="name" <? echo"VALUE=$res1a[nick]"; ?>>
                  </TD>
                </TR>
                <TR> 
                  <TD><LABEL FOR="email">E-Mail:</LABEL></TD>
                  <TD> 
                    <input type="text" id="email" name="email" <? echo"VALUE=$res1a[email]"; ?>>
                  </TD>
                </TR>
                <TR> 
                  <TD><LABEL FOR="hp">Homepage:<BR>
                    (optional)</LABEL></TD>
                  <TD> 
                    <INPUT TYPE="text" ID="hp" NAME="hp" <? if($res1a[hp] == "") echo"Value=\"http://\""; else echo"VALUE=\"$res1a[hp]\""; ?>>
                  </TD>
                </TR>
                <TR> 
                  <TD valign="top"> 
                    <P> <LABEL FOR="nachricht">Nachricht:</LABEL> <LABEL FOR="nachricht"></LABEL> 
                    </P>
                  </TD>
                  <TD> 
                    <TEXTAREA NAME="nachricht" ID="nachricht" ROWS="10" COLS="40" WRAP="VIRTUAL"></TEXTAREA>
                  </TD>
                </TR>
              </TABLE>
              <div align="center"> <br>
                <br>
              </div>
              <DIV ALIGN="CENTER">
                <INPUT TYPE="submit" NAME="eintragen2" VALUE="Send/Senden">
              </DIV>
            </FORM></td>
        </tr>
      </table></td>
  </tr>
</table>
<br> 
<table width="100%" border="0" cellpadding="1" cellspacing="0">
  <tr> 
        <td>
      <table class="small" width="100%" border="0" cellpadding="2" cellspacing="0" OnLoad="setupDescriptions()">
        <tr class="mainunten"> 
              
          <td class="small" height="202"> 
            <center>
                  <?
$schritt = 20;

$max = mysql_query( "select count(*) from gbook");
$max = mysql_fetch_row($max);
$max = $max[0];
$k=$max/$schritt;
echo $max;
?>
                  Beiträge auf Seiten: 
                  <?
for($i=0; $i<=$k; $i++){
    $j = $i + 1;
?>
                  <a href=index.php?mode=gbook&m=<? echo $i; ?>><? echo $j; ?></a> 
                  <?
}
?>
                </center>
                <br> 
                <?
if(isset($m)) {
    $start  = $schritt*$m;
} else {
    $start = 0;
}
$ende = $schritt - 1;

$st = "LIMIT $start, $ende";
$res= mysql_query("select * from gbook order by zeit DESC $st");

while($resa = mysql_fetch_array($res)) {
    $datum = date("j.n.Y - H:i", $resa[zeit]);

    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>",  ":D", $resa[text]);
    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>", ":-D", $text);
    $text = str_replace("<img src=../bilder/smilies/biggrin.gif>",  ":d", $text);
    $text = str_replace("<img src=../bilder/smilies/confused.gif>",  ":confused:", $text);
    $text = str_replace("<img src=../bilder/smilies/mad.gif>",  ":(", $text);
    $text = str_replace("<img src=../bilder/smilies/mad.gif>", ":-(", $text);
    $text = str_replace("<img src=../bilder/smilies/sad.gif>",  ":[", $text);
    $text = str_replace("<img src=../bilder/smilies/sad.gif>", ":-[", $text);
    $text = str_replace("<img src=../bilder/smilies/smile.gif>",  ":)", $text);
    $text = str_replace("<img src=../bilder/smilies/smile.gif>", ":-)", $text);
    $text = str_replace("<img src=../bilder/smilies/tounge.gif>",  ":p", $text);
    $text = str_replace("<img src=../bilder/smilies/tounge.gif>",  ":P", $text);
    $text = str_replace("<img src=../bilder/smilies/wink.gif>",  ";)", $text);
    $text = str_replace("<img src=../bilder/smilies/wink.gif>", ";-)", $text);
    $text = str_replace("<img src=../bilder/smilies/wow.gif>",  ":o", $text);
    $text = str_replace("<img src=../bilder/smilies/wow.gif>", ":-o", $text);
    $text = str_replace("<", "&lt;", $text);
    $text = str_replace(">", "&gt;", $text);
    $text = str_replace("\n", "<br>", $text);
    $text = str_replace(":D",  "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":-D", "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":d",  "<img src=../images/system/smilies/biggrin.gif>", $text);
    $text = str_replace(":confused:",  "<img src=../images/system/smilies/confused.gif>", $text);
    $text = str_replace(":(",  "<img src=../images/system/smilies/mad.gif>", $text);
    $text = str_replace(":-(", "<img src=../images/system/smilies/mad.gif>", $text);
    $text = str_replace(":[",  "<img src=../images/system/smilies/sad.gif>", $text);
    $text = str_replace(":-[", "<img src=../images/system/smilies/sad.gif>", $text);
    $text = str_replace(":)",  "<img src=../images/system/smilies/smile.gif>", $text);
    $text = str_replace(":-)", "<img src=../images/system/smilies/smile.gif>", $text);
    $text = str_replace(":p",  "<img src=../images/system/smilies/tounge.gif>", $text);
    $text = str_replace(":P",  "<img src=../images/system/smilies/tounge.gif>", $text);
    $text = str_replace(";)",  "<img src=../images/system/smilies/wink.gif>", $text);
    $text = str_replace(";-)", "<img src=../images/system/smilies/wink.gif>", $text);
    $text = str_replace(":o",  "<img src=../images/system/smilies/wow.gif>", $text);
    $resa[text] = str_replace(":-o", "<img src=../images/system/smilies/wow.gif>", $text);
?>
                <BR> <TABLE WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="2">
                  <TR> 
                    <TD WIDTH="70%"> <FONT SIZE="2"><A HREF="<? if($resa[email] <> "") echo"mailto:$resa[email]"; else echo"#";?>"><? echo $resa[author]; ?></A></FONT></TD>
                    <TD ALIGN="right" WIDTH="30%"> <FONT SIZE="1"><? echo $datum; ?></FONT></TD>
                  </TR>
                  <TR> 
                    <TD HEIGHT="55" COLSPAN="2"><? echo $resa[text]; ?></TD>
                  </TR>
                  <TR> 
                    <TD COLSPAN="2"> 
                      <?
if($resa[email]=="" && $resa[url]=="") {
    echo"&nbsp;";
} else {
    if($resa[email] <> "") {
    ?>
                      <A HREF="mailto:<? echo $resa[email]; ?>">Send Email</A> 
                      <?
        if($resa[url] <> "") {
        ?>
                      - 
                      <?
        }
    }
    if($resa[url] <> "") {
    ?>
                      <A HREF="<? echo $resa[url]; ?>">Homepage</A> 
                      <?
    }
}
if($admin == 1) {
?>
                      - <a href="php/gbook/delete.php?gbid=<? echo $resa[id]; ?>">Löschen</a> 
                      <?
}
?>
                    </TD>
                  </TR>
                </TABLE>
                <HR width="50" noshade> 
                <?
}
?>
              </td>
            </tr>
          </table></td>
      </tr>
    </table>
    <p>&nbsp;</p>

Danke für eure mühe. Mir ist es soo leid, dass ich immer wieder die Gbook eintrag löschen muss. Das nevt mich total.
THX im voraus.
 
Hi,

kannst Du Dir nicht einfach ein anderes (vernünftiges) Gästebuch besorgen. Wenn ich mir die post.php anschaue, sträuben sich mir die Haare...
Die beiden Threadstarter aus dem Selfhtml-Forum bieten z.B. welche an.

LG
 
Zurück