Subversion Repositories php_guestbook

Rev

Rev 2 | Rev 5 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 4
1
<?php
1
<?php
2
 
2
 
3
# ViaThinkSoft PHP Guestbook 2.8.1
3
# ViaThinkSoft PHP Guestbook 2.8.2
4
# (C) 2003-2017 ViaThinkSoft, Daniel Marschall
4
# (C) 2003-2022 ViaThinkSoft, Daniel Marschall
5
# Licensed under GPL v3
5
# Licensed under the Apache 2.0 License
6
 
6
 
7
// Version des Gästebuchs
7
// Version des Gästebuchs
8
$version = '2.8.1';
8
$version = '2.8.1';
9
 
9
 
-
 
10
// START DEFAULT WERTE
-
 
11
 
-
 
12
$charset = 'ISO-8859-1';
-
 
13
 
-
 
14
// Der Titel der Seite
-
 
15
$seitentitel = 'Mein Gästebuch';
-
 
16
 
-
 
17
// Seitenkopf
-
 
18
$seitenkopf = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-
 
19
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
 
20
 
-
 
21
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-
 
22
 
-
 
23
<head>
-
 
24
        <meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
-
 
25
        <title>'.htmlentities($seitentitel).' G&auml;stebuch</title>
-
 
26
</head>
-
 
27
 
-
 
28
<body>';
-
 
29
 
-
 
30
// Seitenfuß
-
 
31
$seitenfuss = '</body></html>';
-
 
32
 
-
 
33
// Farben
-
 
34
$farbe1 = '#505080';    // Rand eines Eintrags
-
 
35
$farbe2 = '#D2DAF0';    // Eintrag Segment 2 (Text) BG
-
 
36
$farbe3 = '#A0B1E0';    // Eintrag Segment 1 (Kopfzeile) BG
-
 
37
$farbe4 = '#333333';    // Erstellungsdatum Schrift
-
 
38
$farbe5 = '#E2E7F5';    // Eintrag Segment 3 (Admin-Kommentar, optional) BG
-
 
39
$farbe6 = 'red';        // Fehlermeldung
-
 
40
$farbe7 = 'blue';       // Pflichtfeld-Stern
-
 
41
$farbe8 = 'green';      // Erfolgsmeldung
-
 
42
$farbe9  = 'black';     // Segment 1 (Kopfzeile) Text
-
 
43
$farbe10 = 'black';     // Segment 2 (Text) Text
-
 
44
$farbe11 = 'black';     // Segment 3 (Admin-Kommentar, optional) Text
-
 
45
 
-
 
46
// Die MySQL-Zugangsdaten
-
 
47
$mysql_server   = 'localhost';
-
 
48
$mysql_user     = 'root';
-
 
49
$mysql_pass     = '';
-
 
50
$mysql_database = 'guestbook';
-
 
51
 
-
 
52
// Die Datenbanktabellennamen
-
 
53
$table_entries = 'gaestebuch_entries';
-
 
54
$table_smileys = 'gaestebuch_smileys';
-
 
55
 
-
 
56
// E-Mail-Adresse
-
 
57
$adminmail = 'your_email_address@example.com';
-
 
58
$adminmail_cc = '';
-
 
59
 
-
 
60
// Einträge pro Seite
-
 
61
$eintraege_proseite = 10;
-
 
62
 
-
 
63
// Vorsicht: Der Server muss autorisiert sein, eine E-Mail zu über diese Domain zu senden (SPF/DKIM)
-
 
64
$cfg_from_email = 'noreply@example.com';
-
 
65
 
-
 
66
// Features
-
 
67
$cfg_feature_simple_antispam   = true;
-
 
68
$cfg_automatisch_freischalten  = false;
-
 
69
$cfg_unfreigeschaltete_anzegen = false;
-
 
70
$cfg_vorschau                  = true;
-
 
71
 
-
 
72
// Recaptcha - This is the most secure Captcha
-
 
73
// It also helps against "F5" spamming!
-
 
74
// Get a FREE API key here: https://www.google.com/recaptcha/admin/create
-
 
75
$cfg_recaptcha_enabled = false;
-
 
76
$cfg_recaptcha_pubkey  = '';
-
 
77
$cfg_recaptcha_privkey = '';
-
 
78
 
-
 
79
// see https://daniel-lange.com/archives/66-ICQ-web-status-icons.html
-
 
80
$cfg_icq_statusicon = 5;
-
 
81
 
-
 
82
// ENDE DEFAULT WERTE
-
 
83
 
10
if (!file_exists(__DIR__ . '/config/config.inc.php')) {
84
if (!file_exists(__DIR__ . '/config/config.inc.php')) {
11
        die('ERROR: File <b>config/config.inc.php</b> does not exist. Please create it using <b>config/config.original.inc.php</b>');
85
        die('ERROR: File <b>config/config.inc.php</b> does not exist. Please create it using <b>config/config.original.inc.php</b>');
12
}
86
}
13
require_once __DIR__ . '/config/config.inc.php';
87
require_once __DIR__ . '/config/config.inc.php';
14
 
88
 
15
if (!isset($cfg_recaptcha_enabled)) $cfg_recaptcha_enabled = false;
-
 
16
if ($cfg_recaptcha_enabled) $cfg_feature_simple_antispam = false;
89
if ($cfg_recaptcha_enabled) $cfg_feature_simple_antispam = false;
17
if (!isset($cfg_icq_statusicon)) $cfg_icq_statusicon = 5;
-
 
18
 
90
 
19
require_once __DIR__ . '/includes/database.inc.php';
91
require_once __DIR__ . '/includes/database.inc.php';
20
verbinden();
92
verbinden();
21
 
93
 
22
require_once __DIR__ . '/includes/SecureMailer.class.php';
94
require_once __DIR__ . '/includes/SecureMailer.class.php';
23
require_once __DIR__ . '/includes/ip_functions.inc.php';
95
require_once __DIR__ . '/includes/ip_functions.inc.php';
24
 
96
 
25
if ($cfg_recaptcha_enabled) {
97
if ($cfg_recaptcha_enabled) {
26
        require_once __DIR__ . '/includes/recaptcha/src/autoload.php';
98
        require_once __DIR__ . '/includes/recaptcha/src/autoload.php';
27
}
99
}
28
 
100
 
29
# ------------------------------
101
# ------------------------------
30
 
102
 
31
// Funktion zum sichern von E-Mail-Adressen
103
// Funktion zum sichern von E-Mail-Adressen
32
// $crypt_linktext = 0
104
// $crypt_linktext = 0
33
// --> geeignet für <img>-links, da $linktext nicht in ASCII übersetzt wird!
105
// --> geeignet für <img>-links, da $linktext nicht in ASCII übersetzt wird!
34
// $crypt_linktext = 1
106
// $crypt_linktext = 1
35
// --> geeignet für text-links für höhere Sicherheit
107
// --> geeignet für text-links für höhere Sicherheit
36
 
108
 
37
function secure_email($email, $linktext, $crypt_linktext) {
109
function secure_email($email, $linktext, $crypt_linktext) {
38
        $aus = '';
110
        $aus = '';
39
        if ($email != '') {
111
        if ($email != '') {
40
                $aus .= '<script language="JavaScript" type="text/javascript">
112
                $aus .= '<script language="JavaScript" type="text/javascript">
41
<!--
113
<!--
42
        document.write("<a href=\"");'."\n";
114
        document.write("<a href=\"");'."\n";
43
 
115
 
44
                $gesamttext = 'mailto:'.$email;
116
                $gesamttext = 'mailto:'.$email;
45
                for ($i=0; $i<strlen($gesamttext); $i++) {
117
                for ($i=0; $i<strlen($gesamttext); $i++) {
46
                        $aus .= '  document.write("&#'.ord(substr($gesamttext, $i, 1)).';");'."\n";
118
                        $aus .= '  document.write("&#'.ord(substr($gesamttext, $i, 1)).';");'."\n";
47
                }
119
                }
48
 
120
 
49
                $aus .= '  document.write("\">");'."\n";
121
                $aus .= '  document.write("\">");'."\n";
50
 
122
 
51
                if ($crypt_linktext == '1') {
123
                if ($crypt_linktext == '1') {
52
                        $gesamttext = $linktext;
124
                        $gesamttext = $linktext;
53
                        for ($i=0; $i<strlen($gesamttext); $i++) {
125
                        for ($i=0; $i<strlen($gesamttext); $i++) {
54
                                $aus .= '  document.write("&#'.ord(substr($gesamttext, $i, 1)).';");'."\n";
126
                                $aus .= '  document.write("&#'.ord(substr($gesamttext, $i, 1)).';");'."\n";
55
                        }
127
                        }
56
                } else {
128
                } else {
57
                        $gesamttext = str_replace('"', '\"', $linktext);
129
                        $gesamttext = str_replace('"', '\"', $linktext);
58
                        $aus .= '  document.write("'.$gesamttext.'");';
130
                        $aus .= '  document.write("'.$gesamttext.'");';
59
                }
131
                }
60
 
132
 
61
                $aus .= '  document.write("<\/a>");
133
                $aus .= '  document.write("<\/a>");
62
// -->
134
// -->
63
</script>';
135
</script>';
64
        }
136
        }
65
 
137
 
66
        return $aus;
138
        return $aus;
67
}
139
}
68
 
140
 
69
function myhtmlentities($nachricht) {
141
function myhtmlentities($nachricht) {
70
        global $charset;
142
        global $charset;
71
        return htmlentities($nachricht, ENT_COMPAT | ENT_XHTML, $charset);
143
        return htmlentities($nachricht, ENT_COMPAT | ENT_XHTML, $charset);
72
}
144
}
73
 
145
 
74
function parse_html($nachricht, $loc_dir = '') {
146
function parse_html($nachricht, $loc_dir = '') {
75
        global $table_smileys;
147
        global $table_smileys;
76
 
148
 
77
        // Smiley pre-parsing
149
        // Smiley pre-parsing
78
        $uid = uniqid();
150
        $uid = uniqid();
79
        $result = mysql_query("SELECT `zeichen`, `image`, `beschreibung`, `id` FROM `".mysql_real_escape_string($table_smileys)."` WHERE `enabled` = '1' ORDER BY `id` ASC");
151
        $result = db_query("SELECT `zeichen`, `image`, `beschreibung`, `id` FROM `".db_real_escape_string($table_smileys)."` WHERE `enabled` = '1' ORDER BY `id` ASC");
80
        while ($row = mysql_fetch_object($result)) {
152
        while ($row = db_fetch_object($result)) {
81
                # $nachricht = str_replace($row->zeichen, '<img src="images/smileys/'.$row->image.'" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" />', $nachricht);
153
                # $nachricht = str_replace($row->zeichen, '<img src="images/smileys/'.$row->image.'" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" />', $nachricht);
82
                $nachricht = str_replace($row->zeichen, "\nSMILEY${uid}:".$row->id.":${uid}YELIMS\n", $nachricht);
154
                $nachricht = str_replace($row->zeichen, "\nSMILEY${uid}:".$row->id.":${uid}YELIMS\n", $nachricht);
83
        }
155
        }
84
 
156
 
85
        // HTML Parsing
157
        // HTML Parsing
86
        $nachricht = myhtmlentities($nachricht);
158
        $nachricht = myhtmlentities($nachricht);
87
# Damit funktioniert wordwrap() nicht gescheit, was für den Mailverkehr wichtig ist. außerdem gibt es dann keinen umbruch in der voransicht
159
# Damit funktioniert wordwrap() nicht gescheit, was für den Mailverkehr wichtig ist. außerdem gibt es dann keinen umbruch in der voransicht
88
#       $nachricht = str_replace(' ', '&nbsp;', $nachricht);
160
#       $nachricht = str_replace(' ', '&nbsp;', $nachricht);
89
# TODO: man sollte ' '->&nbsp; erst ersetzen, wenn es mehr als 1 leerzeichen ist
161
# TODO: man sollte ' '->&nbsp; erst ersetzen, wenn es mehr als 1 leerzeichen ist
90
        $nachricht = nl2br($nachricht);
162
        $nachricht = nl2br($nachricht);
91
        $nachricht = str_replace('<br>', '<br />', $nachricht); // to be sure
163
        $nachricht = str_replace('<br>', '<br />', $nachricht); // to be sure
92
        $nachricht = str_replace('<BR>', '<br />', $nachricht); // to be sure
164
        $nachricht = str_replace('<BR>', '<br />', $nachricht); // to be sure
93
 
165
 
94
        // Linkanalyse von phpBB
166
        // Linkanalyse von phpBB
95
        $nachricht = ' ' . $nachricht;
167
        $nachricht = ' ' . $nachricht;
96
        $nachricht = preg_replace("#([\t\r\n ])([a-z0-9]+?){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="\2://\3" target="_blank">\2://\3</a>', $nachricht);
168
        $nachricht = preg_replace("#([\t\r\n ])([a-z0-9]+?){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="\2://\3" target="_blank">\2://\3</a>', $nachricht);
97
        $nachricht = preg_replace("#([\t\r\n ])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="http://\2.\3" target="_blank">\2.\3</a>', $nachricht);
169
        $nachricht = preg_replace("#([\t\r\n ])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="http://\2.\3" target="_blank">\2.\3</a>', $nachricht);
98
        $nachricht = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $nachricht);
170
        $nachricht = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $nachricht);
99
        $nachricht = substr($nachricht, 1);
171
        $nachricht = substr($nachricht, 1);
100
 
172
 
101
        // Final smiley parsing
173
        // Final smiley parsing
102
        $result = mysql_query("SELECT `zeichen`, `image`, `beschreibung`, `id` FROM `".mysql_real_escape_string($table_smileys)."` WHERE `enabled` = '1' ORDER BY `id` ASC");
174
        $result = db_query("SELECT `zeichen`, `image`, `beschreibung`, `id` FROM `".db_real_escape_string($table_smileys)."` WHERE `enabled` = '1' ORDER BY `id` ASC");
103
        while ($row = mysql_fetch_object($result)) {
175
        while ($row = db_fetch_object($result)) {
104
                $nachricht = str_replace("<br />\nSMILEY${uid}:".$row->id.":${uid}YELIMS<br />\n", '<img src="'.$loc_dir.'images/smileys/'.$row->image.'" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" />', $nachricht);
176
                $nachricht = str_replace("<br />\nSMILEY${uid}:".$row->id.":${uid}YELIMS<br />\n", '<img src="'.$loc_dir.'images/smileys/'.$row->image.'" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" />', $nachricht);
105
        }
177
        }
106
 
178
 
107
        return $nachricht;
179
        return $nachricht;
108
}
180
}
109
 
181
 
110
function anznachricht($name, $ort, $email, $home, $icq, $nachricht, $kommentar, $zeit, $datum) {
182
function anznachricht($name, $ort, $email, $home, $icq, $nachricht, $kommentar, $zeit, $datum) {
111
        global $farbe1, $farbe2, $farbe3, $farbe4, $farbe5, $farbe6, $farbe7, $farbe8, $farbe9, $farbe10, $farbe11, $this_dir, $cfg_icq_statusicon;
183
        global $farbe1, $farbe2, $farbe3, $farbe4, $farbe5, $farbe6, $farbe7, $farbe8, $farbe9, $farbe10, $farbe11, $this_dir, $cfg_icq_statusicon;
112
 
184
 
113
        $zzeit = explode(":", $zeit);
185
        $zzeit = explode(":", $zeit);
114
        $zzeit = $zzeit[0].".".$zzeit[1];
186
        $zzeit = $zzeit[0].".".$zzeit[1];
115
        $ddatum = explode("-", $datum);
187
        $ddatum = explode("-", $datum);
116
        $ddatum = $ddatum[2].".".$ddatum[1].".".$ddatum[0];
188
        $ddatum = $ddatum[2].".".$ddatum[1].".".$ddatum[0];
117
        $nachricht = parse_html($nachricht, $this_dir);
189
        $nachricht = parse_html($nachricht, $this_dir);
118
 
190
 
119
        echo '<table border="1" cellpadding="5" cellspacing="0" width="100%" style="border-color:'.$farbe1.';border-collapse:collapse">';
191
        echo '<table border="1" cellpadding="5" cellspacing="0" width="100%" style="border-color:'.$farbe1.';border-collapse:collapse">';
120
        echo '  <tr>';
192
        echo '  <tr>';
121
        echo '    <td width="100%" bgcolor="'.$farbe3.'" style="border-color:'.$farbe1.';border-collapse:collapse">';
193
        echo '    <td width="100%" bgcolor="'.$farbe3.'" style="border-color:'.$farbe1.';border-collapse:collapse">';
122
        echo '    <table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:'.$farbe9.'">';
194
        echo '    <table border="0" cellpadding="0" cellspacing="0" width="100%" style="color:'.$farbe9.'">';
123
        echo '      <tr>';
195
        echo '      <tr>';
124
        echo '        <td width="75%" align="left"><b>'.myhtmlentities($name).'</b>';
196
        echo '        <td width="75%" align="left"><b>'.myhtmlentities($name).'</b>';
125
        if ($ort != '') echo ' aus '.myhtmlentities($ort);
197
        if ($ort != '') echo ' aus '.myhtmlentities($ort);
126
        echo '</td>';
198
        echo '</td>';
127
        echo '        <td width="5%">&nbsp;</td>';
199
        echo '        <td width="5%">&nbsp;</td>';
128
        echo '        <td width="20%" align="right">';
200
        echo '        <td width="20%" align="right">';
129
        if ($email != '') {
201
        if ($email != '') {
130
                echo secure_email(myhtmlentities($email), '<img src="images/email.gif" border="0" height="18" width="17" alt="E-Mail-Adresse" title="E-Mail-Adresse" />', 0);
202
                echo secure_email(myhtmlentities($email), '<img src="images/email.gif" border="0" height="18" width="17" alt="E-Mail-Adresse" title="E-Mail-Adresse" />', 0);
131
        }
203
        }
132
        if ($home != '') {
204
        if ($home != '') {
133
                echo '      <a href="'.myhtmlentities($home).'" target="_blank"><img src="images/homepage.gif" border="0" height="18" width="16" alt="Homepage" title="Homepage" /></a>';
205
                echo '      <a href="'.myhtmlentities($home).'" target="_blank"><img src="images/homepage.gif" border="0" height="18" width="16" alt="Homepage" title="Homepage" /></a>';
134
        }
206
        }
135
        if ($icq != '') {
207
        if ($icq != '') {
136
                echo '      <a href="https://icq.com/people/'.urlencode($icq).'" target="_blank"><img src="https://status.icq.com/online.gif?icq='.urlencode($icq).'&amp;img='.$cfg_icq_statusicon.'" alt="Mein ICQ Status" title="Mein ICQ Status" border="0"></a></a>';
208
                echo '      <a href="https://icq.com/people/'.urlencode($icq).'" target="_blank"><img src="https://status.icq.com/online.gif?icq='.urlencode($icq).'&amp;img='.$cfg_icq_statusicon.'" alt="Mein ICQ Status" title="Mein ICQ Status" border="0"></a></a>';
137
        }
209
        }
138
        echo '</td></tr></table></td></tr>';
210
        echo '</td></tr></table></td></tr>';
139
        echo '<tr><td width="100%" bgcolor="'.$farbe2.'" style="color:'.$farbe10.'" align="left">'.$nachricht.'<br /><br /><font size="2" color="'.$farbe4.'">Dieser Eintrag wurde am '.$ddatum.' um '.$zzeit.' Uhr erstellt.</font></td></tr>';
211
        echo '<tr><td width="100%" bgcolor="'.$farbe2.'" style="color:'.$farbe10.'" align="left">'.$nachricht.'<br /><br /><font size="2" color="'.$farbe4.'">Dieser Eintrag wurde am '.$ddatum.' um '.$zzeit.' Uhr erstellt.</font></td></tr>';
140
        if ($kommentar != '') {
212
        if ($kommentar != '') {
141
                $kommentar = parse_html($kommentar, $this_dir);
213
                $kommentar = parse_html($kommentar, $this_dir);
142
                echo '<tr><td width="100%" bgcolor="'.$farbe5.'" style="color:'.$farbe11.'" align="left"><b>Kommentar des Seiteneigent&uuml;mers:</b><br /><br />'.$kommentar.'</td></tr>';
214
                echo '<tr><td width="100%" bgcolor="'.$farbe5.'" style="color:'.$farbe11.'" align="left"><b>Kommentar des Seiteneigent&uuml;mers:</b><br /><br />'.$kommentar.'</td></tr>';
143
        }
215
        }
144
        echo '</table><br />';
216
        echo '</table><br />';
145
}
217
}
146
 
218
 
147
# --------------------------
219
# --------------------------
148
 
220
 
149
# http://stackoverflow.com/questions/1175096/how-to-find-out-if-you-are-using-https-without-serverhttps
221
# http://stackoverflow.com/questions/1175096/how-to-find-out-if-you-are-using-https-without-serverhttps
150
$is_https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443);
222
$is_https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443);
151
 
223
 
152
$proto = $is_https ? 'https' : 'http';
224
$proto = $is_https ? 'https' : 'http';
153
$inphp = $proto.'://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
225
$inphp = $proto.'://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
154
$this_dir = dirname($inphp).'/';
226
$this_dir = dirname($inphp).'/';
155
 
227
 
156
$seitenkopf = str_replace('{CHARSET}', $charset, $seitenkopf);
228
$seitenkopf = str_replace('{CHARSET}', $charset, $seitenkopf);
157
echo $seitenkopf;
229
echo $seitenkopf;
158
 
230
 
159
// Vor der Vorschau alles prüfen
231
// Vor der Vorschau alles prüfen
160
$err_name      = false;
232
$err_name      = false;
161
$err_nachricht = false;
233
$err_nachricht = false;
162
$err_icq       = false;
234
$err_icq       = false;
163
$err_email     = false;
235
$err_email     = false;
164
$err_homepage  = false;
236
$err_homepage  = false;
165
$err_antispam  = false;
237
$err_antispam  = false;
166
$relfehler     = '';
238
$relfehler     = '';
167
 
239
 
168
$view_vorschau     = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'vorschau');
240
$view_vorschau     = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'vorschau');
169
$view_abschicken   = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'abschicken');
241
$view_abschicken   = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'abschicken');
170
$view_eintrag      = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'eintrag');
242
$view_eintrag      = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'eintrag');
171
$view_freischalten = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'freischalten');
243
$view_freischalten = isset($_REQUEST['action']) && ($_REQUEST['action'] == 'freischalten');
172
 
244
 
173
$name      = (isset($_POST['name'])      ? trim($_POST['name'])      : '');
245
$name      = (isset($_POST['name'])      ? trim($_POST['name'])      : '');
174
$ort       = (isset($_POST['ort'])       ? trim($_POST['ort'])       : '');
246
$ort       = (isset($_POST['ort'])       ? trim($_POST['ort'])       : '');
175
$email     = (isset($_POST['email'])     ? trim($_POST['email'])     : '');
247
$email     = (isset($_POST['email'])     ? trim($_POST['email'])     : '');
176
$homepage  = (isset($_POST['homepage'])  ? trim($_POST['homepage'])  : '');
248
$homepage  = (isset($_POST['homepage'])  ? trim($_POST['homepage'])  : '');
177
$icq       = (isset($_POST['icq'])       ? trim($_POST['icq'])       : '');
249
$icq       = (isset($_POST['icq'])       ? trim($_POST['icq'])       : '');
178
$nachricht = (isset($_POST['nachricht']) ? trim($_POST['nachricht']) : '');
250
$nachricht = (isset($_POST['nachricht']) ? trim($_POST['nachricht']) : '');
179
$antispam  = (isset($_POST['antispam'])  ? trim($_POST['antispam'])  : '');
251
$antispam  = (isset($_POST['antispam'])  ? trim($_POST['antispam'])  : '');
180
$kommentar = '';
252
$kommentar = '';
181
 
253
 
182
$icq = str_replace('-', '', $icq); // XXX-XXX-XXX -> XXXXXXXXX
254
$icq = str_replace('-', '', $icq); // XXX-XXX-XXX -> XXXXXXXXX
183
 
255
 
184
# -----------------------------------
256
# -----------------------------------
185
 
257
 
186
function md5_valid($id, $md5_message) {
258
function md5_valid($id, $md5_message) {
187
        global $table_entries;
259
        global $table_entries;
188
        return md5($table_entries.'-'.$id.'-'.$md5_message.'-GBINT');
260
        return md5($table_entries.'-'.$id.'-'.$md5_message.'-GBINT');
189
}
261
}
190
 
262
 
191
# -----------------------------------
263
# -----------------------------------
192
 
264
 
193
if ($view_freischalten) {
265
if ($view_freischalten) {
194
        $id  = isset($_REQUEST['id'])  ? $_REQUEST['id']  : '';
266
        $id  = isset($_REQUEST['id'])  ? $_REQUEST['id']  : '';
195
        $md5 = isset($_REQUEST['md5']) ? $_REQUEST['md5'] : '';
267
        $md5 = isset($_REQUEST['md5']) ? $_REQUEST['md5'] : '';
196
 
268
 
197
        echo '<h1>G&auml;stebucheintrag freischalten</h1>';
269
        echo '<h1>G&auml;stebucheintrag freischalten</h1>';
198
 
270
 
199
        if (($id == '') || ($md5 == '')) {
271
        if (($id == '') || ($md5 == '')) {
200
                die('<p><font color="'.$farbe6.'">Ein Fehler ist aufgetreten. Fehler in den Parametern.</font></p>'.$seitenfuss);
272
                die('<p><font color="'.$farbe6.'">Ein Fehler ist aufgetreten. Fehler in den Parametern.</font></p>'.$seitenfuss);
201
        }
273
        }
202
 
274
 
203
        $result = mysql_query("SELECT `show`, MD5(`nachricht`) AS `md5` FROM `".mysql_real_escape_string($table_entries)."` WHERE `id` = '".mysql_real_escape_string($id)."'");
275
        $result = db_query("SELECT `show`, MD5(`nachricht`) AS `md5` FROM `".db_real_escape_string($table_entries)."` WHERE `id` = '".db_real_escape_string($id)."'");
204
        $row = mysql_fetch_array($result);
276
        if ($row = db_fetch_object($result)) {
205
        if ($row['show'] == 1) {
277
                if ($row->show == 1) {
206
                echo '<p><font color="'.$farbe8.'">Eintrag ist bereits freigeschaltet!</font></p>';
278
                        echo '<p><font color="'.$farbe8.'">Eintrag ist bereits freigeschaltet!</font></p>';
207
        } else {
279
                } else {
208
                $md5_valid = md5_valid($id, $row['md5']);
280
                        $md5_valid = md5_valid($id, $row->md5);
209
                if (strtolower($md5) == strtolower($md5_valid)) {
281
                        if (strtolower($md5) == strtolower($md5_valid)) {
210
                        mysql_query("UPDATE `".mysql_real_escape_string($table_entries)."` SET `show` = '1' WHERE `id` = '".mysql_real_escape_string($id)."'");
282
                                db_query("UPDATE `".db_real_escape_string($table_entries)."` SET `show` = '1' WHERE `id` = '".db_real_escape_string($id)."'");
211
                        echo '<p><font color="'.$farbe8.'">Eintrag erfolgreich freigeschaltet!</font></p>';
283
                                echo '<p><font color="'.$farbe8.'">Eintrag erfolgreich freigeschaltet!</font></p>';
212
                } else {
284
                        } else {
213
                        echo '<p><font color="'.$farbe6.'">Keine Berechtigung, den Eintrag freizuschalten!</font></p>';
285
                                echo '<p><font color="'.$farbe6.'">Keine Berechtigung, den Eintrag freizuschalten!</font></p>';
214
                }
286
                        }
215
        }
287
                }
-
 
288
        }
216
 
289
 
217
        die($seitenfuss);
290
        die($seitenfuss);
218
}
291
}
219
 
292
 
220
if ($cfg_feature_simple_antispam) {
293
if ($cfg_feature_simple_antispam) {
221
        // NG: erster block der IP adresse hinzufügen
294
        // NG: erster block der IP adresse hinzufügen
222
        $antispam_awaiting = (date('d')-15) * (2+date('m')) * 2 + 1337 + date('Y');
295
        $antispam_awaiting = (date('d')-15) * (2+date('m')) * 2 + 1337 + date('Y');
223
}
296
}
224
 
297
 
225
if (($view_vorschau) || ($view_abschicken)) {
298
if (($view_vorschau) || ($view_abschicken)) {
226
        // Name prüfen
299
        // Name prüfen
227
        if ($name == '') $err_name = true;
300
        if ($name == '') $err_name = true;
228
 
301
 
229
        // Nachricht prüfen
302
        // Nachricht prüfen
230
        if ($nachricht == '') $err_nachricht = true;
303
        if ($nachricht == '') $err_nachricht = true;
231
 
304
 
232
        // ICQ prüfen, wenn angegeben
305
        // ICQ prüfen, wenn angegeben
233
        if ((!preg_match('/^[0-9]+$/', $icq)) && ($icq != '')) $err_icq = true;
306
        if ((!preg_match('/^[0-9]+$/', $icq)) && ($icq != '')) $err_icq = true;
234
 
307
 
235
        // E-Mail-Adresse prüfen, wenn angegeben
308
        // E-Mail-Adresse prüfen, wenn angegeben
236
        if ((!preg_match('/^[a-z0-9\.\-_\+]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is', $email)) && ($email != '')) $err_email = true;
309
        if ((!preg_match('/^[a-z0-9\.\-_\+]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is', $email)) && ($email != '')) $err_email = true;
237
 
310
 
238
        // Homepage prüfen, wenn angegeben
311
        // Homepage prüfen, wenn angegeben
239
        if ($homepage != '') {
312
        if ($homepage != '') {
240
                if (!preg_match('#^http[s]?:\/\/#i', $homepage)) {
313
                if (!preg_match('#^http[s]?:\/\/#i', $homepage)) {
241
                        $homepage = 'http://' . $homepage;
314
                        $homepage = 'http://' . $homepage;
242
                }
315
                }
243
                if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $homepage)) {
316
                if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $homepage)) {
244
                        $err_homepage = true;
317
                        $err_homepage = true;
245
                }
318
                }
246
        }
319
        }
247
 
320
 
248
        // AntiSpam prüfen
321
        // AntiSpam prüfen
249
        if (($cfg_feature_simple_antispam) && ($antispam != $antispam_awaiting)) $err_antispam = true;
322
        if (($cfg_feature_simple_antispam) && ($antispam != $antispam_awaiting)) $err_antispam = true;
250
 
323
 
251
        // Fehler?
324
        // Fehler?
252
        if (($err_name) || ($err_nachricht) || ($err_icq) || ($err_email) || ($err_homepage) || ($err_antispam)) {
325
        if (($err_name) || ($err_nachricht) || ($err_icq) || ($err_email) || ($err_homepage) || ($err_antispam)) {
253
                $relfehler = '<font color="'.$farbe6.'"><u>Fehler</u>: Es wurden nicht alle Pflichtfelder ausgef&uuml;llt oder einige Felder enthalten einen Fehler!</font>';
326
                $relfehler = '<font color="'.$farbe6.'"><u>Fehler</u>: Es wurden nicht alle Pflichtfelder ausgef&uuml;llt oder einige Felder enthalten einen Fehler!</font>';
254
        }
327
        }
255
 
328
 
256
        if (!$relfehler) {
329
        if (!$relfehler) {
257
                $datum = date('Y-m-d');
330
                $datum = date('Y-m-d');
258
                $zeit  = date('H:i:s');
331
                $zeit  = date('H:i:s');
259
                $ip    = get_real_ip(); // $_SERVER['REMOTE_ADDR'];
332
                $ip    = get_real_ip(); // $_SERVER['REMOTE_ADDR'];
260
                $host  = gethostbyaddr($ip);
333
                $host  = gethostbyaddr($ip);
261
                $whois_service = "https://whois.viathinksoft.de/whois/$ip";
334
                $whois_service = "https://whois.viathinksoft.de/whois/$ip";
262
 
335
 
263
                if ($view_vorschau) {
336
                if ($view_vorschau) {
264
                        echo '<h1>G&auml;stebucheintrag Vorschau</h1>';
337
                        echo '<h1>G&auml;stebucheintrag Vorschau</h1>';
265
                        echo '<div align="center">';
338
                        echo '<div align="center">';
266
 
339
 
267
                        anznachricht($name, $ort, $email, $homepage, $icq, $nachricht, $kommentar, $zeit, $datum);
340
                        anznachricht($name, $ort, $email, $homepage, $icq, $nachricht, $kommentar, $zeit, $datum);
268
 
341
 
269
                        echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr>\n";
342
                        echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr>\n";
270
 
343
 
271
                        echo "<td>\n";
344
                        echo "<td>\n";
272
                        echo "<form action=\"$inphp\" method=\"post\" name=\"frm2\">\n";
345
                        echo "<form action=\"$inphp\" method=\"post\" name=\"frm2\">\n";
273
                        echo "<input type=\"hidden\" name=\"action\" value=\"eintrag\" />\n";
346
                        echo "<input type=\"hidden\" name=\"action\" value=\"eintrag\" />\n";
274
                        echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
347
                        echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
275
                        echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
348
                        echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
276
                        echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
349
                        echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
277
                        echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
350
                        echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
278
                        echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
351
                        echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
279
                        echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
352
                        echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
280
                        if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
353
                        if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
281
                        echo "<a href=\"javascript:document.frm2.submit()\"><img src=\"images/buttons/aendern.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"&Auml;ndern\" title=\"&Auml;ndern\" /></a>";
354
                        echo "<a href=\"javascript:document.frm2.submit()\"><img src=\"images/buttons/aendern.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"&Auml;ndern\" title=\"&Auml;ndern\" /></a>";
282
                        echo "</form>";
355
                        echo "</form>";
283
                        echo "</td>";
356
                        echo "</td>";
284
 
357
 
285
                        echo "<td><img src=\"images/spacer.gif\" height=\"1\" width=\"30\" alt=\"\" /></td>";
358
                        echo "<td><img src=\"images/spacer.gif\" height=\"1\" width=\"30\" alt=\"\" /></td>";
286
 
359
 
287
                        echo "<td>\n";
360
                        echo "<td>\n";
288
                        echo "<form action=\"$inphp\" method=\"post\" name=\"frm1\">\n";
361
                        echo "<form action=\"$inphp\" method=\"post\" name=\"frm1\">\n";
289
                        echo "<input type=\"hidden\" name=\"action\" value=\"abschicken\" />\n";
362
                        echo "<input type=\"hidden\" name=\"action\" value=\"abschicken\" />\n";
290
                        echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
363
                        echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
291
                        echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
364
                        echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
292
                        echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
365
                        echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
293
                        echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
366
                        echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
294
                        echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
367
                        echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
295
                        echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
368
                        echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
296
                        if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
369
                        if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
297
                        echo "<a href=\"javascript:document.frm1.submit()\"><img src=\"images/buttons/abschicken.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"Abschicken\" title=\"Abschicken\" /></a>";
370
                        echo "<a href=\"javascript:document.frm1.submit()\"><img src=\"images/buttons/abschicken.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"Abschicken\" title=\"Abschicken\" /></a>";
298
                        echo "</form>";
371
                        echo "</form>";
299
                        echo "</td>";
372
                        echo "</td>";
300
 
373
 
301
                        echo "</tr></table></div>\n";
374
                        echo "</tr></table></div>\n";
302
                } elseif ($view_abschicken) {
375
                } elseif ($view_abschicken) {
303
                        $pass_final_recaptcha = true;
376
                        $pass_final_recaptcha = true;
304
                        if ($cfg_recaptcha_enabled) {
377
                        if ($cfg_recaptcha_enabled) {
305
                                if (!isset($_POST['g-recaptcha-response'])) {
378
                                if (!isset($_POST['g-recaptcha-response'])) {
306
                                        $pass_final_recaptcha = false;
379
                                        $pass_final_recaptcha = false;
307
                                } else {
380
                                } else {
308
                                        $recaptcha = new \ReCaptcha\ReCaptcha($cfg_recaptcha_privkey);
381
                                        $recaptcha = new \ReCaptcha\ReCaptcha($cfg_recaptcha_privkey);
309
                                        $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
382
                                        $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
310
                                        $pass_final_recaptcha = $resp->isSuccess();
383
                                        $pass_final_recaptcha = $resp->isSuccess();
311
                                }
384
                                }
312
                        }
385
                        }
313
 
386
 
314
                        if (!$pass_final_recaptcha) {
387
                        if (!$pass_final_recaptcha) {
315
                                echo '<h1>Bitte Sicherheitsfrage beantworten</h1>';
388
                                echo '<h1>Bitte Sicherheitsfrage beantworten</h1>';
316
                                echo '<p>Bitte tippen Sie den dargestellten Code ab. Dadurch wird sichergestellt dass Sie ein Mensch und kein Spam-Bot sind.</p>';
389
                                echo '<p>Bitte tippen Sie den dargestellten Code ab. Dadurch wird sichergestellt dass Sie ein Mensch und kein Spam-Bot sind.</p>';
317
 
390
 
318
                                echo "<form action=\"$inphp\" method=\"post\" name=\"frm1\">\n";
391
                                echo "<form action=\"$inphp\" method=\"post\" name=\"frm1\">\n";
319
 
392
 
320
                                echo '<div class="g-recaptcha" data-sitekey="'.$cfg_recaptcha_pubkey.'"></div>';
393
                                echo '<div class="g-recaptcha" data-sitekey="'.$cfg_recaptcha_pubkey.'"></div>';
321
                                echo '<script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>';
394
                                echo '<script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>';
322
                                echo '<br>';
395
                                echo '<br>';
323
 
396
 
324
                                echo "<input type=\"hidden\" name=\"action\" value=\"abschicken\" />\n";
397
                                echo "<input type=\"hidden\" name=\"action\" value=\"abschicken\" />\n";
325
                                echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
398
                                echo "<input type=\"hidden\" name=\"name\" value=\"".myhtmlentities($name)."\" />\n";
326
                                echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
399
                                echo "<input type=\"hidden\" name=\"ort\" value=\"".myhtmlentities($ort)."\" />\n";
327
                                echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
400
                                echo "<input type=\"hidden\" name=\"email\" value=\"".myhtmlentities($email)."\" />\n";
328
                                echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
401
                                echo "<input type=\"hidden\" name=\"homepage\" value=\"".myhtmlentities($homepage)."\" />\n";
329
                                echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
402
                                echo "<input type=\"hidden\" name=\"icq\" value=\"".myhtmlentities($icq)."\" />\n";
330
                                echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
403
                                echo "<input type=\"hidden\" name=\"nachricht\" value=\"".myhtmlentities($nachricht)."\" />\n";
331
                                if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
404
                                if ($cfg_feature_simple_antispam) echo "<input type=\"hidden\" name=\"antispam\" value=\"".myhtmlentities($antispam)."\" />\n";
332
                                echo "<a href=\"javascript:document.frm1.submit()\"><img src=\"images/buttons/abschicken.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"Abschicken\" title=\"Abschicken\" /></a>";
405
                                echo "<a href=\"javascript:document.frm1.submit()\"><img src=\"images/buttons/abschicken.gif\" border=\"0\" height=\"31\" width=\"146\" alt=\"Abschicken\" title=\"Abschicken\" /></a>";
333
                                echo "</form>";
406
                                echo "</form>";
334
                        } else {
407
                        } else {
335
                                $daten  = "'".mysql_real_escape_string($name)."'";
408
                                $daten  = "'".db_real_escape_string($name)."'";
336
                                $felder = '`name`';
409
                                $felder = '`name`';
337
 
410
 
338
                                if ($ort != '') {
411
                                if ($ort != '') {
339
                                        $daten  .= ", '".mysql_real_escape_string($ort)."'";
412
                                        $daten  .= ", '".db_real_escape_string($ort)."'";
340
                                        $felder .= ', `ort`';
413
                                        $felder .= ', `ort`';
341
                                }
414
                                }
342
 
415
 
343
                                if ($email != '') {
416
                                if ($email != '') {
344
                                        $daten  .= ", '".mysql_real_escape_string($email)."'";
417
                                        $daten  .= ", '".db_real_escape_string($email)."'";
345
                                        $felder .= ', `email`';
418
                                        $felder .= ', `email`';
346
                                }
419
                                }
347
 
420
 
348
                                if ($homepage != '') {
421
                                if ($homepage != '') {
349
                                        $daten  .= ", '".mysql_real_escape_string($homepage)."'";
422
                                        $daten  .= ", '".db_real_escape_string($homepage)."'";
350
                                        $felder .= ', `homepage`';
423
                                        $felder .= ', `homepage`';
351
                                }
424
                                }
352
 
425
 
353
                                if ($icq != '') {
426
                                if ($icq != '') {
354
                                        $daten  .= ", '".mysql_real_escape_string($icq)."'";
427
                                        $daten  .= ", '".db_real_escape_string($icq)."'";
355
                                        $felder .= ', `icq`';
428
                                        $felder .= ', `icq`';
356
                                }
429
                                }
357
 
430
 
358
                                $daten  .= ", '".mysql_real_escape_string("$datum $zeit")."'";
431
                                $daten  .= ", '".db_real_escape_string("$datum $zeit")."'";
359
                                $felder .= ', `timestamp`';
432
                                $felder .= ', `timestamp`';
360
 
433
 
361
                                $daten  .= ", '".mysql_real_escape_string($ip)."'";
434
                                $daten  .= ", '".db_real_escape_string($ip)."'";
362
                                $felder .= ', `ip`';
435
                                $felder .= ', `ip`';
363
 
436
 
364
                                $daten  .= ", '".mysql_real_escape_string($nachricht)."'";
437
                                $daten  .= ", '".db_real_escape_string($nachricht)."'";
365
                                $felder .= ', `nachricht`';
438
                                $felder .= ', `nachricht`';
366
 
439
 
367
                                $show = $cfg_automatisch_freischalten ? '1' : '0';
440
                                $show = $cfg_automatisch_freischalten ? '1' : '0';
368
                                $daten  .= ", '".mysql_real_escape_string($show)."'";
441
                                $daten  .= ", '".db_real_escape_string($show)."'";
369
                                $felder .= ', `show`';
442
                                $felder .= ', `show`';
370
 
443
 
371
                                $result = mysql_query("INSERT INTO `".mysql_real_escape_string($table_entries)."` ($felder) VALUES ($daten)");
444
                                $result = db_query("INSERT INTO `".db_real_escape_string($table_entries)."` ($felder) VALUES ($daten)");
372
                                $id = mysql_insert_id();
445
                                $id = db_insert_id();
373
 
446
 
374
                                $md5 = md5($nachricht);
447
                                $md5 = md5($nachricht);
375
                                $md5_valid = md5_valid($id, $md5);
448
                                $md5_valid = md5_valid($id, $md5);
376
 
449
 
377
                                // Send mail
450
                                // Send mail
378
 
451
 
379
                                $ger_datum = date('d.m.Y', strtotime($datum));
452
                                $ger_datum = date('d.m.Y', strtotime($datum));
380
 
453
 
381
                                $msg_html  = "<h1>".myhtmlentities($seitentitel)." - G&auml;stebucheintrag</h1>\n";
454
                                $msg_html  = "<h1>".myhtmlentities($seitentitel)." - G&auml;stebucheintrag</h1>\n";
382
                                $msg_html .= "<b>Name:</b> ".myhtmlentities($name)."<br />\n";
455
                                $msg_html .= "<b>Name:</b> ".myhtmlentities($name)."<br />\n";
383
                                $msg_html .= "<b>E-Mail:</b> ".myhtmlentities($email)."<br />\n";
456
                                $msg_html .= "<b>E-Mail:</b> ".myhtmlentities($email)."<br />\n";
384
                                $msg_html .= "<b>Ort:</b> ".myhtmlentities($ort)."<br />\n";
457
                                $msg_html .= "<b>Ort:</b> ".myhtmlentities($ort)."<br />\n";
385
                                $msg_html .= "<b>Homepage:</b> ".myhtmlentities($homepage)."<br />\n";
458
                                $msg_html .= "<b>Homepage:</b> ".myhtmlentities($homepage)."<br />\n";
386
                                $msg_html .= "<b>ICQ:</b> ".myhtmlentities($icq)."<br />\n";
459
                                $msg_html .= "<b>ICQ:</b> ".myhtmlentities($icq)."<br />\n";
387
                                $msg_html .= "<b>Datum:</b> $ger_datum<br />\n";
460
                                $msg_html .= "<b>Datum:</b> $ger_datum<br />\n";
388
                                $msg_html .= "<b>Uhrzeit:</b> $zeit<br />\n";
461
                                $msg_html .= "<b>Uhrzeit:</b> $zeit<br />\n";
389
                                $msg_html .= "<br />\n";
462
                                $msg_html .= "<br />\n";
390
                                $msg_html .= "<b>Nachricht:</b> ".parse_html($nachricht, $this_dir)."<br />\n";
463
                                $msg_html .= "<b>Nachricht:</b> ".parse_html($nachricht, $this_dir)."<br />\n";
391
                                $msg_html .= "<br />\n";
464
                                $msg_html .= "<br />\n";
392
                                $msg_html .= "<i>Datensatz Nr. $id wurde erstellt.</i><br />\n";
465
                                $msg_html .= "<i>Datensatz Nr. $id wurde erstellt.</i><br />\n";
393
                                $msg_html .= "<br />\n";
466
                                $msg_html .= "<br />\n";
394
                                $msg_html .= "<font size=\"+1\"><b>Absenderdaten:</b></font><br />\n";
467
                                $msg_html .= "<font size=\"+1\"><b>Absenderdaten:</b></font><br />\n";
395
                                $msg_html .= "<br />\n";
468
                                $msg_html .= "<br />\n";
396
                                $msg_html .= "<b>IP-Adresse:</b> <a href=\"$whois_service\" target=\"_blank\">$ip</a> ($host)<br />\n";
469
                                $msg_html .= "<b>IP-Adresse:</b> <a href=\"$whois_service\" target=\"_blank\">$ip</a> ($host)<br />\n";
397
                                $msg_html .= "<b>Browser:</b> ".$_SERVER['HTTP_USER_AGENT']."<br />\n";
470
                                $msg_html .= "<b>Browser:</b> ".$_SERVER['HTTP_USER_AGENT']."<br />\n";
398
                                $msg_html .= "<br />\n";
471
                                $msg_html .= "<br />\n";
399
                                if (!$cfg_automatisch_freischalten) {
472
                                if (!$cfg_automatisch_freischalten) {
400
                                        $msg_html .= '<i>Klicken Sie <a href="'."$inphp?action=freischalten&amp;id=$id&amp;md5=".urlencode($md5_valid).'" target="_blank">hier</a>, um den Eintrag freizuschalten. Schalten Sie den Eintrag nicht frei, so bleibt er unver&ouml;ffentlicht.</i><br />'."\n";
473
                                        $msg_html .= '<i>Klicken Sie <a href="'."$inphp?action=freischalten&amp;id=$id&amp;md5=".urlencode($md5_valid).'" target="_blank">hier</a>, um den Eintrag freizuschalten. Schalten Sie den Eintrag nicht frei, so bleibt er unver&ouml;ffentlicht.</i><br />'."\n";
401
                                }
474
                                }
402
 
475
 
403
                                $msg_plain  = "$seitentitel - Gästebucheintrag\n\n";
476
                                $msg_plain  = "$seitentitel - Gästebucheintrag\n\n";
404
                                $msg_plain .= "Name: $name\n";
477
                                $msg_plain .= "Name: $name\n";
405
                                $msg_plain .= "E-Mail: $email\n";
478
                                $msg_plain .= "E-Mail: $email\n";
406
                                $msg_plain .= "Ort: $ort\n";
479
                                $msg_plain .= "Ort: $ort\n";
407
                                $msg_plain .= "Homepage: $homepage\n";
480
                                $msg_plain .= "Homepage: $homepage\n";
408
                                $msg_plain .= "ICQ: $icq\n";
481
                                $msg_plain .= "ICQ: $icq\n";
409
                                $msg_plain .= "Datum: $ger_datum\n";
482
                                $msg_plain .= "Datum: $ger_datum\n";
410
                                $msg_plain .= "Uhrzeit: $zeit\n";
483
                                $msg_plain .= "Uhrzeit: $zeit\n";
411
                                $msg_plain .= "\n";
484
                                $msg_plain .= "\n";
412
                                $msg_plain .= "Nachricht: $nachricht\n";
485
                                $msg_plain .= "Nachricht: $nachricht\n";
413
                                $msg_plain .= "\n";
486
                                $msg_plain .= "\n";
414
                                $msg_plain .= "Datensatz Nr. $id wurde erstellt.\n";
487
                                $msg_plain .= "Datensatz Nr. $id wurde erstellt.\n";
415
                                $msg_plain .= "\n";
488
                                $msg_plain .= "\n";
416
                                $msg_plain .= "Absenderdaten:\n";
489
                                $msg_plain .= "Absenderdaten:\n";
417
                                $msg_plain .= "\n";
490
                                $msg_plain .= "\n";
418
                                $msg_plain .= "IP-Adresse: $ip ($host) - Whois-Lookup at $whois_service\n";
491
                                $msg_plain .= "IP-Adresse: $ip ($host) - Whois-Lookup at $whois_service\n";
419
                                $msg_plain .= "Browser: ".$_SERVER['HTTP_USER_AGENT']."\n";
492
                                $msg_plain .= "Browser: ".$_SERVER['HTTP_USER_AGENT']."\n";
420
                                $msg_plain .= "\n";
493
                                $msg_plain .= "\n";
421
                                if (!$cfg_automatisch_freischalten) {
494
                                if (!$cfg_automatisch_freischalten) {
422
                                        $msg_plain .= "Öffnen Sie $inphp?action=freischalten&id=$id&md5=".urlencode($md5_valid)." , um den Eintrag freizuschalten. Schalten Sie den Eintrag nicht frei, so bleibt er unver&ouml;ffentlicht.\n";
495
                                        $msg_plain .= "Öffnen Sie $inphp?action=freischalten&id=$id&md5=".urlencode($md5_valid)." , um den Eintrag freizuschalten. Schalten Sie den Eintrag nicht frei, so bleibt er unver&ouml;ffentlicht.\n";
423
                                }
496
                                }
424
 
497
 
425
                                $h = new SecureMailer(); // Includes Anti Mail-Header-Injection
498
                                $h = new SecureMailer(); // Includes Anti Mail-Header-Injection
426
 
499
 
427
/*
500
/*
428
                                # http://www.phpbox.de/tipsundtricks/emailsumlaute.php
501
                                # http://www.phpbox.de/tipsundtricks/emailsumlaute.php
429
                                $h->addHeader('Mime-Version', '1.0');
502
                                $h->addHeader('Mime-Version', '1.0');
430
                                $h->addHeader('Content-Type', 'text/html; charset='.$charset);
503
                                $h->addHeader('Content-Type', 'text/html; charset='.$charset);
431
 
504
 
432
                                $h->addHeader('Content-Transfer-Encoding', 'quoted-printable');
505
                                $h->addHeader('Content-Transfer-Encoding', 'quoted-printable');
433
#                               $msg_html = wordwrap($msg_html);
506
#                               $msg_html = wordwrap($msg_html);
434
#                               $msg_html = quoted_printable_encode($msg_html);
507
#                               $msg_html = quoted_printable_encode($msg_html);
435
                                $msg_html = quoted_printable_encode2($msg_html);
508
                                $msg_html = quoted_printable_encode2($msg_html);
436
*/
509
*/
437
 
510
 
438
                                if ($cfg_from_email != '') {
511
                                if ($cfg_from_email != '') {
439
                                        $h->addHeader('From',     $cfg_from_email);
512
                                        $h->addHeader('From',     $cfg_from_email);
440
                                }
513
                                }
441
                                if ($email != '') {
514
                                if ($email != '') {
442
                                        $h->addHeader('Reply-To', $email);
515
                                        $h->addHeader('Reply-To', $email);
443
                                }
516
                                }
444
 
517
 
445
                                if ((isset($adminmail_cc)) && ($adminmail_cc != '')) {
518
                                if ($adminmail_cc != '') {
446
                                        $h->addHeader('CC', $adminmail_cc);
519
                                        $h->addHeader('CC', $adminmail_cc);
447
                                }
520
                                }
448
 
521
 
449
                                $h->addHeader('X-Mailer', 'PHP/'.phpversion());
522
                                $h->addHeader('X-Mailer', 'PHP/'.phpversion());
450
 
523
 
451
                                $subject = "$seitentitel - Gästebucheintrag";
524
                                $subject = "$seitentitel - Gästebucheintrag";
452
                                $subject = SecureMailer::utf8Subject($subject);
525
                                $subject = SecureMailer::utf8Subject($subject);
453
 
526
 
454
#                               $gesendet = $h->sendMail($adminmail, $subject, $msg_html);
527
#                               $gesendet = $h->sendMail($adminmail, $subject, $msg_html);
455
                                $gesendet = $h->sendMailHTMLandPlainMultipart($adminmail, $subject, $msg_html, $msg_plain);
528
                                $gesendet = $h->sendMailHTMLandPlainMultipart($adminmail, $subject, $msg_html, $msg_plain);
456
 
529
 
457
                                if (!$gesendet) {
530
                                if (!$gesendet) {
458
                                        echo '<p><font color="'.$farbe6.'">FEHLER BEIM SENDEN DER MAIL!</font></p>';
531
                                        echo '<p><font color="'.$farbe6.'">FEHLER BEIM SENDEN DER MAIL!</font></p>';
459
                                }
532
                                }
460
 
533
 
461
                                if ($result) {
534
                                if ($result) {
462
                                        echo '<h1 align="center">G&auml;stebucheintrag abgeschickt</h1>
535
                                        echo '<h1 align="center">G&auml;stebucheintrag abgeschickt</h1>
463
 
536
 
464
<div align="center">
537
<div align="center">
465
 
538
 
466
<p><font color="'.$farbe8.'">Ihr G&auml;stebucheintrag wurde erfolgreich eingetragen!</font></p>
539
<p><font color="'.$farbe8.'">Ihr G&auml;stebucheintrag wurde erfolgreich eingetragen!</font></p>
467
 
540
 
468
<p>Bitte beachten Sie, dass der Eintrag erst nach einer Pr&uuml;fung des Seiteninhabers freigeschaltet wird.</p>
541
<p>Bitte beachten Sie, dass der Eintrag erst nach einer Pr&uuml;fung des Seiteninhabers freigeschaltet wird.</p>
469
 
542
 
470
<p><a href="'.$inphp.'"><img src="images/buttons/zurueck.gif" alt="Zur&uuml;ck" title="Zur&uuml;ck" height="31" width="146" border="0" /></a></p>
543
<p><a href="'.$inphp.'"><img src="images/buttons/zurueck.gif" alt="Zur&uuml;ck" title="Zur&uuml;ck" height="31" width="146" border="0" /></a></p>
471
 
544
 
472
</div>';
545
</div>';
473
 
546
 
474
                                } else {
547
                                } else {
475
                                        echo "<p>".mysql_error()."</p>";
548
                                        echo "<p>".db_error()."</p>";
476
                                        echo '<p><font color="'.$farbe6.'">Es ist ein schwerer Fehler aufgetreten. Versuchen Sie es nocheinmal.</font></p>';
549
                                        echo '<p><font color="'.$farbe6.'">Es ist ein schwerer Fehler aufgetreten. Versuchen Sie es nocheinmal.</font></p>';
477
                                }
550
                                }
478
                        }
551
                        }
479
                }
552
                }
480
        }
553
        }
481
}
554
}
482
 
555
 
483
if ($relfehler || $view_eintrag) {
556
if ($relfehler || $view_eintrag) {
484
        echo '<h1>G&auml;stebucheintrag</h1>';
557
        echo '<h1>G&auml;stebucheintrag</h1>';
485
 
558
 
486
        echo '<p>Bitte f&uuml;llen Sie die unteren Felder aus. Die mit <font color="'.$farbe7.'">*</font> gekennzeichneten
559
        echo '<p>Bitte f&uuml;llen Sie die unteren Felder aus. Die mit <font color="'.$farbe7.'">*</font> gekennzeichneten
487
        Felder m&uuml;ssen ausgef&uuml;llt werden! Um Missbrauch zu vermeiden, wird die
560
        Felder m&uuml;ssen ausgef&uuml;llt werden! Um Missbrauch zu vermeiden, wird die
488
        IP-Adresse gespeichert.';
561
        IP-Adresse gespeichert.';
489
        echo ' Die Eintr&auml;ge werden erst nach einer Pr&uuml;fung ver&ouml;ffentlicht.';
562
        echo ' Die Eintr&auml;ge werden erst nach einer Pr&uuml;fung ver&ouml;ffentlicht.';
490
        echo '</p>';
563
        echo '</p>';
491
 
564
 
492
        if (isset($relfehler)) {
565
        if ($relfehler != '') {
493
                echo "<p>$relfehler</p>";
566
                echo "<p>$relfehler</p>";
494
        }
567
        }
495
 
568
 
496
        echo '<br />
569
        echo '<br />
497
 
570
 
498
<form action="'.$inphp.'" method="post" name="frm">
571
<form action="'.$inphp.'" method="post" name="frm">
499
<input type="hidden" name="action" value="'.($cfg_vorschau ? 'vorschau' : 'abschicken').'" />
572
<input type="hidden" name="action" value="'.($cfg_vorschau ? 'vorschau' : 'abschicken').'" />
500
 
573
 
501
<table cellspacing="0" cellpadding="0" border="0">
574
<table cellspacing="0" cellpadding="0" border="0">
502
                <tr>
575
                <tr>
503
                        <td align="right">';
576
                        <td align="right">';
504
 
577
 
505
        if ($err_name) {
578
        if ($err_name) {
506
                echo '<font color="'.$farbe6.'">Name *:</font>';
579
                echo '<font color="'.$farbe6.'">Name *:</font>';
507
        } else {
580
        } else {
508
                echo 'Name <font color="'.$farbe7.'">*</font>:';
581
                echo 'Name <font color="'.$farbe7.'">*</font>:';
509
        }
582
        }
510
 
583
 
511
        echo '</td>
584
        echo '</td>
512
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
585
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
513
                        <td><input maxlength="40" size="66" name="name" value="'.$name.'" /></td>
586
                        <td><input maxlength="40" size="66" name="name" value="'.$name.'" /></td>
514
                </tr>
587
                </tr>
515
                <tr>
588
                <tr>
516
                        <td align="right">Wohnort:</td>
589
                        <td align="right">Wohnort:</td>
517
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
590
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
518
                        <td><input maxlength="40" size="66" name="ort" value="'.$ort.'" /></td>
591
                        <td><input maxlength="40" size="66" name="ort" value="'.$ort.'" /></td>
519
                </tr>
592
                </tr>
520
                <tr>
593
                <tr>
521
                        <td align="right">';
594
                        <td align="right">';
522
 
595
 
523
        if ($err_email) {
596
        if ($err_email) {
524
                echo '<font color="'.$farbe6.'">E-Mail:</font>';
597
                echo '<font color="'.$farbe6.'">E-Mail:</font>';
525
        } else {
598
        } else {
526
                echo 'E-Mail:';
599
                echo 'E-Mail:';
527
        }
600
        }
528
 
601
 
529
        echo '</td>
602
        echo '</td>
530
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
603
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
531
                        <td><input maxlength="40" size="66" name="email" value="'.$email.'" /></td>
604
                        <td><input maxlength="40" size="66" name="email" value="'.$email.'" /></td>
532
                </tr>
605
                </tr>
533
                <tr>
606
                <tr>
534
                        <td align="right">';
607
                        <td align="right">';
535
 
608
 
536
        if ($err_homepage) {
609
        if ($err_homepage) {
537
                echo '<font color="'.$farbe6.'">Homepage:</font>';
610
                echo '<font color="'.$farbe6.'">Homepage:</font>';
538
        } else {
611
        } else {
539
                echo 'Homepage:';
612
                echo 'Homepage:';
540
        }
613
        }
541
 
614
 
542
        echo '</td>
615
        echo '</td>
543
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
616
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
544
                        <td><input maxlength="40" size="66" name="homepage" value="'.$homepage.'" /></td>
617
                        <td><input maxlength="40" size="66" name="homepage" value="'.$homepage.'" /></td>
545
                </tr>
618
                </tr>
546
                <tr>
619
                <tr>
547
                        <td align="right">';
620
                        <td align="right">';
548
 
621
 
549
        if ($err_icq) {
622
        if ($err_icq) {
550
                echo '<font color="'.$farbe6.'">ICQ:</font>';
623
                echo '<font color="'.$farbe6.'">ICQ:</font>';
551
        } else {
624
        } else {
552
                echo 'ICQ:';
625
                echo 'ICQ:';
553
        }
626
        }
554
 
627
 
555
        echo '</td>
628
        echo '</td>
556
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
629
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
557
                        <td><input maxlength="40" size="66" name="icq" value="'.$icq.'" /></td>
630
                        <td><input maxlength="40" size="66" name="icq" value="'.$icq.'" /></td>
558
                </tr>
631
                </tr>
559
                <tr>
632
                <tr>
560
                        <td colspan="3">&nbsp;</td>
633
                        <td colspan="3">&nbsp;</td>
561
                </tr>';
634
                </tr>';
562
 
635
 
563
        if ($cfg_feature_simple_antispam) {
636
        if ($cfg_feature_simple_antispam) {
564
                echo '<tr>
637
                echo '<tr>
565
                        <td align="right">';
638
                        <td align="right">';
566
 
639
 
567
                if ($err_antispam) {
640
                if ($err_antispam) {
568
                        echo '<font color="'.$farbe6.'">Bitte <!--&quot;-->'.$antispam_awaiting.'<!--&quot;--> eingeben *:</font>';
641
                        echo '<font color="'.$farbe6.'">Bitte <!--&quot;-->'.$antispam_awaiting.'<!--&quot;--> eingeben *:</font>';
569
                } else {
642
                } else {
570
                        echo 'Bitte <!--&quot;-->'.$antispam_awaiting.'<!--&quot;--> eingeben <font color="'.$farbe7.'">*</font>:';
643
                        echo 'Bitte <!--&quot;-->'.$antispam_awaiting.'<!--&quot;--> eingeben <font color="'.$farbe7.'">*</font>:';
571
                }
644
                }
572
 
645
 
573
                echo '</td>
646
                echo '</td>
574
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
647
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
575
                        <td><input maxlength="40" size="66" name="antispam" value="'.$antispam.'" /> (AntiSpam-Frage)</td>
648
                        <td><input maxlength="40" size="66" name="antispam" value="'.$antispam.'" /> (AntiSpam-Frage)</td>
576
                </tr>
649
                </tr>
577
 
650
 
578
                <tr>
651
                <tr>
579
                        <td colspan="3">&nbsp;</td>
652
                        <td colspan="3">&nbsp;</td>
580
                </tr>';
653
                </tr>';
581
        }
654
        }
582
 
655
 
583
        echo '<tr>
656
        echo '<tr>
584
                        <td align="right">Smileys:</td>
657
                        <td align="right">Smileys:</td>
585
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
658
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
586
                        <td><script language="JavaScript" type="text/javascript">
659
                        <td><script language="JavaScript" type="text/javascript">
587
                <!--
660
                <!--
588
                function setsmiley(smiley) {
661
                function setsmiley(smiley) {
589
                        frm.nachricht.value = frm.nachricht.value + smiley;
662
                        frm.nachricht.value = frm.nachricht.value + smiley;
590
                }
663
                }
591
                // -->
664
                // -->
592
                </script>';
665
                </script>';
593
 
666
 
594
        $result = mysql_query("SELECT `zeichen`, `image`, `beschreibung` FROM `".mysql_real_escape_string($table_smileys)."` WHERE `enabled` = '1' AND `show_in_editor` = '1' ORDER BY `id` ASC");
667
        $result = db_query("SELECT `zeichen`, `image`, `beschreibung` FROM `".db_real_escape_string($table_smileys)."` WHERE `enabled` = '1' AND `show_in_editor` = '1' ORDER BY `id` ASC");
595
        while ($row = mysql_fetch_object($result)) {
668
        while ($row = db_fetch_object($result)) {
596
                echo "<a href=\"javascript:setsmiley(' ".addslashes(myhtmlentities($row->zeichen))." ')\">".
669
                echo "<a href=\"javascript:setsmiley(' ".addslashes(myhtmlentities($row->zeichen))." ')\">".
597
                '<img src="images/smileys/'.$row->image.'" border="0" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" /></a>&nbsp;';
670
                '<img src="images/smileys/'.$row->image.'" border="0" alt="'.myhtmlentities($row->beschreibung).'" title="'.myhtmlentities($row->beschreibung).'" /></a>&nbsp;';
598
        }
671
        }
599
 
672
 
600
        echo '</td>
673
        echo '</td>
601
                </tr>
674
                </tr>
602
                <tr>
675
                <tr>
603
                        <td colspan="3">&nbsp;</td>
676
                        <td colspan="3">&nbsp;</td>
604
                </tr>
677
                </tr>
605
                <tr>
678
                <tr>
606
                        <td valign="top" align="right">';
679
                        <td valign="top" align="right">';
607
 
680
 
608
        if ($err_nachricht) {
681
        if ($err_nachricht) {
609
                echo '<font color="'.$farbe6.'">Nachricht *:</font>';
682
                echo '<font color="'.$farbe6.'">Nachricht *:</font>';
610
        } else {
683
        } else {
611
                echo 'Nachricht <font color="'.$farbe7.'">*</font>:';
684
                echo 'Nachricht <font color="'.$farbe7.'">*</font>:';
612
        }
685
        }
613
 
686
 
614
        echo '</td>
687
        echo '</td>
615
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
688
                        <td><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
616
                        <td><textarea name="nachricht" rows="5" cols="50">'.$nachricht.'</textarea><!-- wrap="virtual" --></td>
689
                        <td><textarea name="nachricht" rows="5" cols="50">'.$nachricht.'</textarea><!-- wrap="virtual" --></td>
617
                </tr>
690
                </tr>
618
                <tr>
691
                <tr>
619
                        <td colspan="2"><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
692
                        <td colspan="2"><img src="images/spacer.gif" height="1" width="10" alt="" /></td>
620
                        <td><br />
693
                        <td><br />
621
                        <a href="javascript:document.frm.submit()">';
694
                        <a href="javascript:document.frm.submit()">';
622
        if ($cfg_vorschau) {
695
        if ($cfg_vorschau) {
623
                echo '<img height="31" alt="Vorschau" title="Vorschau" src="images/buttons/vorschau.gif" width="146" border="0" />';
696
                echo '<img height="31" alt="Vorschau" title="Vorschau" src="images/buttons/vorschau.gif" width="146" border="0" />';
624
        } else {
697
        } else {
625
                echo '<img src="images/buttons/abschicken.gif" border="0" height="31" width="146" alt="Abschicken" title="Abschicken" />';
698
                echo '<img src="images/buttons/abschicken.gif" border="0" height="31" width="146" alt="Abschicken" title="Abschicken" />';
626
        }
699
        }
627
        echo '</a>              <!--
700
        echo '</a>              <!--
628
                        <img src="images/spacer.gif" height="1" width="30" alt="" />
701
                        <img src="images/spacer.gif" height="1" width="30" alt="" />
629
                        <a href="javascript:document.frm.reset()">
702
                        <a href="javascript:document.frm.reset()">
630
                        <img height="31" alt="L&ouml;schen" title="L&ouml;schen" src="images/buttons/loeschen.gif" width="146" border="0" /></a>
703
                        <img height="31" alt="L&ouml;schen" title="L&ouml;schen" src="images/buttons/loeschen.gif" width="146" border="0" /></a>
631
                        -->
704
                        -->
632
                        </td>
705
                        </td>
633
                </tr>
706
                </tr>
634
        </table>
707
        </table>
635
 
708
 
636
</form>
709
</form>
637
 
710
 
638
<p align="center"><a href="'.$inphp.'">Zur&uuml;ck zu den Eintr&auml;gen</a></p>';
711
<p align="center"><a href="'.$inphp.'">Zur&uuml;ck zu den Eintr&auml;gen</a></p>';
639
} else if ((!$view_vorschau) && (!$view_abschicken) && (!$view_eintrag)) {
712
} else if ((!$view_vorschau) && (!$view_abschicken) && (!$view_eintrag)) {
640
        echo '<h1 align="center">G&auml;stebuch</h1>
713
        echo '<h1 align="center">G&auml;stebuch</h1>
641
 
714
 
642
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
715
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
643
        <tr>
716
        <tr>
644
                <td align="center">[ <a href="'.$inphp.'?action=eintrag">Neuen Eintrag hinzuf&uuml;gen</a> ]</td></tr></table><br />';
717
                <td align="center">[ <a href="'.$inphp.'?action=eintrag">Neuen Eintrag hinzuf&uuml;gen</a> ]</td></tr></table><br />';
645
 
718
 
646
        $cond = ($cfg_unfreigeschaltete_anzegen) ? '' : " WHERE `show` = '1'";
719
        $cond = ($cfg_unfreigeschaltete_anzegen) ? '' : " WHERE `show` = '1'";
647
 
720
 
648
        $result = mysql_query("SELECT * FROM `".mysql_real_escape_string($table_entries)."`$cond");
721
        $result = db_query("SELECT * FROM `".db_real_escape_string($table_entries)."`$cond");
649
        if ($result) $number = mysql_num_rows($result); else $number = 0;
722
        if ($result) $number = db_num_rows($result); else $number = 0;
650
        $max_page = ceil($number / $eintraege_proseite);
723
        $max_page = ceil($number / $eintraege_proseite);
651
 
724
 
652
        $seiten = isset($_REQUEST['seiten']) ? $_REQUEST['seiten'] : 1;
725
        $seiten = isset($_REQUEST['seiten']) ? $_REQUEST['seiten'] : 1;
653
        if (!isset($seiten) || ($seiten > $max_page) || ($seiten < 0)) $seiten = '1';
726
        if (!isset($seiten) || ($seiten > $max_page) || ($seiten < 0)) $seiten = '1';
654
 
727
 
655
        $result = mysql_query("SELECT * FROM `".mysql_real_escape_string($table_entries)."`$cond ORDER BY `id` DESC LIMIT ".($seiten-1)*$eintraege_proseite.",".$eintraege_proseite);
728
        $result = db_query("SELECT * FROM `".db_real_escape_string($table_entries)."`$cond ORDER BY `id` DESC LIMIT ".($seiten-1)*$eintraege_proseite.",".$eintraege_proseite);
656
 
729
 
657
        $keineeintraege = true;
730
        $keineeintraege = true;
658
 
731
 
659
        if ($result) {
732
        if ($result) {
660
                while ($row = mysql_fetch_object($result)) {
733
                while ($row = db_fetch_object($result)) {
661
                        $xry   = explode(' ', $row->timestamp);
734
                        $xry   = explode(' ', $row->timestamp);
662
                        $datum = $xry[0];
735
                        $datum = $xry[0];
663
                        $zeit  = $xry[1];
736
                        $zeit  = $xry[1];
664
                        anznachricht($row->name, $row->ort, $row->email, $row->homepage, $row->icq, $row->nachricht, $row->kommentar, $zeit, $datum);
737
                        anznachricht($row->name, $row->ort, $row->email, $row->homepage, $row->icq, $row->nachricht, $row->kommentar, $zeit, $datum);
665
                        $keineeintraege = false;
738
                        $keineeintraege = false;
666
                }
739
                }
667
        }
740
        }
668
 
741
 
669
        if ($keineeintraege) {
742
        if ($keineeintraege) {
670
                echo '<div align="center">Es sind keine Eintr&auml;ge vorhanden!</div>';
743
                echo '<div align="center">Es sind keine Eintr&auml;ge vorhanden!</div>';
671
        }
744
        }
672
 
745
 
673
        if ((!$keineeintraege) && ($max_page != 1)) {
746
        if ((!$keineeintraege) && ($max_page != 1)) {
674
                echo '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="center"><p class="klein2">Seite: ';
747
                echo '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="center"><p class="klein2">Seite: ';
675
                for ($i=1; $i<=$max_page; $i++) {
748
                for ($i=1; $i<=$max_page; $i++) {
676
                        if ($seiten != $i) {
749
                        if ($seiten != $i) {
677
                                echo "<a href=\"$inphp?seiten=$i\">[$i]</a>\n";
750
                                echo "<a href=\"$inphp?seiten=$i\">[$i]</a>\n";
678
                        } else {
751
                        } else {
679
                                echo "<b>[$i]</b>\n";
752
                                echo "<b>[$i]</b>\n";
680
                        }
753
                        }
681
                }
754
                }
682
                echo '</p></td></tr></table>';
755
                echo '</p></td></tr></table>';
683
        }
756
        }
684
 
757
 
685
}
758
}
686
 
759
 
687
echo '<p align="center">OpenSource PHP-G&auml;stebuch von <a href="http://www.viathinksoft.de/" target="_blank">ViaThinkSoft</a>, Version '.$version.'</p>';
760
echo '<p align="center">OpenSource PHP-G&auml;stebuch von <a href="http://www.viathinksoft.de/" target="_blank">ViaThinkSoft</a>, Version '.$version.'</p>';
688
 
761
 
689
echo $seitenfuss;
762
echo $seitenfuss;
690
 
763
 
691
# ---
764
# ---
692
 
765
 
693
// This is the only function which works with GMX.
766
// This is the only function which works with GMX.
694
// wordwrap+quoted_printable_encode does not work, since it would insert whitespaces.
767
// wordwrap+quoted_printable_encode does not work, since it would insert whitespaces.
695
// http://www.php.net/manual/en/function.quoted-printable-encode.php#97230
768
// http://www.php.net/manual/en/function.quoted-printable-encode.php#97230
696
function quoted_printable_encode2($input, $line_max = 75) {
769
function quoted_printable_encode2($input, $line_max = 75) {
697
        $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
770
        $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
698
        $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
771
        $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
699
        $linebreak = "=0D=0A=\r\n";
772
        $linebreak = "=0D=0A=\r\n";
700
        /* the linebreak also counts as characters in the mime_qp_long_line
773
        /* the linebreak also counts as characters in the mime_qp_long_line
701
         * rule of spam-assassin */
774
         * rule of spam-assassin */
702
        $line_max = $line_max - strlen($linebreak);
775
        $line_max = $line_max - strlen($linebreak);
703
        $escape = "=";
776
        $escape = "=";
704
        $output = "";
777
        $output = "";
705
        $cur_conv_line = "";
778
        $cur_conv_line = "";
706
        $length = 0;
779
        $length = 0;
707
        $whitespace_pos = 0;
780
        $whitespace_pos = 0;
708
        $addtl_chars = 0;
781
        $addtl_chars = 0;
709
 
782
 
710
        // iterate lines
783
        // iterate lines
711
        for ($j=0; $j<count($lines); $j++) {
784
        for ($j=0; $j<count($lines); $j++) {
712
                $line = $lines[$j];
785
                $line = $lines[$j];
713
                $linlen = strlen($line);
786
                $linlen = strlen($line);
714
 
787
 
715
                // iterate chars
788
                // iterate chars
716
                for ($i = 0; $i < $linlen; $i++) {
789
                for ($i = 0; $i < $linlen; $i++) {
717
                        $c = substr($line, $i, 1);
790
                        $c = substr($line, $i, 1);
718
                        $dec = ord($c);
791
                        $dec = ord($c);
719
 
792
 
720
                        $length++;
793
                        $length++;
721
 
794
 
722
                        if ($dec == 32) {
795
                        if ($dec == 32) {
723
                                        // space occurring at end of line, need to encode
796
                                        // space occurring at end of line, need to encode
724
                                        if (($i == ($linlen - 1))) {
797
                                        if (($i == ($linlen - 1))) {
725
                                                $c = "=20";
798
                                                $c = "=20";
726
                                                $length += 2;
799
                                                $length += 2;
727
                                        }
800
                                        }
728
 
801
 
729
                                        $addtl_chars = 0;
802
                                        $addtl_chars = 0;
730
                                        $whitespace_pos = $i;
803
                                        $whitespace_pos = $i;
731
                        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) {
804
                        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) {
732
                                        $h2 = floor($dec/16); $h1 = floor($dec%16);
805
                                        $h2 = floor($dec/16); $h1 = floor($dec%16);
733
                                        $c = $escape . $hex[$h2] . $hex[$h1];
806
                                        $c = $escape . $hex[$h2] . $hex[$h1];
734
                                        $length += 2;
807
                                        $length += 2;
735
                                        $addtl_chars += 2;
808
                                        $addtl_chars += 2;
736
                        }
809
                        }
737
 
810
 
738
                        // length for wordwrap exceeded, get a newline into the text
811
                        // length for wordwrap exceeded, get a newline into the text
739
                        if ($length >= $line_max) {
812
                        if ($length >= $line_max) {
740
                                $cur_conv_line .= $c;
813
                                $cur_conv_line .= $c;
741
 
814
 
742
                                // read only up to the whitespace for the current line
815
                                // read only up to the whitespace for the current line
743
                                $whitesp_diff = $i - $whitespace_pos + $addtl_chars;
816
                                $whitesp_diff = $i - $whitespace_pos + $addtl_chars;
744
 
817
 
745
                                /* the text after the whitespace will have to be read
818
                                /* the text after the whitespace will have to be read
746
                                 * again ( + any additional characters that came into
819
                                 * again ( + any additional characters that came into
747
                                 * existence as a result of the encoding process after the whitespace)
820
                                 * existence as a result of the encoding process after the whitespace)
748
                                 *
821
                                 *
749
                                 * Also, do not start at 0, if there was *no* whitespace in
822
                                 * Also, do not start at 0, if there was *no* whitespace in
750
                                 * the whole line */
823
                                 * the whole line */
751
                                if (($i + $addtl_chars) > $whitesp_diff) {
824
                                if (($i + $addtl_chars) > $whitesp_diff) {
752
                                                $output .= substr($cur_conv_line, 0, (strlen($cur_conv_line) - $whitesp_diff)) . $linebreak;
825
                                                $output .= substr($cur_conv_line, 0, (strlen($cur_conv_line) - $whitesp_diff)) . $linebreak;
753
                                                $i =  $i - $whitesp_diff + $addtl_chars;
826
                                                $i =  $i - $whitesp_diff + $addtl_chars;
754
                                        } else {
827
                                        } else {
755
                                                $output .= $cur_conv_line . $linebreak;
828
                                                $output .= $cur_conv_line . $linebreak;
756
                                        }
829
                                        }
757
 
830
 
758
                                $cur_conv_line = "";
831
                                $cur_conv_line = "";
759
                                $length = 0;
832
                                $length = 0;
760
                                $whitespace_pos = 0;
833
                                $whitespace_pos = 0;
761
                        } else {
834
                        } else {
762
                                // length for wordwrap not reached, continue reading
835
                                // length for wordwrap not reached, continue reading
763
                                $cur_conv_line .= $c;
836
                                $cur_conv_line .= $c;
764
                        }
837
                        }
765
                } // end of for
838
                } // end of for
766
 
839
 
767
                $length = 0;
840
                $length = 0;
768
                $whitespace_pos = 0;
841
                $whitespace_pos = 0;
769
                $output .= $cur_conv_line;
842
                $output .= $cur_conv_line;
770
                $cur_conv_line = "";
843
                $cur_conv_line = "";
771
 
844
 
772
                if ($j<=count($lines)-1) {
845
                if ($j<=count($lines)-1) {
773
                        $output .= $linebreak;
846
                        $output .= $linebreak;
774
                }
847
                }
775
        } // end for
848
        } // end for
776
 
849
 
777
        return trim($output);
850
        return trim($output);
778
} // end quoted_printable_encode
851
} // end quoted_printable_encode
779
 
852