]> git.p6c8.net - form-email.git/blob - form-email/functions.php
- Neuen Code ein bisschen kommentiert
[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: 7.11.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 {
34 switch($_SERVER['REQUEST_METHOD'])
35 {
36 case 'GET':
37 if(isset($_GET[$param]))
38 {
39 $value = $_GET[$param];
40 break;
41 }
42 else return null;
43
44 case 'POST':
45 if(isset($_POST[$param]))
46 {
47 $value = $_POST[$param];
48 break;
49 }
50 else return null;
51
52 default:
53 return null;
54 }
55
56 if(get_magic_quotes_gpc())
57 {
58 if(is_array($value)) return array_map('stripslashes',$value);
59 else return stripslashes($value);
60 }
61 else return $value;
62 }
63
64 # plain()
65 #
66 # Text fuer HTML-Ausgabe vorbereiten (Entities,
67 # Zeilenumbrueche, Leerzeichen)
68 #
69 # Parameter: 1. Text
70 # 2. Zeilenumbruchskennung (Standard = <br>)
71 #
72 # Rueckgabe: Bearbeiteter Text (String)
73
74 function &plain(&$text,$linebreak='<br>')
75 {
76 $htmltext = htmlentities($text);
77 $htmltext = preg_replace("/\015\012|\012|\015/",$linebreak,$htmltext);
78
79 for($x=0;$x<strlen($htmltext);$x++)
80 {
81 if($htmltext[$x] == ' ' && $htmltext[$x+1] == ' ') $htmltext[$x] = "\240";
82 }
83
84 $htmltext = str_replace("\240",'&nbsp;',$htmltext);
85 $htmltext = str_replace($linebreak.' ',$linebreak.'&nbsp;',$htmltext);
86
87 return $htmltext;
88 }
89
90 # semicolon_split()
91 #
92 # Durch Semikola getrennte Werte aufteilen und Leerzeichen
93 # an Anfang und Ende der Werte entfernen
94 #
95 # Parameter: Zeichenkette
96 #
97 # Rueckgabe: Aufgeteilte Zeichenkette (Array)
98
99 function semicolon_split($string)
100 {
101 $parts = explode(';',$string);
102 $parts = array_map('trim',$parts);
103
104 return $parts;
105 }
106
107 # show_fatal()
108 #
109 # Fehlermeldung anzeigen (Benutzer kann den Fehler
110 # nicht korrigieren)
111 #
112 # Parameter: Fehlermeldung
113
114 function show_fatal(&$errmsg)
115 {
116 global $tpl_fatal;
117
118 $tpl = new Template;
119 $tpl->read_file($tpl_fatal);
120
121 $tpl->fillin('ERROR',$errmsg);
122
123 print $tpl->get_template();
124 exit;
125 }
126
127 # show_user_error()
128 #
129 # Fehlermeldung anzeigen (Benutzer kann den Fehler
130 # aber noch korrigieren)
131 #
132 # Parameter: Fehlermeldung
133
134 function show_user_error(&$errmsg)
135 {
136 global $captcha_enable, $email, $name, $subject, $text, $tpl_user_error;
137
138 $tpl = new Template;
139 $tpl->read_file($tpl_user_error);
140
141 $tpl->parse_if_block('CAPTCHA',$captcha_enable);
142
143 $tpl->set_var('EMAIL', htmlentities($email));
144 $tpl->set_var('ERROR', $errmsg);
145 $tpl->set_var('NAME', htmlentities($name));
146 $tpl->set_var('SUBJECT',htmlentities($subject));
147 $tpl->set_var('TEXT', htmlentities($text));
148
149 $tpl->parse();
150
151 print $tpl->get_template();
152 exit;
153 }
154
155 #
156 ### Ende ###
157
158 ?>

patrick-canterino.de