Problem mit Kontaktformular mit Captcha

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
moin2010
Mitglied
Beiträge: 137
Registriert: 25.07.2010 18:14
Kontaktdaten:

Problem mit Kontaktformular mit Captcha

Beitrag von moin2010 »

Hallo Leute

Ich habe ein Problem mit einem Kotaktformular mit Captcha.

Das Problem ist, wenn ich als Gast dort etwas schreiben möchte, und denn captcha code richtig angebe, kommt die Fehlermeldung,
das der Falsche Captcha Code angegeben wurde.

Und mein 2. Problem ist, das die nachrichten im Spam ordner angezeigt werden.

Das ist der code:

Code: Alles auswählen

<?php 

session_start(); 
    
// ============== Form config ============== 
// Daten für die Ausgabe der Fehlermeldung, 
// Überschrift, Legend, Beschreibung, Feldnamen, "Submit"-Button 

$page_info = ""; 
$hack_message = "REX_VALUE[5]"; 

//Formular 
$form_header = ""; 
$form_legend = ""; 
$form_info = ""; 

$form_name = "REX_VALUE[1]"; 
$form_firma = ""; 
$form_email = "REX_VALUE[2]"; 
$form_message = "REX_VALUE[3]"; 
$submit_value = "REX_VALUE[4]"; 
$submit_titel = "Zum Absenden bitte nur 1x klicken"; 

// Danke-Seite 
$thanks_message = "REX_VALUE[6]"; 

// Empfänger E-Mail 
$empfaenger="REX_VALUE[7]"; 
    $empfaengerBC="REX_VALUE[8]"; 
$email_titel="REX_VALUE[9]"; 
    
// ============== Ende Form config ============== 

// Daten aus Form config konvertieren 
if ( !function_exists('clean_text')) { 
  function clean_text($value = "") 
  { 
    $value = htmlentities($value); 
    return $value; 
  } 
}

$page_info = clean_text($page_info); 
//$hack_message = clean_text($hack_message); 
$form_legend = clean_text($form_legend); 
//$form_name = clean_text($form_name); 
//$form_email = clean_text($form_email); 
$form_firma = clean_text($form_firma); 
$form_message = clean_text($form_message); 
$submit_value = clean_text($submit_value); 
//$submit_titel = clean_text($submit_titel); 
//$thanks_message = clean_text($thanks_message); 
    
// ============== Formularüberprüfung ============== 

if (!function_exists ('cleanup')) { 
  function cleanup($string) { 
    // falls magic quotes on 
    if (get_magic_quotes_gpc()) 
    { 
      $string = stripslashes($string); 
    } 
    $string = addslashes($string); 
    $string = strip_tags($string); 
    // "--","#";";","`","/"   Ausfiltern von SQL-Statements 
    $string = str_replace(array("--","- -","#",";","`","/","<",">","{","}","[","]"),array("","","","","","","","","","","",""),$string); 
    // - mit Leerzeichen dazwischen (SQL-Kommentare!) 
    $string = preg_replace('#-\s+-#i',"",$string); 
    return $string; 
  } // end function cleanup 
} // if (!function_exists ('cleanup'))

if (!function_exists ('checkName')) { 
  function checkName($string) { 
    // $name am Anfang Buchstabe; keine Zahlen und Nicht-Wortzeichen; dann 
    // beliebig viele Buchstaben, Bindestriche, Leerzeichen und Punkte 
    if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\ä\Ä\ö\Ö\ü\Ü\s\.\?\?\?\?\?\?\?])*$/", stripslashes($string)))
    { 
      return true; // OK 
    } else { 
      return false; // falsche Eingabe 
    }    
  } // end function checkName 
} // if (!function_exists ('checkName'))


if (!function_exists ('checkNumeric')) {
  function checkNumeric($string) { 
    // nur Zahlenr 
    if (preg_match("/^\d*$/", stripslashes($string))) 
    { 
      return true; // OK 
    } else { 
      return false; // falsche Eingabe 
    }    
  } // end function checkNumeric 
} // if (!function_exists ('checkNumeric'))

if (!function_exists ('checkEmail')) {
  function checkEmail($string) { 
  // $email mindestens a@a.aa 
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", stripslashes($string))) 
    { 
      return true; // OK 
    } else { 
      return false; // falsche Eingabe 
    }    
  } // end function checkEmail 
} // if (!function_exists ('checkEmail'))

  
if (!function_exists ('checkMessage')) {
  function checkMessage($string) { 
  // $email mindestens a@a.aa 
      if (preg_match("/^[^\d_]([^\W]|[\-\'\ä\Ä\ö\Ö\ü\Ü\s\"\.\!\?\;\,\:\?\%\(\)\+\=\@\*\?\?\?\?\?\?\?])*$/", stripslashes($string)))
      { 
        return true; // OK 
    } 
    else 
    { 
        return false; // falsche Eingabe 
    }    
  } // end function checkMessage 
} // if (!function_exists ('checkMessage'))


$hack = false;  // Bool'sche Variable zeigt an, ob 
                // ein Hackingversuch vorliegt 
                    
// Auslesen und Säubern der Daten aus $_POST 
if (sizeof($_POST) == 0) 
{ 
  $name = ""; 
  $firma = ""; 
  $email = ""; 
  $message = ""; 
  $submit = ""; 
} else { 
  $name = $_POST["name"];       
  $email = $_POST["email"]; 
  $firma = $_POST["firma"]; 
  $message = $_POST["message"]; 
  $submit = $_POST["submit"]; 
$sicherheit = $_POST["sicherheitscode"];
  
  $name = cleanup($name); 
  $email = cleanup($email); 
  $firma = cleanup($firma); 
  $message = cleanup($message); 
  $submit = cleanup($submit); 

  // Verifizieren der Daten 

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

$hack = true; $feld = 'Sicherheitscode';
}

  if (checkName($name)!=1) 
  { 
    $hack = true; $feld = $form_name; 
  } 

  if (checkEmail($email)!=1) 
  { 
    $hack = true; $feld = $form_email; 
  } 

  if (checkMessage($message)!=1) 
  { 
    $hack = true; $feld = $form_message; 
  } 
} // end else 

// ============== Ende FormularÜberprüfung ============== 

?> 

<?php 
// beim ersten Aufruf oder unkorrekten Eingaben Formular ausgeben 
if (($submit == "") OR (($submit == $submit_value) AND ($hack == true))) 
{ 
    
   // Bei inkorrekten Eingaben eine Fehlermeldung ausgeben: 
   if ($hack) 
   {
?> 
<p><?php echo $hack_message; ?></p> 
<ul> 
<li><?php echo $feld; ?></li> 
</ul> 
<?php 
   } // end if ($hack) 
   else 
   { 
    if ($page_info != "") 
    { 
      echo "<p>" . $page_info . "</p>\n"; 
    } 

   } // end else 
    
?> 

<div id="formwrap"> 
<!--  Einfaches Kontaktformular mit Captcha. Code von CHRONO.net Media Works. http://www.chrono.net -->
<div id="form"> 

<form id="kontakt" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>"> 
<fieldset> 
<?php 

   echo "<legend><strong>" . $form_legend . "</strong></legend>\n"; 

?> 

<label for="name"><strong><?php echo $form_name; ?></strong></label><br /> 
<input class="inpt" type="text" id="name" name="name" size="38" title="<?php echo $form_name; ?>" value="<?php echo stripslashes($name); ?>" tabindex="1" /><br /><br /> 

<label for="email"><strong><span lang="en"><?php echo $form_email; ?></span></strong></label><br /> 
<input class="inpt" type="text" id="email" name="email" size="38" title="<?php echo $form_email; ?>" value="<?php echo stripslashes($email); ?>" tabindex="2" /><br /><br /> 

<label for="message"><strong><?php echo $form_message; ?></strong></label><br /> 
<textarea class="txt" id="message" name="message" title="<?php echo $form_message; ?>" cols="36" rows="8" tabindex="3"><?php echo stripslashes($message); ?></textarea><br /><br /> 

<label for="captcha"><strong>Sicherheitscode</strong></label><br /><?php if($REX['REDAXO'] ==0) { 
?><img src="captcha/captcha.php" border="0" title="Sicherheitscode" align="left"><input type="text" name="sicherheitscode" size="4"><?php } ?><br /><br /> 

<input type="submit" class="senden" name="submit" value="<?php echo $submit_value; ?>" title="<?php echo $submit_titel; ?>" tabindex="4" /><br /> 

</fieldset> 
</form> 
</div> 
</div> 

<?php 
} // if (($submit == "") OR (($submit == $submit_value) AND ($hack == true))) 

elseif (($submit == $submit_value) AND ($hack == false)) 
{ 
  //email abschicken 
  $recipient=$empfaenger; 
  $subject=$email_titel; 
  $header="From: " . $email . "\n"; 
  $mail_body ="Das Anfrage-Formular wurde am " . date("d.m.Y") . " um " . date("H:i") . "h ausgeführt.\n"; 
  $mail_body.="Folgende Werte wurden eingetragen:\n\n"; 
  $mail_body.="Name: " . $name . "\n"; 
  $mail_body.="E-Mail: " . $email . "\n\n"; 
  $mail_body.="Message:\n\n"; 
  $mail_body.=$message . "\n\n ---- Ende der automatisch generierten eMail ----"; 
  
  mail($recipient,$subject,$mail_body,$header); 
  if ($empfaengerBC != ''){ 
    $recipient=$empfaengerBC; 
    mail($recipient,$subject,$mail_body,$header); 
  } 
  echo '<br /><br /><p class="center"><strong>'.$thanks_message.'</strong></p>'."\n";
}  

?>
MfG moin2010
Benutzeravatar
dagobert50gold
Gesperrt
Beiträge: 1316
Registriert: 04.11.2009 16:52

Re: Problem mit Kontaktformular mit Captcha

Beitrag von dagobert50gold »

Könntest du bitte mal die genaue Fehlermeldung zitieren? Um welchen Mod geht es? Bastelst du an einem?
Der kleine phpBB.de-Knigge - unsere HausordnungF1 WebTipp von Dr.DeathF1 WebTipp SQL-Updates
Kein Support per PN! Auch nicht zu den F1WebTipp-SQL-Updates!
moin2010
Mitglied
Beiträge: 137
Registriert: 25.07.2010 18:14
Kontaktdaten:

Re: Problem mit Kontaktformular mit Captcha

Beitrag von moin2010 »

Das hier ist es:
http://www.redaxo.de/165-Moduldetails.h ... ule_id=231

Es kommt diese Fehlermeldung
Der eingegebene Bestätigungscode ist fehlerhaft.
MfG moin2010
Benutzeravatar
dagobert50gold
Gesperrt
Beiträge: 1316
Registriert: 04.11.2009 16:52

Re: Problem mit Kontaktformular mit Captcha

Beitrag von dagobert50gold »

Ist dein Forum deshalb down?

Aber in deinem verlinkten Artikel steht:
Das Redaxo Team prüft diese Module/Templates/Addons generell nicht auf Richtigkeit bzw. auf Funktionalität.
Also meldest du dich am besten dort.

Für was brauchst du das überhaupt? In phpBB ist doch schon Captcha drin :-? ?!
Der kleine phpBB.de-Knigge - unsere HausordnungF1 WebTipp von Dr.DeathF1 WebTipp SQL-Updates
Kein Support per PN! Auch nicht zu den F1WebTipp-SQL-Updates!
moin2010
Mitglied
Beiträge: 137
Registriert: 25.07.2010 18:14
Kontaktdaten:

Re: Problem mit Kontaktformular mit Captcha

Beitrag von moin2010 »

hat sich schon erledigt.
MfG moin2010
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“