Webmaster Forum -> Hilfe für Webmaster -> Javascript
Antwort schreiben -
Benutzername
Titel
Nachrichtentext

Smilies
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Arrow Neutral
Weitere Smilies ansehen
 Schriftfarbe:  Schriftgröße: Tags schließen
Optionen
HTML ist aus
BBCode ist an
Smilies sind an
BBCode in diesem Beitrag deaktivieren
Smilies in diesem Beitrag deaktivieren
Sicherheitscode Sicherheitscode 
 
Alle Zeiten sind GMT + 1 Stunde
Gehe zu:  
Thema-Überblick
Autor Nachricht
1kluasi
BeitragVerfasst am: 01 Okt 2009 10:49    Titel: Gästebuch capcha einbauen

Hallo Forumgemeinde,
ich habe probleme. Ich würde gerne in das angehängte Gästebuch Formular/Script ein Capcha einbauen, da trotz der IP Sperre täglich Spam reinflattert.
z.B. gerne den Script von W. Zenk http://www.homepage-total.de/php/spam-schutz-captcha.phpIch bekomme das nicht so plaziert, das es auch funktioniert.
Kann mir jemand helfen?


Code:
<head>
   <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
      <script language="javascript" src="js/scripts.js" type="text/javascript"></script>
</head>
<body>

<div id="container">

      
         
<script type="text/javascript">
function eingaben_ueberpruefen() {
 if (document.eingabe.Name.value == "" ||document.eingabe.Name.value == "Name" || document.eingabe.Name.value.lenght < 4){
  document.getElementById("nachname_id").style.backgroundColor="#FFD48C";
  alert("Bitte geben Sie Ihren Namen ein!");
  return false;
 }
 else if (document.eingabe.Email.value.length < 10 || document.eingabe.Email.value.indexOf ('@',0) == -1 || document.eingabe.Email.value.indexOf ('.',0) == -1) {
  document.getElementById("email_id").style.backgroundColor="#FFD48C";
  alert("Bitte geben Sie eine gültige E-Mail-Adresse ein.");
  return false;
 }
 else if (document.eingabe.Kommentar.value == "" || document.eingabe.Kommentar.value == "Kommentar" || document.eingabe.Kommentar.value.lenght < 10) {
  document.getElementById("kommentar_id").style.backgroundColor="#FFD48C";         
  alert("Bitte geben Sie einen Kommentar ein!");
  return false;
 }
 else
 return true;
}
</script>

<h1>Gästebuch</h1>
<div class="gbausrichtung">
<?php
 // Gästebuch
 // Das Script stammt von W. Zenk
 // Homepage: www.homepage-total.de
 // eMail: webmaster@homepage-total.de

#### E-Mail-Adresse
$an = "info@klaus.com";

#### Homepage-Name ; für "Betreff" bei email
$homepagename = "www.klaus.de";

#### Einträge pro Seite
$Anzeige = 7;

#### liest IP, Host.... aus, für email
$data=array();
$data["ip"] = $_SERVER['REMOTE_ADDR'];
$data['host'] = gethostbyaddr($data['ip']);
$data['browser'] = $_SERVER['HTTP_USER_AGENT'];
$data['ref'] = $_SERVER['HTTP_REFERER'];

#### liest IP und Host aus, für "Danke" ausgabe
 $ip = $_SERVER['REMOTE_ADDR']; 
 $host1 = gethostbyaddr($ip);

#### Datumsumwandlung und Ausgabevorbereitnung
$tage = array(0=>"Sonntag",
           1=>"Montag",
           2=>"Dienstag",
              3=>"Mittwoch",
           4=>"Donnerstag",
           5=>"Freitag",
           6=>"Samstag");

$monate = array(1=>"Januar",
            2=>"Februar",
            3=>"März",
            4=>"April",
            5=>"Mai",
            6=>"Juni",
            7=>"Juli",
            8=>"August",
            9=>"September",
            10=>"Oktober",
            11=>"November",
            12=>"Dezember");

$monat = $monate[date("n")];
$name1 = $tage[date("w")];
$tag = date("d");
$jahr = date("Y");
$zeit=date("H:i");
////für: siehe "Eintrag zuammenstellen"
$datumausgabe=($name1.", ".$tag.". ".$monat." ".$jahr." - ".$zeit." Uhr");

##### oben stehen die Einstellungen, ab hier homepageauswirkungen ####
if ($_POST) {
 // Variablen-Inhalt holen
 $Name = $_POST[Name];
 $Email = $_POST[Email];
 $Kommentar = $_POST[Kommentar];
 $Homepage = $_POST[Homepage];
 
 // IP einlesen in gb_lastip.txt (Hier steht die letzte eingetragene IP)
 $lgb = fOpen("gb_lastip.txt","r");
 $gb_lip = fGets($lgb, 255);
 fClose($lgb);
 $ip = $_SERVER["REMOTE_ADDR"];
 
  if (!empty($Name) && !empty($Email) && !empty($Kommentar) && $gb_lip != $ip) {
   // Kommentar filtern
   $Kommentar = strip_tags(stripslashes(stripcslashes(trim($Kommentar))));
   $Kommentar = str_replace("\\r", "", $Kommentar);
   $Kommentar = str_replace("\\n", "", $Kommentar);
   $Kommentar = str_replace("|", "", $Kommentar);
   $Name = strip_tags($Name);
   $Name = str_replace("|", "", $Name);


   ////Homepageausgabe-Zeile nicht leer, wenn keine HP eingetragen (BILD) (wenn, dann, sonst)
   if ($Homepage != "") {
             $hp_ausgabe = "<img src=\"symbole/hp/home-14-04.gif\" border=\"0\"><span class=\"gbhomepage11\"><a href=\"http://$Homepage\" target=\"_blank\">$Homepage<br></a></span>";
           }
           else {
             $hp_ausgabe = "";
           }
           
   //// Eintrag zusammenstellen (Datum,(BILD Name mit email),IP(nicht sichtbar); Homepage; Kommentar)
   $Eintrag = "<span class=\"gbdatum\">» $datumausgabe<br></span>
   <img src=\"symbole/mail/11.gif\" border=\"0\"><span class=\"gbname11\"><a href=mailto:$Email class=mailto_link>$Name<br></a></span>
   <small title=IP:$ip>" . "</small>
   $hp_ausgabe
   <div class=\"gbkommentar11\">$Kommentar</div>|\n";
                     
   // Eintrag in GB schreiben   
   $Datei = fOpen("gaestebuch-daten.txt", "a+");
   fWrite($Datei,$Eintrag);
   fClose($Datei);

   // Diese Nachricht wird an Ihre E-Mail-Adresse gesendet
 $textemail = "Ihr Gaestebuch von der Homepage $homepagename wurde benutzt.
Folgende Daten wurden eingetragen:

 Name: ".utf8_decode($Name)."
 Email: $Email
 Homepage: $Homepage
     
 Kommentar:
 ".utf8_decode($Kommentar)."
 

 ----------------------------------------------------
 Absender-IP: ".$data["ip"]."
 Absender-Host: ".$data['host']."
 Browser: ".$data['browser']."
 Verweisende HTTP: ".$data['ref']."
 
 ";
   
     $header="From:".utf8_decode($Name)." <$Email>\n";

 #  mail(Empfängeremail, Betreff, Nachricht, "From: Absender <Absenderemail>");
  //## -------HE if (@mail($mail_to,"Nachricht vom Kontaktformular: $homepagename",$text,$header,"-f info@kla.de"))
 @mail($an, "Gaestebucheintrag: $homepagename", $textemail, $header,"-f info@kla.de");


   // nach email versand
   echo "<p>&nbsp;</p><br>
   <p><strong>Vielen Dank für Ihren Eintrag in unser Gästebuch.</strong><br><br>
   Zur Sicherheit wurden Ihre IP und Ihr Host ausgelesen.<br>
   IP Adresse: $ip<br>
   Hostname: .$host1<br></p>";

   // IP speichern
   $lgb = fOpen("gb_lastip.txt","w");
   fPuts($lgb,"$ip");
   fClose($lgb);
  }
 }
 else {
?>     

      <form action="gaestebuch/<?php echo $_SERVER['PHP_SELF'] ?>?seite=0" accept-charset="utf-8" method="post" name="eingabe" onsubmit="return eingaben_ueberpruefen(this.form)">
             <table class="gaestebuch">
               <tr>
                  <td class="breite">Name: <strong class="red">*</strong></td>
                  <td><input type="text" size="30" name="Name" id="nachname_id" title="Name" class="eingabe" onfocus="this.style.backgroundColor='#FFFFFF';"/></td>
               </tr>
               <tr>
                  <td class="breite">E-Mail: <strong class="red">*</strong></td>
                  <td><input type="text" size="30" name="Email" id="email_id" title="E-Mail" class="eingabe" onfocus="this.style.backgroundColor='#FFFFFF';"/></td>
               </tr>
               <tr>
                  <td class="breite">Homepage:<i><small> http://</small></i></td>
                  <td><input type="text" size="30" name="Homepage" id="Homepage" title="Homepage" class="eingabe" onfocus="this.style.backgroundColor='#FFFFFF';"/></td>
               </tr>
               <tr>
                  <td class="breite">Kommentar: <strong class="red">*</strong></td>
               </tr>
               <tr>
                  <td class="pflichtfeld" >Pflichtfeld *</td>
                  <td><textarea cols="40" rows="6" name="Kommentar" title="Kommentar" id="kommentar_id" class="textfeld" onFocus="this.style.backgroundColor='#FFFFFF';"></textarea>
                </td>
               </tr>
               <tr>
                  <td class="breite"></td>
                  <td><small>Um Missbrauch zu vermeiden, wird die
                  IP-Adresse gespeichert.</small></td>
               </tr>
               <tr>
                  <td class="breite">&nbsp;</td>
                  <td>&nbsp;</td>
               </tr>
               <tr>
                  <td class="breite"></td>
                  <td><input type="submit" value="Eintragen" class="button"/></td>
               </tr>
            </table>
      </form>
<?php
}

$a = 0;
$seite = ((isset($_GET["seite"])) ? $_GET["seite"] : 0);

// Einträge auslesen
$fp = fOpen("gaestebuch-daten.txt", "r");
$Inhalt = fRead($fp, filesize("gaestebuch-daten.txt"));
fClose($fp);

$Inhalt = explode("|", $Inhalt);

if (count($Inhalt) > 0) {
 $Inhalt = array_reverse($Inhalt);
 $eintraege = count($Inhalt); $eintraege--;

 echo "<hr><b>$eintraege</b> Einträge - Seite: ";

 // Seitenlinks erstellen (anzahl der anzeige auf einer Seite)
 for ($zaehler = 0; $zaehler < count($Inhalt); $zaehler = $zaehler + $Anzeige) {
  $a++;
  echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?seite=$zaehler\">" . (($zaehler == $seite) ? "<b>" . $a . "</b>" : $a) . "</a> \r";
 }

 echo "<hr>\r";
 
 // GB-Ausgabe
 for ($c = $seite; $c < ($seite + $Anzeige); $c++) {
  if (@$Inhalt[$c] != "" && $c > 0) {
   echo "<p>" . ($c) . " ";
   echo ($Inhalt[$c]);
  }
 }
}
?>
   <p>&nbsp;</p>
   <hr/>
   
      
</div>
<p>&nbsp;</p>
</div>


</body>


</html>