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

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
snaft

Probleme mit Kontaktformular

2. Apr 2009, 12:29

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

Zurück zu „Allgemeines [R3]“