Captcha Code in PHP Formular unterbringen

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Captcha Code in PHP Formular unterbringen

Beitragvon mth » 07.02.2011, 11:01

Hallo, Ich hätte eine Frage. Ich erstelle derzeit ein Kontaktformular für eine Website. Da ich, zugegebenermaße nicht der PHP Profi bin, habe ich ein fertiges http://aktuell.de.selfhtml.org/artikel/ ... /index.htm verwendet.

Ich habe dann noch eine Abfrage eingebaut ob alle Felder ausgefüllt sind. Als das ganze dann online war, bekam ich auch schon die ersten Spammails. Um dem entgegenzuwirken habe ich mich mal nach einem "Captchacode" umgeschaut, mit dem ich das Ganze ergänzen kann.

Gefunden habe ich schließlich das hier:
http://www.stoppt-den-spam.info/webmast ... rwort.html

Das einbinden der Zeilen soll wohl total einfach sein. Ich habe alle eingebunden und wenn ich dann die Seite aufrufe, wird sofort ein error zurückgegeben, das der code falsch eingegeben wurde. Dies lässt mich darauf schließen das ich alles falsch eingebunden habe

Vllt kann mir jemand helfen::
____________________________________

Ich muss also folgendes in meine formulardatei einfügen

Code: Alles auswählen
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

//
//
//Hier kommt das ursprüngliche Script hin.
//
//

}
?>


sowie das hier wenn ich einen fehler zurückgeben will.

Code: Alles auswählen
}else{
   die ("Der Sicherheitscode ist falsch!");
}


Meine gesamten PHP Zeilen sehen jetzt wie folgt aus. Stimmt das so ?


Code: Alles auswählen
<?php

session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

### Konfiguration ###

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'mail@mail.de';

# Welche Adresse soll als Absender angegeben werden?
$strFrom       = '"Anfrage" <mail@mail.de>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Anfrage';

# Zu welcher Seite soll weitergeleitet werden?
$strReturnhtml = 'http://www.test.com';

# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ":\t";

### Ende Konfiguration ###
//time();
if($_POST)
{
$strMailtext = "";
$strMailtext .= "Danke für ihre Anfrage" . "\n";

    if($_POST['Name'] && $_POST['E-Mail'] && $_POST['Bemerkungen'])
{
  $strMailtext = "";

while(list($strName,$value) = each($_POST))
{
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
}
     }
else die('Es wurden nicht alle Formularfelder ausgefuellt');

$strMailtext.="Deine Registrynummer lautet: " . time();
$strMailtext.="\n";

$empfaenger=array("test"=>$strEmpfaenger,

               );
               
if(get_magic_quotes_gpc())
{
  $strMailtext = stripslashes($strMailtext);
}

foreach($empfaenger as $key =>$value){
    mail($value, $strSubject, $strMailtext, "From: ".$strFrom) or die("Mail erfolgreich versendet");
}
}else{
   die ("Der Sicherheitscode ist falsch!");
}

header("Location: $strReturnhtml");
exit;
}
}
?>


html mäßig muss nur folgendes eingefügt werden:

Code: Alles auswählen
<img src="captcha/captcha.php" border="0" title="Sicherheitscode">
<input type="text" name="sicherheitscode" size="5">


mein html formular sie so aus

Code: Alles auswählen
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
           
         <!-- Formularangaben -->
              <br />
            *Pflichtfelder
            <br />
            <br />
            <dl>
                <dt></dt>
                Name*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input name="Name" type="text" size="40" /></dd>
            <br>
                <br>
                <dt></dt>
              E-Mail*:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <input name="E-Mail" type="text" size="40" /></dd>
                <br>
                <br>
                <dt></dt>
              Straße:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;             <input name="Straße" type="text" size="40" /></dd>
                <br>
                <br>
                <dt></dt>
                PLZ, Ort:&nbsp;&nbsp;&nbsp;&nbsp;
                <input name="PLZ, Ort" type="text" size="40" /></dd>
             <br>
             <br>
            
              <dt>Anfrage*:</dt>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <textarea name="Bemerkungen" rows="5" cols="40">Anfrage</textarea>
                </dd>
            </dl>
            <!-- Absenden & Zurücksetzen -->
            <p>
            <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Senden" />
            <input type="reset" value="Zurücksetzen" />
            </p>

<img src="captcha/captcha.php" border="0" title="Sicherheitscode">
<input type="text" name="sicherheitscode" size="5">
        </form>



Ansonsten habe ich alle nötigen Daten in das Rootverzechnis geladen und es wird alles richtig angezeigt. Vllt. kann mir jemand sagen wie ich die zeilen richtig einbinde.

Bite lasst euch nicht von denn vielen Zeilen abschrecken, aber ich wollte es direkt ausführlich machen, damit nicht soviele Fragen kommen.

Ich hoffe ihr könnt mir weiterhelfen
mth
 
Beiträge: 1
Registriert: 07.02.2011, 10:59

Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron