extrachemo
New member
Hallo,
ich habe ein Kontaktformular "kontakt.php" es wird mit dem PHP Formmailer versendet. Es hat folgendem Code:
In der 6 Zeile von unten ist eine "captcha.php" zum Einblenden vom Sicherheitscode eingefügt.
Die "captcha.php" hat folgenden Code:
Meine Frage ist:
Wie kann ich die Abfrage des CAPTCHA in meine "kontakt.php" einbauen damit die "kontakt.php" erst versendet wird wenn das CAPTCHA richtig eingegeben wurde?
Für eure Hilfe vorab schon mal vielen Dank!
ich habe ein Kontaktformular "kontakt.php" es wird mit dem PHP Formmailer versendet. Es hat folgendem Code:
PHP:
<?php
### Konfiguration ###
# Empfänger des Formulars
$strEmpfaenger = 'info@ihre-domaine.de';
# Absender des Formulars
$strFrom = '"Formular"' .$_POST["email"];
# Betreff des Formulars
$strSubject = 'Anfrage Formular';
# Betätigungsseite wenn Formular versendt wurde
$strReturnhtml = 'kontakt_bestaetigung.html';
# Trennzeichen zwischen dem Feldnamen und dem angegebenen Wert
$strDelimiter = ":\t";
### Ende Konfiguration ###
if($_POST)
{
if($_POST['vorname'] && $_POST['nachname'] && $_POST['email'] && $_POST['text'])
{
$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('Bitte den Zurueck Butten Ihres Browsers betaetigen und alle Pflichtfelder ausfuellen.');
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "Content-Type: text/plain; charset=UTF-8\nFrom: ".$strFrom, "-f info@ihre-domaine.de")
or die("Die Mail konnte nicht versendet werden. Bitte den Zurueck Butten Ihres Browsers betaetigen.");
header("Location: $strReturnhtml");
exit;
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kontakt</title>
</head>
<body onload="document.anfrage.vorname.focus();">
<div class="inhalt">
<h3><span>Ihre Kontaktdaten</span></h3>
<p>Die mit * markierten Felder sind Pflichtfelder</p>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" name="anfrage" onsubmit="return chkFormular()">
<p>Anrede:
<label>
<input type="radio" name="anrede" value="Frau " id="anrede_0" checked>
Frau</label>
<label>
<input type="radio" name="anrede" value="Herr " id="anrede_1">
Herr</label>
</p>
<p>* Vorname:<br>
<input name="vorname" type="text" size="50" maxlength="50"></p>
<p>* Nachname:<br>
<input name="nachname" type="text" size="50" maxlength="50"></p>
<p>Firma / Oganisation:<br>
<input name="firma" type="text" size="50" maxlength="50"></p>
<p>Straße und Nr.:<br>
<input name="strasse" type="text" size="50" maxlength="50"></p>
<p>Plz.:<br>
<input name="plz" type="text" size="5" maxlength="5"></p>
<p>Ort:<br>
<input name="ort" type="text" size="50" maxlength="50"></p>
<p>* E-Mail Adresse:<br>
<input name="email" type="text" size="50" maxlength="50"></p>
<p>Telefon:<br>
<input name="telefon" type="text" size="50" maxlength="50"></p>
<h3><span>Ihre Anfrage</span></h3>
<p>Ich / wir haben Interesse an:<br>
<label>
<input name="interesse[]" type="checkbox" id="interesse_0" value="musikshow" checked>
Musikshow</label>
<br>
<label>
<input type="checkbox" name="interesse[]" value="beschallung" id="interesse_1">
mit Beschallung</label>
<br>
<label>
<input type="checkbox" name="interesse[]" value="buehnenbeleuchtung" id="interesse_2">
mit Bühnenbeleuchtung</label>
</p>
<p>Meine / unsere Veranstaltung findet statt am:<br>
<input name="datum" type="text" size="10" maxlength="10"></p>
<p>Meine / unsere Veranstaltung findet statt in:<br>
<input name="in" type="text" size="40" maxlength="40"></p>
<p>Ich /wir wünschen Antwort:<br>
<label>
<input type="checkbox" name="antwort_per[]" value="mail" id="antwort_per_0" checked>
per e-Mail</label>
<br>
<label>
<input name="antwort_per[]" type="checkbox" id="antwort_per_1" value="rueckruf">
per Rückruf</label>
<br>
</p>
<p>* Ihr Anfrage Text:<br>
<textarea name="text" cols="50" rows="10"></textarea>
</p>
<p>Bitte Sicherheitscode eingeben<br>
<img src="captcha.php" alt="Sicherheitscode" title="Sicherheitscode" width="80" height="25" /> <input name="sicherheitscode" id="sicherheitscode" type="text" size="6" maxlength="6"></p>
<p><input name="senden" id="senden" type="submit" value="Anfrage absenden"> <input name="reset" type="reset" value="Anfrage löschen"></p>
</form>
</div>
</html>
In der 6 Zeile von unten ist eine "captcha.php" zum Einblenden vom Sicherheitscode eingefügt.
Die "captcha.php" hat folgenden Code:
PHP:
<?php
// Session starten
session_start();
// Alten CAPTCHA-Code aus der Session loeschen
unset( $_SESSION['captcha_code'] );
// Das Cachen der Grafik verhindern
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header( "Pragma: no-cache" );
// Dem Browser mitteilen das es sich hierbei um ein JPG handelt.
header( 'Content-type: image/jpeg' );
// Sicherheitscode generieren
$AlphaNumerischerString = "ABCDEFGH2345689";
$ZufallString1 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
$ZufallString2 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
$ZufallString3 = substr( str_shuffle( $AlphaNumerischerString ), 0, 2 );
$ZufallStringKomplett = $ZufallString1.$ZufallString2.$ZufallString3;
// Sicherheitscode in der Session speichern
$_SESSION['captcha_code'] = md5( $ZufallStringKomplett );
// Grafik erzeugen und an den Browser senden
$Schriftarten = array( "zachary.ttf", "mtcorsva.ttf", "gilligan.ttf");
$Bilddatei = imagecreatefrompng( "hintergrund.png" );
$TextFarbe1 = imagecolorallocate( $Bilddatei, 0, 125, 0 );
$TextFarbe2 = imagecolorallocate( $Bilddatei, 130, 70, 90 );
$TextFarbe3 = imagecolorallocate( $Bilddatei, 180, 90, 190 );
imagettftext( $Bilddatei, 12, 15, 3, 24, $TextFarbe1, $Schriftarten[0], $ZufallString1 );
imagettftext( $Bilddatei, 16, 0, 26, 15, $TextFarbe2, $Schriftarten[1], $ZufallString2 );
imagettftext( $Bilddatei, 14, -20, 53, 18, $TextFarbe3, $Schriftarten[2], $ZufallString3 );
imagejpeg( $Bilddatei );
// Grafik zerstoeren und Speicher freigeben
imagedestroy( $Bilddatei );
?>
Meine Frage ist:
Wie kann ich die Abfrage des CAPTCHA in meine "kontakt.php" einbauen damit die "kontakt.php" erst versendet wird wenn das CAPTCHA richtig eingegeben wurde?
Für eure Hilfe vorab schon mal vielen Dank!