]> git.p6c8.net - form-email.git/blob - form-email/functions.php
Fehlermeldungen bei indiv. Formularfeldern enthalten
[form-email.git] / form-email / functions.php
1 <?php
2
3 #
4 # Form E-Mail 3.5
5 #
6 # Versenden einer E-Mail, die ueber ein Kontaktformular
7 # geschrieben wurde.
8 #
9 # Autor: Patrick Canterino <patrick@patshaping.de>
10 # Letzte Aenderung: 3.12.2011
11 #
12 # Copyright (C) 2002-2011 Patrick Canterino
13 #
14 # Diese Datei kann unter den Bedingungen der "Artistic License 2.0"
15 # weitergegeben und / oder veraendert werden.
16 # Siehe:
17 # http://www.opensource.org/licenses/artistic-license-2.0
18 #
19
20 # formdata()
21 #
22 # Formulardaten bei deaktiviertem register_globals auslesen
23 #
24 # Parameter: Name des Formularfeldes
25 #
26 # Rueckgabe: Inhalt des Formularfeldes (String oder Array)
27 #
28 # Bemerkungen: - Wenn der HTTP-Zugriff nicht POST oder GET ist,
29 # wird nichts zurueckgegeben.
30 # - Codierende Backslashes werden automatisch entfernt
31
32 function formdata($param) {
33 switch($_SERVER['REQUEST_METHOD']) {
34 case 'GET':
35 if(isset($_GET[$param])) {
36 $value = $_GET[$param];
37 break;
38 }
39 else return null;
40
41 case 'POST':
42 if(isset($_POST[$param])) {
43 $value = $_POST[$param];
44 break;
45 }
46 else return null;
47
48 default:
49 return null;
50 }
51
52 if(get_magic_quotes_gpc()) {
53 if(is_array($value)) return array_map('stripslashes',$value);
54 else return stripslashes($value);
55 }
56 else return $value;
57 }
58
59 # plain()
60 #
61 # Text fuer HTML-Ausgabe vorbereiten (Entities,
62 # Zeilenumbrueche, Leerzeichen)
63 #
64 # Parameter: 1. Text
65 # 2. Zeilenumbruchskennung (Standard = <br>)
66 #
67 # Rueckgabe: Bearbeiteter Text (String)
68
69 function &plain(&$text,$linebreak='<br>') {
70 $htmltext = htmlentities($text);
71 $htmltext = preg_replace("/\015\012|\012|\015/",$linebreak,$htmltext);
72
73 for($x=0;$x<strlen($htmltext);$x++) {
74 if($htmltext[$x] == ' ' && $htmltext[$x+1] == ' ') $htmltext[$x] = "\240";
75 }
76
77 $htmltext = str_replace("\240",'&nbsp;',$htmltext);
78 $htmltext = str_replace($linebreak.' ',$linebreak.'&nbsp;',$htmltext);
79
80 return $htmltext;
81 }
82
83 # semicolon_split()
84 #
85 # Durch Semikola getrennte Werte aufteilen und Leerzeichen
86 # an Anfang und Ende der Werte entfernen
87 #
88 # Parameter: Zeichenkette
89 #
90 # Rueckgabe: Aufgeteilte Zeichenkette (Array)
91
92 function semicolon_split($string) {
93 $parts = explode(';',$string);
94 $parts = array_map('trim',$parts);
95
96 return $parts;
97 }
98
99 # show_fatal()
100 #
101 # Fehlermeldung anzeigen (Benutzer kann den Fehler
102 # nicht korrigieren)
103 #
104 # Parameter: Fehlermeldung
105
106 function show_fatal(&$errmsg) {
107 global $tpl_fatal;
108
109 $tpl = new Template;
110 $tpl->read_file($tpl_fatal);
111
112 $tpl->fillin('ERROR',$errmsg);
113
114 print $tpl->get_template();
115 exit;
116 }
117
118 # show_user_error()
119 #
120 # Fehlermeldung anzeigen (Benutzer kann den Fehler
121 # aber noch korrigieren)
122 #
123 # Parameter: Fehlermeldung
124
125 function show_user_error(&$errmsg) {
126 global $captcha_enable, $email, $name, $subject, $text, $user_fields, $tpl_user_error;
127
128 $tpl = new Template;
129 $tpl->read_file($tpl_user_error);
130
131 $tpl->parse_if_block('CAPTCHA',$captcha_enable);
132
133 $tpl->set_var('EMAIL', htmlentities($email));
134 $tpl->set_var('ERROR', $errmsg);
135 $tpl->set_var('NAME', htmlentities($name));
136 $tpl->set_var('SUBJECT',htmlentities($subject));
137 $tpl->set_var('TEXT', htmlentities($text));
138
139 reset($user_fields);
140
141 while(list($user_field,$user_field_data) = each($user_fields)) {
142 $tpl->set_var($user_field_data['tpl_var'],htmlentities(formdata($user_field)));
143 }
144
145 $tpl->parse();
146
147 print $tpl->get_template();
148 exit;
149 }
150
151 #
152 ### Ende ###
153
154 ?>

patrick-canterino.de