[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Probleme mit Kontaktformular
Seite 1 von 1

Probleme mit Kontaktformular

Verfasst: 2. Apr 2009, 12:29
von snaft
Hallo liebe Leute!

Mit folgendem Modul habe ich Probleme:

http://www.redaxo.de/165-0-moduldetails ... ule_id=231

Die Sache ist, dass das Formular irgendwie keine Umlaute akzeptiert. Weder im Namensfeld, noch im Nachrichtenfeld.

Ich poste hier meinen leicht abgewandelten Code:

EINGABE:

Code: Alles auswählen

Bitte die entsprechenden Felder ausfüllen, da sonst das Kontaktformular nicht funktionsfähig ist. 
<br> 
Bezeichner Namensfeld: 
<br><input type=text size=10 class=inp100 name=VALUE[1] value="REX_VALUE[1]"><br><br> 
Bezeichner EMail-feld: 
<br><input type=text size=10 class=inp100 name=VALUE[2] value="REX_VALUE[2]"><br><br>
Bezeichner Personenanzahl: 
<br><input type=text size=10 class=inp100 name=VALUE[10] value="REX_VALUE[10]"><br><br>
Bezeichner Text-/Nachrichtenfeld: 
<br><input type=text size=10 class=inp100 name=VALUE[3] value="REX_VALUE[3]"><br><br> 
Aufschrift auf Senden-Button: 
<br><input type=text size=10 class=inp100 name=VALUE[4] value="REX_VALUE[4]"><br><br> 
Meldung bei nicht korrekt ausgefülltem Formular: 
<br><textarea name=VALUE[5] cols=80 rows=2 class=inp100>REX_VALUE[5]</textarea><br><br> 
Meldung bei erfolgreicher Versendung des Formulars: 
<br><textarea name=VALUE[6] cols=80 rows=2 class=inp100>REX_VALUE[6]</textarea><br><br> 
EMail an die das Formular versendet werden soll: 
<br><input type=text size=10 class=inp100 name=VALUE[7] value="REX_VALUE[7]"><br><br> 
EMail an die das Formular als Kopie versendet werden soll: 
<br><input type=text size=10 class=inp100 name=VALUE[8] value="REX_VALUE[8]"><br><br> 
Titel der EMail: 
<br><input type=text size=10 class=inp100 name=VALUE[9] value="REX_VALUE[9]"><br><br>
AUSGABE:

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_personen = "REX_VALUE[10]";
$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_personen = clean_text($form_personen); 
//$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 = ""; 
  $personen = "";
} else { 
  $name = $_POST["name"];       
  $email = $_POST["email"];
  $personen = $_POST["personen"]; 
  $firma = $_POST["firma"]; 
  $message = $_POST["message"]; 
  $submit = $_POST["submit"]; 
$sicherheit = $_POST["sicherheitscode"];
  
  $name = cleanup($name); 
  $email = cleanup($email);
  $personen = cleanup($personen); 
  $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="personen"><strong><span lang="en"><?php echo $form_personen; ?></span></strong></label><br /> 
<input class="inpt" type="text" id="personen" name="personen" size="38" title="<?php echo $personen; ?>" value="<?php echo stripslashes($personen); ?>" tabindex="3" /><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="4"><?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="5" /><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.="Anzahl der Personen: " . $personen . "\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";
}  

?>
Einen Zugang zu dem laufenden System bitte gerne per PM.

Da ich ein wenig im Stress bin, wäre es mir auch recht, wenn mir jemand ein anderes Kontaktformular(mit Captcha) weisen könnte. Die Website läuft unter 3.2 und nur mit einer Sprache.

Ich habe auch schon versucht, do form! an die 3.2 Version anzupassen(woher es ja eigentlich auch stammt), aber das bekomme ich leider nicht hin.

Beste Grüße,
Marc