Noch nicht viel geschrieben
<?php
/******************************************************************************
* my little guestbook *
* Copyright (C) 2007 mylittlehomepage.net *
* http://mylittlehomepage.net/ *
******************************************************************************/
/*******************************************************************************
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*******************************************************************************/
// Settings:
// Name of guestbook:
$settings['guestbook_title'] = 'Gästebuch';
// Administration password:
$settings['admin_password'] = 'masterwood';
#$settings['admin_password'] = '21232f297a57a5a743894a0e4a801fc3'; // md5
// Method with that the password is encoded
// (e.g. md5, sha1 or base64_encode; empty if not encoded):
$settings['admin_password_encodation'] = '';
// File in which the entries will be saved (requires CHMOD 666):
$settings['data_file'] = 'gaestebuch.dat';
// How many entries per page?
$settings['entries_per_page'] = 10;
// Admin E-mail for notifications (optional):
$settings['admin_email'] = 'lukas.plazovnik@gmail.com';
// BB-Codes on?
$settings['bbcode'] = true;
// Make links clickable:
$settings['autolink'] = true;
// Block IP address after made entry for how many minutes (0=off):
$settings['block_ip'] = 0;
// Length limitations:
$settings['name_maxlength'] = 40;
$settings['name_word_maxlength'] = 25;
$settings['email_hp_maxlength'] = 50;
$settings['location_maxlength'] = 40;
$settings['location_word_maxlength'] = 25;
$settings['text_maxlength'] = 3000;
$settings['text_minlength'] = 5;
$settings['text_word_maxlength'] = 50;
// If you want to use smilies you can define them here (comment out or delete
// these lines if not used):
$smilies[0]['code'] = ':-)';
$smilies[0]['image'] = 'smilies/smile.png';
$smilies[1]['code'] = ';-)';
$smilies[1]['image'] = 'smilies/wink.png';
$smilies[2]['code'] = ':-D';
$smilies[2]['image'] = 'smilies/biggrin.png';
$smilies[3]['code'] = ':-P';
$smilies[3]['image'] = 'smilies/tongue.png';
$smilies[4]['code'] = ':-|';
$smilies[4]['image'] = 'smilies/neutral.png';
$smilies[5]['code'] = ':-(';
$smilies[5]['image'] = 'smilies/frown.png';
// Language settings:
$lang['lang'] = 'de';
$lang['charset'] = 'iso-8859-1';
$lang['locale'] = array('de', 'de_DE@euro', 'deu');
$lang['time_format'] = "%d. %B %Y, %H:%M";
$lang['new_entry'] = 'neuer Eintrag';
$lang['back'] = 'zurück';
$lang['preview'] = 'Vorschau';
$lang['bold_button'] = 'fett';
$lang['bold_button_title'] = 'fett formatieren: [b]text[/b]';
$lang['italic_button'] = 'kursiv';
$lang['italic_button_title'] = 'kursiv formatieren: [i]text[/i]';
$lang['link_button'] = 'Link';
$lang['link_button_title'] = 'Link einfügen: [link=http://example.com/]Linktext[/link]';
$lang['insert_link_text'] = 'Linktext (optional):';
$lang['insert_link_url'] = 'Link-Adresse (URL):';
$lang['insert_smiley'] = 'Smiley einfügen';
$lang['error'] = 'Fehler:';
$lang['optional'] = '(optional)';
$lang['optional_email_hp'] = '(optional, E-Mail wird nicht angezeigt)';
$lang['name'] = 'Name:';
$lang['email_hp'] = 'E-Mail oder Homepage:';
$lang['location'] = 'Ort:';
$lang['message'] = 'Nachricht:';
$lang['comment'] = 'Kommentar:';
$lang['spam_protection'] = 'Spam-Schutz:';
$lang['spam_protection_sum'] = 'Bitte die beiden Zahlen addieren:';
$lang['password'] = 'Passwort:';
$lang['password_wrong'] = 'Passwort falsch!';
$lang['submit_button'] = 'OK - Eintragen';
$lang['preview_button'] = 'Vorschau';
$lang['error_no_name'] = 'kein Name';
$lang['error_no_text'] = 'keine Nachricht';
$lang['error_email_hp_invalid'] = 'E-Mail/Homepage ungültig';
$lang['error_email_hp_too_long'] = 'E-Mail/Homepage zu lang';
$lang['error_text_too_long'] = 'Nachricht zu lang ([characters] Zeichen) - nur [max_characters] Zeichen möglich';
$lang['error_text_too_short'] = 'Nachricht zu kurz';
$lang['error_word_too_long'] = 'Das Wort "[word]" ist zu lang';
$lang['error_already_made_entry'] = 'Es ist gerade ein Eintrag von der selben IP-Adresse gemacht worden - bitte kurz warten.';
$lang['error_spam'] = 'Spam-Schutz: Summe falsch';
$lang['error_invalid_request'] = 'Ungültige anfrage';
$lang['admin_login'] = 'Admin Login';
$lang['admin_logout'] = 'Log out';
$lang['log_in'] = 'Log in';
$lang['edit_link'] = 'bearbeiten';
$lang['delete_link'] = 'löschen';
$lang['delete_confirm'] = 'Eintrag löschen?';
$lang['previous_page'] = 'vorige Seite';
$lang['next_page'] = 'nächste Seite';
$lang['no_entries_yet'] = 'Es sind noch keine Einträge vorhanden.';
$lang['mail_subject'] = 'Neuer Gästebuch-Eintrag';
##############################################################################
session_start();
// functions:
function bbcode($string)
{
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string);
$string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string);
$string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string);
$string = preg_replace("#\[link\]www\.(.+?)\[/link\]#is", "<a href=\"http://www.\\1\">www.\\1</a>", $string);
$string = preg_replace("#\[link\](.+?)\[/link\]#is", "<a href=\"\\1\">\\1</a>", $string);
$string = preg_replace("#\[link=(.+?)\](.+?)\[/link\]#is", "<a href=\"\\1\">\\2</a>", $string);
$string = preg_replace("#\[url\]www\.(.+?)\[/url\]#is", "<a href=\"http://www.\\1\">www.\\1</a>", $string);
$string = preg_replace("#\[url\](.+?)\[/url\]#is", "<a href=\"\\1\">\\1</a>", $string);
$string = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is", "<a href=\"\\1\">\\2</a>", $string);
return $string;
}
function smilies($string)
{
global $smilies;
foreach($smilies as $smiley)
{
$string = str_replace($smiley['code'], '<img src="'.$smiley['image'].'" alt="'.$smiley['code'].'" />', $string);
}
return $string;
}
function autolink($string)
{
$string = ' ' . $string;
$string = preg_replace("#(^|[\n ])([\w]+?://.*?[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\">\\2</a>", $string);
$string = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\">\\2</a>", $string);
$string = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $string);
$string = substr($string, 1);
return $string;
}
function browse()
{
global $settings, $lang, $p, $entry_count;
if ($entry_count > $settings['entries_per_page'])
{
$new_index_before = $p - 1;
$new_index_after = $p + 1;
$site_count = ceil($entry_count / $settings['entries_per_page']);
?><p class="gb-browse"><?php
if ($new_index_before >= 0) { ?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?p=<?php echo $new_index_before; ?>" title="<?php echo $lang['previous_page']; ?>">«</a> <?php }
if ($new_index_before >= 0 && $new_index_before < $site_count) echo "";
if ($p==0) { ?><span class="caution">1</span> <?php } else { ?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?p=0">1</a> <?php }
for($x=$p-3; $x<$p+4; $x++)
{
if ($x > 0 && $x < $site_count) { if ($x==$p) { ?><span class="caution"><?php echo $x+1; ?></span> <?php } else { ?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?p=<?php echo $x; ?>"><?php echo $x+1; ?></a> <?php } }
}
if ($new_index_after < $site_count) { ?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?p=<?php echo $new_index_after; ?>" title="<?php echo $lang['next_page']; ?>">»</a><?php }
?></p><?php
}
}
function get_spam_check_numbers()
{
$number[0] = rand(1,10);
$number[1] = rand(0,10);
$number[2] = $number[0] + $number[1];
return $number;
}
function spam_check($result, $entered_result)
{
if(intval($result) == intval($entered_result)) return true;
else return false;
}
// get current action:
if(isset($_REQUEST['action'])) $action = $_REQUEST['action'];
// admin login:
if(isset($_POST['login_password']))
{
if($settings['admin_password_encodation']=='')
{
if($_POST['login_password'] == $settings['admin_password'])
{
$login_ok = true;
}
}
else
{
if($settings['admin_password_encodation']($_POST['login_password']) == $settings['admin_password'])
{
$login_ok = true;
}
}
if(isset($login_ok))
{
$_SESSION['admin'] = true;
header("location: ".basename($_SERVER["PHP_SELF"]));
exit;
}
else
{
$action='login';
$login_failed=true;
}
}
// edit entry:
if(isset($_SESSION['admin']) && isset($_GET['edit']))
{
$data = file($settings['data_file']);
$row_count = count($data);
for($row = 0; $row < $row_count; $row++)
{
$parts = explode('|', $data[$row]);
if($parts[0] == $_GET['edit'])
{
$edit = $parts[0];
$time = $parts[1];
$ip = $parts[2];
$name = urldecode($parts[3]);
$email_hp = base64_decode(urldecode($parts[4]));
$location = urldecode($parts[5]);
$text = urldecode($parts[6]);
$comment = urldecode($parts[7]);
break;
}
}
$action='entry';
}
// delete entry:
if(isset($_SESSION['admin']) && isset($_GET['delete']))
{
$data = file($settings['data_file']);
$row_count = count($data);
$fp = fopen($settings['data_file'], 'w+');
flock($fp, 2);
for($row = 0; $row < $row_count; $row++)
{
$parts = explode("|", $data[$row]);
if($parts[0] != $_GET['delete'])
{
fwrite($fp, trim($data[$row])."\n");
}
}
flock($fp, 3);
fclose($fp);
header("location: ".basename($_SERVER["PHP_SELF"]));
exit;
}
// form submitted:
if(isset($_POST['entry']) || isset($_POST['preview']))
{
// import posted data
if(isset($_POST['time'])) $time = $_POST['time'];
if(isset($_POST['edit'])) $edit = $_POST['edit'];
$name = trim($_POST['name']);
$text = trim($_POST['text']);
// remove empty lines:
$text_array = explode("\n", $text);
$text = '';
foreach($text_array as $text_line)
{
$text_line = trim($text_line);
if($text_line!='') $text .= $text_line."\n";
}
$location = trim($_POST['location']);
$email_hp = trim($_POST['email_hp']);
if(isset($_POST['comment']) && isset($_SESSION['admin'])) $comment = trim($_POST['comment']);
else $comment='-';
// Ckeck if IP already posted recently:
if($settings['block_ip']>0 && empty($_SESSION['admin']))
{
$data = file($settings['data_file']);
foreach($data as $line)
{
if(trim($line)!='')
{
$parts = explode("|", $line);
$saved_time = (int)$parts[1];
if(time() < $saved_time+($settings['block_ip']*60) && $_SERVER["REMOTE_ADDR"] == $parts[2] && !isset($_SESSION['admin']))
{
$errors[] = $lang['error_already_made_entry'];
break;
}
}
}
}
if ($name == '') $errors[] = $lang['error_no_name'];
if ($text == '') $errors[] = $lang['error_no_text'];
if(isset($email_hp) && $email_hp != '')
{
if(strlen($email_hp) > $settings['email_hp_maxlength']) $errors[] = $lang['error_email_hp_too_long'];
if(!preg_match("/^[^@]+@.+\.\D{2,5}$/", $email_hp) && strpos($email_hp,'.')===false) $errors[] = $lang['error_email_hp_invalid'];
}
if(strlen($text) > $settings['text_maxlength']) { $lang['error_text_too_long'] = str_replace("[characters]", strlen($text), $lang['error_text_too_long']); $lang['error_text_too_long'] = str_replace("[max_characters]", $settings['text_maxlength'], $lang['error_text_too_long']); $errors[] = $lang['error_text_too_long']; }
if($text != "" && strlen($text) < $settings['text_minlength']) $errors[] = $lang['error_text_too_short'];
// check for too long words:
$text_arr = explode(" ",$name); for ($i=0;$i<count($text_arr);$i++) { trim($text_arr[$i]); $laenge = strlen($text_arr[$i]); if ($laenge > $settings['name_word_maxlength']) {
$error_word_too_long_x = str_replace("[word]", htmlspecialchars(stripslashes(substr($text_arr[$i],0,$settings['name_word_maxlength'])))."...", $lang['error_word_too_long']); $errors[] = $error_word_too_long_x; } }
$text_arr = explode(" ",$location); for ($i=0;$i<count($text_arr);$i++) { trim($text_arr[$i]); $laenge = strlen($text_arr[$i]); if ($laenge > $settings['location_word_maxlength']) {
$error_word_too_long_x = str_replace("[word]", htmlspecialchars(stripslashes(substr($text_arr[$i],0,$settings['location_word_maxlength'])))."...", $lang['error_word_too_long']); $errors[] = $error_word_too_long_x; } }
$text_arr = str_replace("\n", " ", $text);
if ($settings['bbcode'] == true); { $text_arr = preg_replace("#\[b\](.+?)\[/b\]#is", "\\1", $text_arr); $text_arr = preg_replace("#\[i\](.+?)\[/i\]#is", "\\1", $text_arr); $text_arr = preg_replace("#\[u\](.+?)\[/u\]#is", "\\1", $text_arr); $text_arr = preg_replace("#\[link\](.+?)\[/link\]#is", "\\1", $text_arr); $text_arr = preg_replace("#\[link=(.+?)\](.+?)\[/link\]#is", "\\2", $text_arr); }
$text_arr = explode(" ",$text_arr); for ($i=0;$i<count($text_arr);$i++) { trim($text_arr[$i]); $laenge = strlen($text_arr[$i]); if ($laenge > $settings['text_word_maxlength']) {
$error_word_too_long_x = str_replace("[word]", htmlspecialchars(stripslashes(substr($text_arr[$i],0,$settings['text_word_maxlength'])))."...", $lang['error_word_too_long']);$errors[] = $error_word_too_long_x; } }
if(isset($_POST['entry']) && empty($_SESSION['admin']))
{
if(empty($_SESSION['spam_check_session'])) $errors[] = $lang['error_invalid_request'];
if(spam_check($_SESSION['spam_check_session'][2],$_POST['spam_check'])!=true) $errors[] = $lang['error_spam'];
}
// save new entry:
if(empty($errors) && isset($_POST['entry']) && empty($edit))
{
$time = time();
$text = urlencode($text);
$name = urlencode($name);
$email_hp = urlencode(base64_encode($email_hp));
$location = urlencode($location);
if($settings['block_ip']>0) $ip = $_SERVER["REMOTE_ADDR"];
else $ip = '-';
$comment = urlencode($comment);
$entry = uniqid("")."|".$time."|".$ip."|".$name."|".$email_hp."|".$location."|".$text."|".$comment."\n";
$data = file($settings['data_file']);
$c = count($data);
$fp = fopen($settings['data_file'], 'w+');
flock($fp, 2);
fwrite($fp, $entry);
for ($i = 0; $i < $c; $i++) { fwrite($fp, trim($data[$i])."\n"); }
flock($fp, 3);
fclose($fp);
// e-mail notification:
if (isset($settings['admin_email']) && $settings['admin_email'] != "")
{
$emailbody = urldecode($text);
$absender = urldecode($name);
if ($email != "") $absender_email = base64_decode(urldecode($email)); else $absender_email = "no@ema.il";
$header= "From: ".$absender."<".$absender_email.">\n"; $header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: ".$_SERVER['REMOTE_ADDR']."\n";
$header .= "Content-Type: text/plain";
@mail($settings['admin_email'], $lang['mail_subject'], $emailbody, $header);
}
header("location: ".basename($_SERVER["PHP_SELF"]));
exit;
}
// save edited entry:
elseif(isset($_SESSION['admin']) && empty($errors) && isset($_POST['entry']) && isset($edit))
{
$entry_uniqid = $_POST['edit'];
$name = urlencode($name);
$email_hp = urlencode(base64_encode($email_hp));
$location = urlencode($location);
$text = urlencode($text);
$comment = urlencode($comment);
$data = file($settings['data_file']);
$row_count = count($data);
$fp = fopen($settings['data_file'], "w+");
flock($fp, 2);
for ($row = 0; $row < $row_count; $row++)
{
$parts = explode("|", $data[$row]);
if ($parts[0] == $entry_uniqid) { fwrite($fp, $parts[0]."|".$parts[1]."|".$parts[2]."|".$name."|".$email_hp."|".$location."|".$text."|".$comment."\n"); }
else { fwrite($fp, trim($data[$row])."\n"); }
}
flock($fp, 3);
fclose($fp);
header("location: ".basename($_SERVER["PHP_SELF"]));
exit;
}
}
if(empty($action)) $action='main';
// actions before HTML:
switch($action)
{
case 'login':
if(isset($_SESSION['admin']))
{
session_destroy();
header("location: ".basename($_SERVER["PHP_SELF"]));
exit;
}
break;
}
setlocale(LC_ALL, $lang['locale']);
header('Content-Type: text/html; charset='.$lang['charset']);
################################################################################
// Begin HTML output
################################################################################
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang['lang']; ?>">
<head>
<title><?php echo $settings['guestbook_title']; ?></title>
<meta http-equiv="content-type" content="text/html; charset=<?php echo $lang['charset']; ?>" />
<style type="text/css">
<!--
body { color:#000; background:#fff; margin:20px; padding:0px; font-family:verdana,arial,sans-serif; font-size:100.1%; }
h1 { font-family: verdana, arial, sans-serif; font-size: 1.25em; font-weight: bold; }
p, ul { font-family: verdana, arial, sans-serif; font-size:0.82em; line-height:1.45em; }
#nav { margin-bottom:2em; }
p.author { font-style:italic; margin-top:0; margin-bottom:0.4em; padding-bottom:0.2em; border-bottom:1px solid #d5d5d5; max-width:50em; }
p.entry { margin-top:0; padding-top:0; margin-bottom:2em; max-width:50em; }
p.comment { font-style:italic; margin-top:-1.7em; padding:0 0 0 2em; margin-bottom:2em; max-width:50em; color:#606060; }
p.admin { margin-top:-1.7em; text-align:right; max-width:50em;}
p.admin span { font-size:0.82em; }
.caution { font-weight:bold; color:red; }
.small { font-size:0.69em; line-height:1.19em; }
p .small { font-size:0.82em; }
h2.preview-hl { font-size:0.82em; line-height:1.45em; font-weight:bold; color:red; margin-bottom:0; }
input.button { width:45px; font-size: 11px; font-weight:normal; margin: 0px 0px 5px 0px; }
#preview { border:1px dotted red; max-width:41em; padding:10px 10px 0 10px; }
#footer { margin-top:3em; font-size:0.69em; line-height:1.19em; color:#808080; }
#footer a { color:#808080; }
a:link { color: #0000cc; text-decoration: none; }
a:visited { color: #0000cc; text-decoration: none; }
a:hover { color: #0000cc; text-decoration: underline; }
a:active { color: #bb0000; text-decoration: none; }
-->
</style><?php
if(($settings['bbcode']==true || isset($smilies)) && $action=='entry')
{ ?><script type="text/javascript">/* <![CDATA[ */
function bbcode(form,field,v)
{
if (document.selection) // for IE
{
var str = document.selection.createRange().text;
document.forms[form].elements[field].focus();
var sel = document.selection.createRange();
sel.text = "[" + v + "]" + str + "[/" + v + "]";
return;
}
else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // for Mozilla
{
var txtarea = document.forms[form].elements[field];
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var oldScrollTop = txtarea.scrollTop;
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
txtarea.selectionStart = s1.length;
txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
txtarea.scrollTop = oldScrollTop;
txtarea.focus();
return;
}
else insert(form,field,'[' + v + '][/' + v + '] ');
}
function insert(form,field,what)
{
if (document.forms[form].elements[field].createTextRange)
{
document.forms[form].elements[field].focus();
document.selection.createRange().duplicate().text = what;
}
else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // für Mozilla
{
var tarea = document.forms[form].elements[field];
var selEnd = tarea.selectionEnd;
var txtLen = tarea.value.length;
var txtbefore = tarea.value.substring(0,selEnd);
var txtafter = tarea.value.substring(selEnd, txtLen);
var oldScrollTop = tarea.scrollTop;
tarea.value = txtbefore + what + txtafter;
tarea.selectionStart = txtbefore.length + what.length;
tarea.selectionEnd = txtbefore.length + what.length;
tarea.scrollTop = oldScrollTop;
tarea.focus();
}
else
{
document.forms[form].elements[field].value += what;
document.forms[form].elements[field].focus();
}
}
function insert_link(form,field)
{
var link_text='<?php echo addslashes($lang['insert_link_text']); ?>';
var link_target='<?php echo addslashes($lang['insert_link_url']); ?>';
if (document.selection) // for IE
{
var str = document.selection.createRange().text;
document.forms[form].elements[field].focus();
var sel = document.selection.createRange();
var insert_link = prompt(link_target,'http://');
if(sel.text=='' && insert_link!='' && insert_link!=null) str = prompt(link_text,'');
if(insert_link && str!=null)
{
if(str!='')
{
sel.text = "[link=" + insert_link + "]" + str + "[/link]";
}
else
{
sel.text = "[link]" + insert_link + "[/link]";
}
}
return;
}
else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // for Mozilla
{
var txtarea = document.forms[form].elements[field];
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var oldScrollTop = txtarea.scrollTop;
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd);
var s3 = (txtarea.value).substring(selEnd, selLength);
var insert_link = prompt(link_target,'http://');
if(selEnd-selStart==0 && insert_link!='' && insert_link!=null) s2 = prompt(link_text,'');
if(insert_link && s2!=null)
{
if(s2!='')
{
txtarea.value = s1 + '[link=' + insert_link + ']' + s2 + '[/link]' + s3;
var codelength = 14 + insert_link.length + s2.length;
}
else
{
txtarea.value = s1 + '[link]' + insert_link + '[/link]' + s3;
var codelength = 13 + insert_link.length;
}
txtarea.selectionStart = s1.length;
txtarea.selectionEnd = s1.length + codelength;
txtarea.scrollTop = oldScrollTop;
txtarea.focus();
return;
}
}
else insert('[link=http://www.domain.tld/]Link[/link]');
}
/* ]]> */</script><?php
}
if(isset($_SESSION['admin']))
{ ?><script type="text/javascript">/* <![CDATA[ */
function confirm_link(this_link)
{
var confirmed = confirm('<?php echo addslashes($lang['delete_confirm']); ?>');
return confirmed;
}
/* ]]> */</script><?php
}
?></head>
<body>
<h1><?php echo $settings['guestbook_title']; ?></h1>
<p id="nav"><?php if ($action=='main')
{
?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?action=entry">» <?php echo $lang['new_entry']; ?></a><?php
}
else
{
?><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>">« <?php echo $lang['back']; ?></a><?php
}
?></p>
<?php
// actions within HTML output:
switch($action)
{
case 'main':
if(isset($_GET['p'])) $p = $_GET['p'];
$data = file($settings['data_file']);
$entry_count = count($data);
if (empty($p)) $p = 0;
$last = ($p+1) * $settings['entries_per_page'];
if ($last > $entry_count) $last = $entry_count;
if($entry_count == 0)
{
?><p><em><?php echo $lang['no_entries_yet']; ?></em></p><?php
}
for ($i = $p*$settings['entries_per_page']; $i < $last; $i++)
{
unset($email);
unset($hp);
if(trim($data[$i]) != '')
{
$nr = $entry_count -$i;
$parts = explode("|", $data[$i]);
$name = urldecode($parts[3]);
$email_hp = base64_decode(urldecode($parts[4]));
if(preg_match("/^[^@]+@.+\.\D{2,5}$/", $email_hp)) $email = $email_hp;
elseif(trim($email_hp!=''))
{
if(substr($email_hp,0,7) != "http://" && substr($email_hp,0,8) != "https://" && substr($email_hp,0,6) != "ftp://" && substr($email_hp,0,9) != "gopher://" && substr($email_hp,0,7) != "news://") $hp = "http://".$email_hp;
else $hp = $email_hp;
}
$location = urldecode($parts[5]);
$text = urldecode($parts[6]);
if(trim($parts[7])!='-')
{
$comment = urldecode($parts[7]);
$comment = trim(htmlspecialchars(stripslashes($comment)));
$comment = nl2br($comment);
if($settings['autolink'] == true) $comment = autolink($comment);
if($settings['bbcode'] == true) $comment = bbcode($comment);
if(isset($smilies)) $comment = smilies($comment);
}
else $comment = '';
$text = trim(htmlspecialchars(stripslashes($text)));
$text = nl2br($text);
if($settings['autolink'] == true) $text = autolink($text);
if($settings['bbcode'] == true) $text = bbcode($text);
if(isset($smilies)) $text = smilies($text);
?><p class="author"><b><?php if(isset($hp)) { ?><a href="<?php echo htmlspecialchars(stripslashes($hp)); ?>"><?php } echo htmlspecialchars(stripslashes($name)); if(isset($hp)) { ?></a><?php } ?></b>, <?php
if($location != "") { echo htmlspecialchars(stripslashes($location)) . ", "; }
echo strftime($lang['time_format'], $parts[1]);
?></p>
<p class="entry"><?php echo $text; ?></p><?php
if($comment!='')
{
?><p class="comment"><?php echo $comment; ?></p><?php
}
if(isset($_SESSION['admin']))
{
?><p class="admin"><span>[ <a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?edit=<?php echo $parts[0]; ?>" /><?php echo $lang['edit_link']; ?></a> | <a href="<?php echo basename($_SERVER['PHP_SELF']); ?>?delete=<?php echo $parts[0]; ?>" onClick="return confirm_link(this)" /><?php echo $lang['delete_link']; ?></a> ]</span></p><?php
}
}
}
browse();
break;
case 'entry':
if(isset($errors))
{
?><p class="caution"><?php echo $lang['error']; ?></p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
}
elseif(empty($errors) && isset($_POST['preview']))
{
$pr_text = htmlspecialchars(stripslashes($text));
$pr_text = nl2br($pr_text);
if($settings['autolink']==true) $pr_text = autolink($pr_text);
if($settings['bbcode']==true) $pr_text = bbcode($pr_text);
if(isset($smilies)) $pr_text = smilies($pr_text);
$pr_comment = htmlspecialchars(stripslashes($comment));
$pr_comment = nl2br($pr_comment);
if($settings['autolink'] == true) $pr_comment = autolink($pr_comment);
if($settings['bbcode'] == true) $pr_comment = bbcode($pr_comment);
if(isset($smilies)) $pr_comment = smilies($pr_comment);
if(preg_match("/^[^@]+@.+\.\D{2,5}$/", $email_hp)) $email = $email_hp;
elseif(trim($email_hp!=''))
{
if(substr($email_hp,0,7) != "http://" && substr($email_hp,0,8) != "https://" && substr($email_hp,0,6) != "ftp://" && substr($email_hp,0,9) != "gopher://" && substr($email_hp,0,7) != "news://") $hp = "http://".$email_hp;
else $hp = $email_hp;
}
?><h2 class="preview-hl"><?php echo $lang['preview']; ?></h2>
<div id="preview">
<p class="author"><b><?php if(isset($hp)) { ?><a href="<?php echo htmlspecialchars(stripslashes($hp)); ?>"><?php } echo htmlspecialchars(stripslashes($name)); if(isset($hp)) { ?></a><?php } ?></b>, <?php
if ($location != "") { echo htmlspecialchars(stripslashes($location)) . ", "; }
if ($action=="edit") echo strftime($lang['time_format'], $_POST['time']);
else echo strftime($lang['time_format']);
?></p>
<p class="entry"><?php echo $pr_text; ?></p>
<?php if(trim($pr_comment)!='-') { ?><p class="comment"><?php echo $pr_comment; ?></p><?php }
?></div><?php
}
?><form id="entryform" method="post" action="<?php echo basename($_SERVER["PHP_SELF"]); ?>"><div>
<input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>" />
<input type="hidden" name="action" value="<?php echo $action; ?>" />
<?php if(isset($edit)) { ?><input type="hidden" name="edit" value="<?php echo $edit; ?>" /><input type="hidden" name="time" value="<?php echo $time; ?>" /><?php } ?>
<p><b><?php echo $lang['name']; ?></b><br />
<input type="text" name="name" value="<?php if(isset($name)) echo htmlspecialchars(stripslashes($name)); else echo ''; ?>" size="40" maxlength="<?php echo $settings['name_maxlength']; ?>" /></p>
<p><b><?php echo $lang['email_hp']; ?></b><br />
<input type="text" name="email_hp" value="<?php if (isset($email_hp)) echo htmlspecialchars(stripslashes($email_hp)); else echo ''; ?>" size="40" maxlength="<?php echo $settings['email_hp_maxlength']; ?>" /> <span class="small"><?php echo $lang['optional_email_hp']; ?></span></p>
<p><b><?php echo $lang['location']; ?></b><br />
<input type="text" name="location" value="<?php if (isset($location)) echo htmlspecialchars(stripslashes($location)); else echo ''; ?>" size="40" maxlength="<?php echo $settings['location_maxlength']; ?>" /> <span class="small"><?php echo $lang['optional']; ?></span></p>
<p style="margin-bottom:0;padding-bottom:0;"><b><?php echo $lang['message']; ?></b></p>
<table><tr><td>
<textarea id="text" style="float:left;" name="text" cols="65" rows="14"><?php if (isset($text)) echo htmlspecialchars(stripslashes($text)); else echo ""; ?></textarea>
</td>
<td style="vertical-align:top;">
<?php
if($settings['bbcode']==true)
{
?><p style="margin-top:0;"><input class="button" style="font-weight:bold;" type="button" name="bbcode-button" title="<?php echo $lang['bold_button_title']; ?>" value="<?php echo $lang['bold_button']; ?>" onClick="bbcode('entryform','text','b');" /><br />
<input class="button" style="font-style:italic;" type="button" name="bbcode-button" title="<?php echo $lang['italic_button_title']; ?>" value="<?php echo $lang['italic_button']; ?>" onClick="bbcode('entryform','text','i');" /><br />
<input class="button" style="color: #0000ff; text-decoration: underline;" type="button" name="bbcode-button" title="<?php echo $lang['link_button_title']; ?>" value="<?php echo $lang['link_button']; ?>" onClick="insert_link('entryform','text');" /></p><?php
}
if(isset($smilies))
{
?><p><?php
$i=0;
foreach($smilies as $smiley)
{
?><button style="padding:0;" name="smiley" type="button" value="smile" title="<?php echo $lang['insert_smiley']; ?>" onClick="insert('entryform','text','<?php echo $smiley['code']; ?> ');"><img class="smiley" src="<?php echo $smiley['image']; ?>" alt="<?php echo $smiley['code']; ?>" /></button><?php if($i % 2 == 1) echo '<br />';
++$i;
}
?></p><?php
}
else
{
?> <?php
}
?></td></tr></table><?php
if(empty($edit))
{
$_SESSION['spam_check_session'] = get_spam_check_numbers();
?><p><b><?php echo $lang['spam_protection']; ?></b><br />
<?php echo $lang['spam_protection_sum']; ?> <?php echo $_SESSION['spam_check_session'][0]; ?> + <?php echo $_SESSION['spam_check_session'][1]; ?> = <input type="text" name="spam_check" value="" size="5" /></p><?php
}
if(isset($edit))
{
?><p><b><?php echo $lang['comment']; ?></b><br /><textarea name="comment" cols="65" rows="6"><?php if (isset($comment) && trim($comment)!='-') echo htmlspecialchars(stripslashes($comment)); ?></textarea></p><?php
}
?><p><input type="submit" name="entry" value="<?php echo $lang['submit_button']; ?>" /> <input type="submit" name="preview" value="<?php echo $lang['preview_button']; ?>" /></p>
</div></form><?php
break;
case 'login':
if(isset($login_failed))
{
?><p class="caution"><?php echo $lang['password_wrong']; ?></p><?php
}
?><form action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" method="post">
<p><b><?php echo $lang['password']; ?></b><br /><input id="login" type="password" name="login_password" /> <input type="submit" value="<?php echo $lang['log_in']; ?>" /></p>
</form>
<script type="text/javascript">/* <![CDATA[ */
document.getElementById('login').focus();
/* ]]> */</script>
<?php
break;
}
?><p id="footer"><a href="<?php echo basename($_SERVER["PHP_SELF"]); ?>?action=login"><?php if(isset($_SESSION['admin'])) echo $lang['admin_logout']; else echo $lang['admin_login']; ?></a> <a href="/"></a></p>
</body>
</html>
Noch nicht viel geschrieben
Willkommen auf PSD-Tutorials.de
In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.
Nächster neuer Gratisinhalt
Statistik des Forums