From c715b5507a92eea0180b640db399e0144e100bf6 Mon Sep 17 00:00:00 2001 From: Patrick Canterino Date: Mon, 12 Dec 2011 20:51:18 +0000 Subject: [PATCH] Bevor eine Fehlermeldung fuer ein individuelles Formularfeld ausgegeben wird, wird geprueft, ob die Fehlermeldung ueberhaupt definiert wurde. Mir gefaellt die Loesung nicht, sollte man vielleicht mal ueberarbeiten (mach ich dann aber sowieso nicht...). --- form-email/config.php | 4 +++- form-email/functions.php | 14 +++++++++++--- form-email/mailer.php | 30 +++++++++++++++++++++++++----- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/form-email/config.php b/form-email/config.php index a3af2a1..a4208e9 100644 --- a/form-email/config.php +++ b/form-email/config.php @@ -6,7 +6,7 @@ # Konfiguration fuer Form E-Mail # # Autor: Patrick Canterino -# Letzte Aenderung: 2.12.2011 +# Letzte Aenderung: 12.12.2011 # # Copyright (C) 2002-2011 Patrick Canterino # @@ -120,6 +120,8 @@ $err_send_error = 'Beim Versenden der Mail ist ein Fehler aufgetreten!'; $err_only_post = 'Dieser Form-Mailer kann nur mit POST aufgerufen werden.'; $err_referer_not_ok = 'Der im HTTP-Referer angegebene Host darf keine Mails versenden.'; +$err_indiv_errmsg_miss = 'Die Fehlermeldung {ERRMSG} für das individuelle Formularfeld {INDIVIDUAL} wurde nicht definiert!'; + $err_captcha_incorrect = 'Der eingegebene Sicherheitscode ist nicht korrekt!'; $err_captcha_max = 'Sie haben den Sicherheitscode zu oft falsch eingegeben!'; $err_captcha_disabled = 'Captchas sind nicht aktiviert!'; diff --git a/form-email/functions.php b/form-email/functions.php index d8d6f71..2374b7b 100644 --- a/form-email/functions.php +++ b/form-email/functions.php @@ -7,7 +7,7 @@ # geschrieben wurde. # # Autor: Patrick Canterino -# Letzte Aenderung: 3.12.2011 +# Letzte Aenderung: 12.12.2011 # # Copyright (C) 2002-2011 Patrick Canterino # @@ -103,13 +103,21 @@ function semicolon_split($string) { # # Parameter: Fehlermeldung -function show_fatal(&$errmsg) { +function show_fatal(&$errmsg,$vars=array()) { global $tpl_fatal; $tpl = new Template; $tpl->read_file($tpl_fatal); - $tpl->fillin('ERROR',$errmsg); + if(sizeof($vars) > 0) { + while(list($var,$content) = each($vars)) { + $errmsg = str_replace('{'.htmlspecialchars($var).'}',htmlspecialchars($content),$errmsg); + } + } + + $tpl->set_var('ERROR',$errmsg); + + $tpl->parse(); print $tpl->get_template(); exit; diff --git a/form-email/mailer.php b/form-email/mailer.php index 11061d4..ff43112 100644 --- a/form-email/mailer.php +++ b/form-email/mailer.php @@ -7,7 +7,7 @@ # geschrieben wurde. # # Autor: Patrick Canterino -# Letzte Aenderung: 4.12.2011 +# Letzte Aenderung: 12.12.2011 # # Copyright (C) 2002-2011 Patrick Canterino # @@ -116,13 +116,23 @@ while(list($user_field,$user_field_data) = each($user_fields)) { if(isset($user_field_data['min']) && $user_field_data['min']) { if(strlen($user_field_content) < $user_field_data['min']) { - show_user_error($user_field_data['errors']['too_short']); + if(isset($user_field_data['errors']['too_short'])) { + show_user_error($user_field_data['errors']['too_short']); + } + else { + show_fatal($err_indiv_errmsg_miss,array('ERRMSG' => 'too_short', 'INDIVIDUAL' => $user_field)); + } } } if(isset($user_field_data['min']) && $user_field_data['max']) { if(strlen($user_field_content) > $user_field_data['max']) { - show_user_error($user_field_data['errors']['too_long']); + if(isset($user_field_data['errors']['too_long'])) { + show_user_error($user_field_data['errors']['too_long']); + } + else { + show_fatal($err_indiv_errmsg_miss,array('ERRMSG' => 'too_long', 'INDIVIDUAL' => $user_field)); + } } } @@ -130,7 +140,12 @@ while(list($user_field,$user_field_data) = each($user_fields)) { if(isset($user_field_data['check']) && $user_field_data['check'] != '') { if(function_exists($user_field_data['check']) && call_user_func($user_field_data['check'],$user_field_content) === false) { - show_user_error($user_field_data['errors']['check_fail']); + if(isset($user_field_data['errors']['check_fail'])) { + show_user_error($user_field_data['errors']['check_fail']); + } + else { + show_fatal($err_indiv_errmsg_miss,array('ERRMSG' => 'check_fail', 'INDIVIDUAL' => $user_field)); + } } } @@ -138,7 +153,12 @@ while(list($user_field,$user_field_data) = each($user_fields)) { if(isset($user_field_data['regex']) && $user_field_data['regex'] != '') { if(!preg_match($user_field_data['regex'],$user_field_content)) { - show_user_error($user_field_data['errors']['match_fail']); + if(isset($user_field_data['errors']['match_fail'])) { + show_user_error($user_field_data['errors']['match_fail']); + } + else { + show_fatal($err_indiv_errmsg_miss,array('ERRMSG' => 'match_fail', 'INDIVIDUAL' => $user_field)); + } } } -- 2.34.1