Verfasst: Mo 20. Aug 2007, 14:37
Super, jetzt funktionierts. Danke.
Nur das Problem mit der Email und Homepage habe ich noch.
Nur das Problem mit der Email und Homepage habe ich noch.
Das Diskussionsforum zum Open Source Content Management System
https://forum.contenido.org/
Zu sehen hier: www.tim-toupet.deFehler: Bitte Sicherheitscode eingeben!
Beachte! Setze die Rechte des Ordners captcha und die der Datei captcha.php auf 777!Im Root Verzeichniss einen Ordner captcha erstellen
captcha.php / captcha.PNG (groß schreiben) und arial.ttf hineinkopieren.
Das captcha.PNG kann ein beliebiges 140x40 px großes Bild sein, dass als Hintergrundbild für die Zahlen dient. Macht möglichst Buntes und wildes Zeug rein damit man das nicht auslesen kann.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : vpGuestbook 1.7 - Eintrag
* Author : Ingo van Peeren
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 2005-03-14
* Modified : 2005-11-24
************************************************/
// Mailer-Klasse einbinden
cInclude('classes', 'class.phpmailer.php');
// CMS_VARs initialisieren
$ausgabe_cat = "CMS_VALUE[1]";
$ausgabe_cont = "CMS_VALUE[2]";
$tpl_datei = "CMS_VALUE[3]";
$tpl_art = "CMS_VALUE[4]";
$smilies_aktiv = "CMS_VALUE[5]";
$smiliespfad = "CMS_VALUE[6]";
$bbcode_aktiv = "CMS_VALUE[7]";
$userfeld1 = "CMS_VALUE[8]";
$userfeld2 = "CMS_VALUE[9]";
$userfeld3 = "CMS_VALUE[10]";
$email_benachrichtigung = "CMS_VALUE[11]";
$emails_an = "CMS_VALUE[12]";
$cookie_aktiv = "CMS_VALUE[13]";
$cookie_dauer = "CMS_VALUE[14]";
$direkt_sichtbar = "CMS_VALUE[15]";
if ($direkt_sichtbar != 1) $direkt_sichtbar = 0;
$xhtml = "CMS_VALUE[16]";
$bilderpfad = "CMS_VALUE[17]";
$avatare_aktiv = "CMS_VALUE[18]";
// CMS_VARs initialisieren Ende
// eXtended-Template-Klasse (von swelpot) einbinden
// zur Verwendung siehe:
// http://www.contenido.org/forum/viewtopic.php?t=5851
if ($tpl_art == "extended") cInclude('classes', 'class.ExtendedTemplate.php');
else cInclude('classes', 'class.template.php');
if ($xhtml) $einzeltag = " /";
else $einzeltag = "";
$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
// Funktionen
function testURL($url) {
if(eregi("http://", $url)) {
$url = str_replace ("http://", "", $url);
}
if ($url != "") {
$url = "http://".$url;
}
return $url;
}
function cookie_setzen ($dauer) {
global $sess, $vpgblastentry;
$vpgblastentry = time()+$dauer*60;
if ($sess->is_registered("vpgblastentry")) $sess->unregister("vpgblastentry");
$sess->register("vpgblastentry");
}
function vpgb_js () {
$js = "
<script type=\"text/javascript\">
function storeCaret ()
{
if (document.input.entry.createTextRange) document.input.entry.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (icon1, icon2)
{
if (document.getElementById('vpgb_eintrag').entry.createTextRange && document.getElementById('vpgb_eintrag').entry.caretPos)
{
var caretPos = document.getElementById('vpgb_eintrag').entry.caretPos;
selectedtext = caretPos.text;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == '' ? ' '+icon1 + ' ' : ' '+icon1+' ';
caretPos.text = caretPos.text + selectedtext + icon2;
}
else document.getElementById('vpgb_eintrag').entry.value = document.getElementById('vpgb_eintrag').entry.value + ' '+icon1 + ' ' + icon2+' '
document.getElementById('vpgb_eintrag').entry.focus();
}
function DoPrompt(action) {
var revisedMessage;
var post = document.getElementById(\"vpgb_eintrag\");
var currentMessage = post.entry.value;
if (action == \"url\") {
var thisURL = prompt(\"URL der gewünschten Seite angeben\", \"http://\");
var thisTitle = prompt(\"Titel der Seite angeben\", \"Seitentitel\");
var urlBBCode = \"[URL=\"+thisURL+\"]\"+thisTitle+\"[/URL]\";
revisedMessage = currentMessage+urlBBCode;
post.entry.value=revisedMessage;
post.entry.focus();
return;
}
if (action == \"email\") {
var thisEmail = prompt(\"gewünschte E-Mail-Adresse angeben\", \"\");
var emailBBCode = \"[EMAIL]\"+thisEmail+\"[/EMAIL]\";
revisedMessage = currentMessage+emailBBCode;
post.entry.value=revisedMessage;
post.entry.focus();
return;
}
if (action == \"bold\") {
var thisBold = prompt(\"den fetten Text angeben\", \"\");
var boldBBCode = \"[b]\"+thisBold+\"[/b]\";
revisedMessage = currentMessage+boldBBCode;
post.entry.value=revisedMessage;
post.entry.focus();
return;
}
if (action == \"italic\") {
var thisItal = prompt(\"den kursiven Text angeben\", \"\");
var italBBCode = \"[i]\"+thisItal+\"[/i]\";
revisedMessage = currentMessage+italBBCode;
post.entry.value=revisedMessage;
post.entry.focus();
return;
}
if (action == \"underline\") {
var thisUL = prompt(\"den unterstrichenenen Text angeben\", \"\");
var ulBBCode = \"[u]\"+thisUL+\"[/u]\";
revisedMessage = currentMessage+ulBBCode;
post.entry.value=revisedMessage;
post.entry.focus();
return;
}
}
</script>
";
return $js;
}
function smilies_preg_quote($str, $delimiter)
{
$text = preg_quote($str);
$text = str_replace($delimiter, '\\' . $delimiter, $text);
return $text;
}
function smilies_auslesen () {
global $cfgClient, $client, $smiliespfad;
$fcontents = file($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $smiliespfad . 'smiles.pak');
if (is_array($fcontents)) {
$i = 0;
foreach($fcontents as $zeile)
{
$smilies_daten = explode("=+:", trim(addslashes($zeile)));
$smilies[$i]['icon'] = $smilies_daten[0];
$smilies[$i]['erklaerung'] = $smilies_daten[1];
$smilies[$i]['ersetzung'] = $smilies_daten[2];
$i++;
}
}
return $smilies;
}
function smilies_ersetzen ($entry) {
global $smilies, $cfgClient, $client, $smiliespfad;
if (is_array($smilies)) {
foreach ($smilies as $row) {
$ers = "/(?<=.\W|\W.|^\W)" . smilies_preg_quote($row['ersetzung'], "/") . "(?=.\W|\W.|\W$)/";
$entry = preg_replace($ers, '<img src="' . $cfgClient[$client]['upload'] . $smiliespfad. $row['icon'].'" alt="' . $row['erklaerung'] . '" />',$entry);
}
}
return $entry;
}
function smilies_ausgeben ($smilies) {
global $cfgClient, $client, $smiliespfad, $einzeltag;
$code = "";
if (is_array($smilies)) {
foreach($smilies as $smilie)
{
if ($smilie['icon'] != $h) $code .= "<a class=\"smilie\" href=\"javascript:insertAtCaret('" . $smilie['ersetzung'] . "','')\"><img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $smiliespfad . $smilie['icon'] . "\" alt=\"" . $smilie['erklaerung'] . "\"".$einzeltag."></a>";
$h = $smilie['icon'];
}
}
return $code;
}
function bbcode_link ($type) {
$link = "javascript:DoPrompt('".$type."')";
return $link;
}
function bbcode_ersetzen ($text) {
global $xhtml;
if ($xhtml) {
$text = str_ireplace("[b]", "<strong>", $text);
$text = str_ireplace("[/b]", "</strong>", $text);
$text = str_ireplace("[i]", "<em>", $text);
$text = str_ireplace("[/i]", "</em>", $text);
$text = str_ireplace("[u]", "<u>", $text);
$text = str_ireplace("[/u]", "</u>", $text);
}
else {
$text = str_ireplace("[b]", "<b>", $text);
$text = str_ireplace("[/b]", "</b>", $text);
$text = str_ireplace("[i]", "<i>", $text);
$text = str_ireplace("[/i]", "</i>", $text);
$text = str_ireplace("[u]", "<u>", $text);
$text = str_ireplace("[/u]", "</u>", $text);
}
$patterns = array();
$replacements = array();
$patterns[0] = "/\[url\]www.([^\[]*)\[\/url\]/i";
$replacements[0] = "<a href=\"http://www.\\1\" target=_blank>\\1</a>";
$patterns[1] = "/\[url\]([^\[]*)\[\/url\]/i";
$replacements[1] = "<a href=\"\\1\" target=_blank>\\1</a>";
$patterns[2] = "/\[url=([^\[]*)\]([^\[]*)\[\/url\]/i";
$replacements[2] = "<a href=\"\\1\" target=_blank>\\2</a>";
$patterns[3] = "/\[email\]([^\[]*)\[\/email\]/i";
$replacements[3] = "<a href=\"mailto:\\1\">\\1</a>";
$patterns[4] = "/\[email=([^\[]*)\]([^\[]*)\[\/email\]/i";
$replacements[4] = "<a href=\"mailto:\\1\">\\2</a>";
$text = preg_replace($patterns, $replacements, $text);
return $text;
}
function bilder_liste () {
global $cfgClient, $client, $bilderpfad;
$basedir = getcwd();
chdir($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $bilderpfad);
$handle = opendir(".");
while ($file = readdir($handle)) {
if (is_dir($file)) $dirlist[] = $file;
if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
$wdir2 = $basedir . "/";
chdir($wdir2);
if ($filelist) {
asort($filelist);
}
$i = 0;
if (is_array($filelist)) {
while (list ($key, $file) = each ($filelist)) {
$bilder[$i] = $file;
$i++;
}
}
return $bilder;
}
function bilder_radio ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;
$code = "";
if (is_array($bilder)) {
foreach ($bilder as $bild) {
$code .= "<div style=\"float: left;\"><img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $bild . "\" alt=\"$bild\" ".$einzeltag."><br".$einzeltag."><input type=\"radio\" name=\"test\" value=\"$bild\"".$einzeltag."></div>\n";
}
$code .= "<br style=\"clear: all;\"".$einzeltag.">";
}
return $code;
}
function bilder_select ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;
$code = "";
if (is_array($bilder)) {
$code .= "<select size=\"1\" name=\"image\" id=\"image\" onchange=\"document.getElementById('vpgb_image').src= '" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . "' + document.getElementById('vpgb_eintrag').image.options[document.getElementById('vpgb_eintrag').image.selectedIndex].value
\">\n";
$h = 0;
foreach ($bilder as $bild) {
$code .= "<option value=\"$bild\">$bild</option>\n";
if ($h == 0) {
$erstes = $bild;
$h = 1;
}
}
$code .= "</select>\n";
$code .= "<img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $erstes . "\" id=\"vpgb_image\" alt=\"\"".$einzeltag.">\n";
}
return $code;
}
function benachrichtigung ($name, $email, $url, $entry, $iphost, $user1, $user2, $user3, $image) {
global $emails_an, $userfeld1, $userfeld2, $userfeld3;
$mailtext = "Es gibt einen neuen Eintrag im Gästebuch:
Name: ".html_entity_decode($name)."
E-Mail: $email
Homepage: $url
IP/Hostname: $iphost
$userfeld1: ".html_entity_decode($user1)."
$userfeld2: ".html_entity_decode($user2)."
$userfeld3: ".html_entity_decode($user3)."
Bild: $image
Eintrag:
".html_entity_decode($entry)."
";
$mail = new phpmailer();
$mail->AddAddress($emails_an);
$mail->From = $emails_an;
$mail->FromName = "Gästebuch";
$mail->Subject = "Neuer Gästebucheintrag";
$mail->Body = $mailtext;
if(!$mail->Send()){
$notsend .= $lngNews["mailcouldnotbesend1"].$to.$lngNews["mailcouldnotbesend2"] . "<br>";
}
}
function eintragen () {
global $db, $cfg, $client, $lang, $idart, $direkt_sichtbar, $email_benachrichtigung, $smilies_aktiv, $bbcode_aktiv, $bilder, $xhtml;
// Initialisieren der Variablen
$error = "";
// Name Überprüfen
if ($_POST['name'] == "") {
$error = "<b>Bitte geben Sie Ihren Namen an!</b><br><br><u>Hinweis:</u> Die Formularfelder sind leer! Klicken Sie in Ihrem Browser auf die Zurück-Taste oder betätigen Sie die Return-Taste Ihrer Tastatur um Ihre getätigen Eingabe wieder aufzurufen. Klicken Sie auf Abrechen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie müssen einen neuen Sicherheitscode eingeben";
}
else {
$name = htmlentities(strip_tags($_POST['name']));
}
// Email Überprüfen
$email_pattern = '/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i';
if (($_POST['email'] == "") || (preg_match($email_pattern, $_POST['email']))) {
$email = $_POST['email'];
}
else {
$error = "<b>Bitte geben Sie eine gültige Email-Adresse an!</b><br><br><u>Hinweis:</u> Die Formularfelder sind leer! Klicken Sie in Ihrem Browser auf die Zurück-Taste oder betätigen Sie die Return-Taste Ihrer Tastatur um Ihre getätigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie müssen einen neuen Sicherheitscode eingeben";
}
// URL Überprüfen
if ($_POST['url'] != "") {
$url = htmlentities(strip_tags($_POST['url']));
$url = testURL($url);
}
// Eintrag Überprüfen
if ($_POST['entry'] == "") {
$error = "<b>Bitte schreiben Sie einen Eintrag!</b><br><br><u>Hinweis:</u> Die Formularfelder sind leer! Klicken Sie in Ihrem Browser auf die Zurück-Taste oder betätigen Sie die Return-Taste Ihrer Tastatur um Ihre getätigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie müssen einen neuen Sicherheitscode eingeben";
}
else {
$hentry = strip_tags(htmlentities($_POST['entry']));
$entry = $hentry;
if ($smilies_aktiv) $entry = smilies_ersetzen($entry);
if ($bbcode_aktiv) $entry = bbcode_ersetzen($entry);
}
// Bilder prüfen
if (($_POST['image'] == "") || (in_array ($_POST['image'], $bilder))) {
$image = $_POST['image'];
}
// Uservariablen Überprüfen
$user1 = htmlentities(strip_tags($_POST['user1']));
$user2 = htmlentities(strip_tags($_POST['user2']));
$user3 = htmlentities(strip_tags($_POST['user3']));
// IP und Hostname speichern
$iphost = $_SERVER["REMOTE_ADDR"];
$host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
if ($host) $iphost .= " / " . $host;
if(strstr($_POST['entry'],"Phentermine")||
strstr($_POST['entry'],"phentermine")||
strstr($_POST['entry'],"cialis")||
strstr($_POST['entry'],"Cialis")||
strstr($_POST['entry'],"viagra")||
strstr($_POST['entry'],"Viagra")||
strstr($_POST['entry'],"xanax")||
strstr($_POST['entry'],"zoloft")||
strstr($_POST['entry'],"gambling")||
strstr($_POST['entry'],"drug-testing")||
strstr($_POST['entry'],"craps")||
strstr($_POST['entry'],"poker")||
strstr($_POST['entry'],"partypoker")||
strstr($_POST['entry'],"condoms")||
strstr($_POST['entry'],"Very good site! I like it! Thanks!")||
strstr($_POST['entry'],"cancer")||
strstr($_POST['entry'],"free ringtone")||
strstr($_POST['entry'],"atlantic city")||
strstr($_POST['entry'],"credit card")||
strstr($_POST['entry'],"mortgage")||
strstr($_POST['entry'],"influenza")||
strstr($_POST['entry'],"roulette")||
strstr($_POST['entry'],"casino game")||
strstr($_POST['entry'],"housewife picture")||
strstr($_POST['entry'],"valium")||
strstr($_POST['entry'],"free online")||
strstr($_POST['entry'],"meridia")||
strstr($_POST['entry'],"online casino")||
strstr($_POST['entry'],"nice site")||
strstr($_POST['entry'],"sex")||
strstr($_POST['entry'],"meridia")||
strstr($_POST['entry'],"buy")||
strstr($_POST['entry'],"purchase")||
strstr($_POST['entry'],"cheap")||
strstr($_POST['entry'],"hometown")||
strstr($_POST['entry'],"spam")||
strstr($_POST['entry'],"porno")||
strstr($_POST['entry'],"asian")||
strstr($_POST['entry'],"health")||
strstr($_POST['entry'],"movies")||
strstr($_POST['entry'],"abcba")||
strstr($_POST['entry'],"VIAGRA")||
strstr($_POST['entry'],"MONEY")||
strstr($_POST['entry'],"CHEAP")||
strstr($_POST['entry'],"insurance")||
strstr($_POST['entry'],"medical")||
strstr($_POST['entry'],"teen")||
strstr($_POST['entry'],"wedding")||
strstr($_POST['entry'],"pizdets")||
strstr($_POST['entry'],"irlanda")||
strstr($_POST['entry'],"nuda")||
strstr($_POST['entry'],"glasses")||
strstr($_POST['entry'],"violins")||
strstr($_POST['entry'],"handbags")||
strstr($_POST['entry'],"aloe")||
strstr($_POST['entry'],"accessory")||
strstr($_POST['entry'],"phone")||
strstr($_POST['entry'],"testi")||
strstr($_POST['entry'],"lelefono")||
strstr($_POST['entry'],"prodotto")||
strstr($_POST['entry'],"bomboniere")||
strstr($_POST['entry'],"costruire")||
strstr($_POST['entry'],"lettori")||
strstr($_POST['entry'],"alitalia")||
strstr($_POST['entry'],"ontario")||
strstr($_POST['entry'],"Nice site")||
strstr($_POST['entry'],"plymouth")||
strstr($_POST['entry'],"cayman")||
strstr($_POST['entry'],"aloevera")||
strstr($_POST['entry'],"juice")||
strstr($_POST['entry'],"spammers")||
strstr($url,"casino")){
$spam = TRUE;
}
session_start();
//Captcha START
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "MEIN-PERSÖNLICHER-SICHERHEITSCODE");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
}
else {
$error = "Sie haben den Sicherheitscode nicht oder falsch angegeben!</b><br><br><u>Hinweis:</u> Die Formularfelder sind leer! Klicken Sie in Ihrem Browser auf die Zurück-Taste oder betätigen Sie die Return-Taste Ihrer Tastatur um Ihre getätigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie müssen einen neuen Sicherheitscode eingeben";
}
if ($error == "" && !$spam) {
$sql = "INSERT INTO ".$cfg["tab"]["vpguestbook"]." (name, email, url, entry, image, iphost, user1, user2, user3, active, client, lang, date) VALUES ('$name', '$email', '$url', '$entry', '$image', '$iphost', '$user1', '$user2', '$user3', $direkt_sichtbar, $client, $lang, NOW())";
if (! $db->query($sql)) $error = $db->$Error;
elseif ($email_benachrichtigung) benachrichtigung ($name, $email, $url, $hentry, $iphost, $user1, $user2, $user3, $image);
}
return $error;
}
// der eigentliche Eintrag in die Datenbank
// Funktionen Ende
if ($smilies_aktiv) {
// Smilies-Array füllen
$smilies = smilies_auslesen();
}
$bilder = bilder_liste();
$formular_anzeigen = TRUE;
if ($_POST) {
if ($sess->is_registered("vpgblastentry")) {
$lastentry = $GLOBALS["vpgblastentry"];
}
if (($lastentry >= time()) && ($cookie_aktiv)) $fehler = "Bitte nicht mehrmals hintereinander eintragen!";
else $fehler = eintragen();
if ($fehler != "") {
$formular_anzeigen = TRUE;
echo "Fehler: " . $fehler;
}
elseif ($direkt_sichtbar) {
echo "Vielen Dank für Ihren Eintrag!";
$formular_anzeigen = FALSE;
if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
}
else {
echo "Vielen Dank für Ihren Eintrag! Dieser wird nach Prüfung freigeschaltet.";
$formular_anzeigen = FALSE;
if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
}
}
if ($formular_anzeigen) {
if ($smilies_aktiv) {
// Smilies HTML-Ausgabe
$smiliesform = smilies_ausgeben($smilies);
}
if ($smilies_aktiv || $bbcode_aktiv) echo vpgb_js();
if ($avatare_aktiv) {
$imageselect = bilder_select($bilder);
$imageradio = bilder_radio($bilder);
}
$nameform = "<input id=\"name\" type=\"text\" name=\"name\" size=\"18\"".$einzeltag.">";
$emailform = "<input id=\"email\" type=\"text\" name=\"email\" size=\"18\"".$einzeltag.">";
$urlform = "<input id=\"url\" type=\"text\" name=\"url\" size=\"18\"".$einzeltag.">";
if ($userfeld1 != "") $user1form = "<input id=\"user1\" type=\"text\" name=\"user1\" size=\"18\"".$einzeltag.">";
if ($userfeld2 != "") $user2form = "<input id=\"user2\" type=\"text\" name=\"user2\" size=\"18\"".$einzeltag.">";
if ($userfeld3 != "") $user3form = "<input id=\"user3\" type=\"text\" name=\"user3\" size=\"18\"".$einzeltag.">";
$entryform = "<textarea id=\"entry\" name=\"entry\" cols=\"30\" rows=\"10\" onselect=\"storeCaret(this);\" onclick=\"storeCaret(this);\" onkeyup=\"storeCaret(this);\"></textarea>";
$submitform = "<input type=\"submit\" class=\"submit\" name=\"vpgb_submit\" value=\"eintragen\"".$einzeltag.">";
$captchaform = '<img src="http://www.MEINE-DOMAIN.de/captcha/captcha.php" title="Sicherheitscode"><br/>Bitte Sicherheitscode hier eintragen:<br/><input type="text" name="sicherheitscode" size="18">';
if ($tpl_art == "extended") $tpl = new ExtendedTemplate();
else $tpl = new Template;
$tpl->reset();
$tpl->set('s', 'NAMEFORM', $nameform);
$tpl->set('s', 'EMAILFORM', $emailform);
$tpl->set('s', 'URLFORM', $urlform);
$tpl->set('s', 'USER1FORM', $user1form);
$tpl->set('s', 'USER2FORM', $user2form);
$tpl->set('s', 'USER3FORM', $user3form);
$tpl->set('s', 'IMAGERADIO', $imageradio);
$tpl->set('s', 'IMAGESELECT', $imageselect);
$tpl->set('s', 'SMILIESFORM', $smiliesform);
$tpl->set('s', 'ENTRYFORM', $entryform);
$tpl->set('s', 'SUBMITFORM', $submitform);
$tpl->set('s', 'BBFETT', bbcode_link("bold"));
$tpl->set('s', 'BBKURSIV', bbcode_link("italic"));
$tpl->set('s', 'BBUNTERSTRICH', bbcode_link("underline"));
$tpl->set('s', 'BBURL', bbcode_link("url"));
$tpl->set('s', 'BBEMAIL', bbcode_link("email"));
$tpl->set('s', 'CAPTCHA', $captchaform);
?>
<script type="text/javascript">
function submitForm (s) {
s.disabled = true;
s.value = "Vielen Dank!";
return true;
}
</script>
<?php
echo "<form action=\"front_content.php?idcatart=$idcatart\" method=\"post\" id=\"vpgb_eintrag\" onSubmit=\"return submitForm(this.vpgb_submit)\">";
$tpl->generate('templates/' . $tpl_datei);
echo "</form>";
}
?>Dann im Output das hier suchen "MEIN-PERSÖNLICHER-SICHERHEITSCODE" und mit einem Code hinterlegen!Ich musste bei mir den kompletten Webpfad zum Captcha-Image angeben, also so...
Code:
$captchaform = '<img src="http://www.MEINE-DOMAIN.de/captcha/captcha.php" title="Sicherheitscode"><br/>Bitte Sicherheitscode hier eintragen:<br/><input type="text" name="sicherheitscode" size="18">';
Code: Alles auswählen
<?php
session_start();
unset($_SESSION['captcha_spam']);
$text = rand(1000,1000000); //Zufallszahl
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$_SESSION['captcha_spam'] = encrypt($text, "MEIN-PERSÖNLICHER-SICHERHEITSCODE"); //Key
$_SESSION['captcha_spam'] = str_replace("=", "", $_SESSION['captcha_spam']);
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 182, 90, 90); //Farbe
$ttf = $_SERVER['Document_Root']."arial.ttf"; //Schriftart
$ttfsize = 35; //Schriftgrösse
$angle = rand(14,5);
$t_x = rand(25,20);
$t_y = 55;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?> Schreibe mal bitte ob es geklappt hat!In das Guestbook Eintragstemplate dann folgende Zeile einfügen wo es gefällt:
Code:
<label class="fleft" for="name">AntiSpam Sicherheitscode *:</label><br /> {CAPTCHA} <br />

Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : vpGuestbook 1.7 - Eintrag
* Author : Ingo van Peeren
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 2005-03-14
* Modified : 2005-11-24
************************************************/
$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
$sql = "CREATE TABLE IF NOT EXISTS `".$cfg["tab"]["vpguestbook"]."` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(60) NOT NULL default '',
`email` varchar(80) NOT NULL default '',
`url` varchar(80) NOT NULL default '',
`entry` text NOT NULL,
`image` varchar(255) NOT NULL default '',
`comment` text NOT NULL,
`iphost` varchar(60) NOT NULL default '',
`user1` varchar(255) NOT NULL default '',
`user2` varchar(255) NOT NULL default '',
`user3` varchar(255) NOT NULL default '',
`active` int(1) NOT NULL default '1',
`client` int(10) NOT NULL default '0',
`lang` int(10) NOT NULL default '0',
`art` int(10) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `client` (`client`),
KEY `lang` (`lang`),
KEY `art` (`art`)
) TYPE=MyISAM;";
$db->query($sql);
if (! function_exists('dir_list')) {
#Build folder list recursively
function dir_list($dir, $sPrefix, $show_options = 0) {
global $sSelected, $cfgClient, $client;
$old_path = getcwd();
$sPathDir = $cfgClient[$client]["path"]["frontend"].$cfgClient[$client]["upload"].$dir;
if (is_dir($sPathDir)) {
chdir($sPathDir);
$myhandle = opendir('.');
while (($mydir = readdir($myhandle)) !== false) {
if (($mydir != ".") && ($mydir != "..")) {
if (is_dir($mydir)) {
$dirs[] = $dir.$mydir."/";
$prefixs[] = $sPrefix.$mydir;
$ret = dir_list($dir.$mydir."/", ' '.$sPrefix);
foreach ($ret['dirs'] as $key => $value) {
$dirs[] = $value;
$prefixs[] = $ret['prefixs'][$key];
}
chdir($sPathDir);
}
}
}
closedir($myhandle);
}
chdir($old_path);
if ($show_options == 1) {
array_multisort ($dirs, $prefixs);
foreach ($dirs as $key => $value) {
if ($sSelected == $value) {
echo '<option selected value="'.$value.'">'.$prefixs[$key].'</option>';
}
else {
echo '<option value="'.$value.'">'.$prefixs[$key].'</option>';
}
}
}
else {
$ret['dirs'] = $dirs;
$ret['prefixs'] = $prefixs;
return $ret;
}
}
}
$hier = getcwd ();
if ($cfgClient[$client][tpl][path]) chdir($cfgClient[$client][tpl][path]);
else chdir($cfgClient[$client][path][frontend]."templates/");
$handle = opendir(".");
while ($file = readdir($handle)) {
if (is_dir($file)) $dirlist[] = $file;
if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
chdir($hier);
if ($filelist) {
asort($filelist);
}
$selected = "CMS_VALUE[1]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
echo "<tr><td>Templatedatei: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[3]\">";
while (list ($key, $file) = each ($filelist)) {
echo "<option value=\"$file\"";
if ("CMS_VALUE[3]" == $file) echo " selected=\"selected\" ";
echo ">$file</option>";
}
echo "</td></tr>";
echo "<tr>";
echo "<td>Templateklasse:</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[4]\" VALUE=\"normal\"";
if ("CMS_VALUE[4]" == "normal") {
echo "checked=checked";
}
echo "> normale Klasse
<input type=\"radio\" name=\"CMS_VAR[4]\" value=\"extended\"";
if ("CMS_VALUE[4]" == "extended") {
echo "checked=checked";
}
echo "> eXtended-Template-Klasse (<a href=\"http://www.contenido.org/forum/viewtopic.php?t=5851\" target=\"_blank\">von swelpot</a>)</td></tr>";
echo "<tr><td>Smilies benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[5]\" value=\"1\" ";
if("CMS_VALUE[5]" == 1) echo "checked";
echo "/></td></tr>";
echo "<tr><td>Bilderverzeichnis für Smilies:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[6]\" />";
$sSelected = "CMS_VALUE[6]";
dir_list("", '->', 1);
echo "</select></td></tr>";
echo "<tr><td>Avatare benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[18]\" value=\"1\" ";
if("CMS_VALUE[18]" == 1) echo "checked";
echo "/></td></tr>";
echo "<tr><td>Bilderverzeichnis für Avatare:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[17]\" />";
$sSelected = "CMS_VALUE[17]";
dir_list("", '->', 1);
echo "</select></td></tr>";
echo "<tr><td>BB-Code aktiv:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[7]\" value=\"1\" ";
if("CMS_VALUE[7]" == 1) echo "checked";
echo "/></td></tr>";
echo "<tr><td>Benutzerfeld 1:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"30\" /></td></tr>";
echo "<tr><td>Benutzerfeld 2:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=\"30\" /></td></tr>";
echo "<tr><td>Benutzerfeld 3:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\" size=\"30\" /></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Emailbenachrichtigung: ";
echo "Ja <input type=\"checkbox\" NAME=\"CMS_VAR[11]\" VALUE=\"1\" ";
if("CMS_VALUE[11]" == 1){echo "checked=checked"; };
echo "> An:</td><td>";
echo "<input type=\"text\" NAME=\"CMS_VAR[12]\" VALUE=\"CMS_VALUE[12]\"></td></tr>";
echo "<tr>";
echo "<td width=\"202\">Cookie gegen doppelte Einträge :</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[13]\"
VALUE=\"0\"";
if("CMS_VALUE[13]" ==0){echo "checked=checked";};echo"> aus
<input type=\"radio\" name=\"CMS_VAR[6]\" value=\"1\"";
if("CMS_VALUE[13]" ==1){echo "checked=checked";};echo"> an</td></tr>";
echo "<tr>";
echo"<td width=\"202\">Cookie Lebensdauer (in Minuten) :
</td><td><input type=\"text\" name=\"CMS_VAR[14]\" value=\"CMS_VALUE[14]\" ></td></tr>";
echo "<tr><td>Einträge direkt sichtbar?:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[15]\" value=\"1\" ";
if("CMS_VALUE[15]" == 1) echo "checked";
echo "/></td></tr>";
echo "<tr>";
echo "<td width=\"202\">Ausgaben als valides :</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[16]\"
VALUE=\"0\"";
if("CMS_VALUE[16]" == 0){echo "checked=checked";};echo"> HTML
<input type=\"radio\" name=\"CMS_VAR[16]\" value=\"1\"";
if("CMS_VALUE[16]" == 1){echo "checked=checked";};echo"> XHTML</td></tr>";
echo "</table>";
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : vpGuestbook 1.7 - Ausgabe
* Author : Ingo van Peeren
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 2005-03-14
* Modified : 2005-11-24
************************************************/
$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
$sql = "CREATE TABLE IF NOT EXISTS `".$cfg["tab"]["vpguestbook"]."` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(60) NOT NULL default '',
`email` varchar(80) NOT NULL default '',
`url` varchar(80) NOT NULL default '',
`entry` text NOT NULL,
`image` varchar(255) NOT NULL default '',
`comment` text NOT NULL,
`iphost` varchar(60) NOT NULL default '',
`user1` varchar(255) NOT NULL default '',
`user2` varchar(255) NOT NULL default '',
`user3` varchar(255) NOT NULL default '',
`active` int(1) NOT NULL default '1',
`client` int(10) NOT NULL default '0',
`lang` int(10) NOT NULL default '0',
`art` int(10) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `client` (`client`),
KEY `lang` (`lang`),
KEY `art` (`art`)
) TYPE=MyISAM;";
$db->query($sql);
if (! function_exists('dir_list')) {
#Build folder list recursively
function dir_list($dir, $sPrefix, $show_options = 0) {
global $sSelected, $cfgClient, $client;
$old_path = getcwd();
$sPathDir = $cfgClient[$client]["path"]["frontend"].$cfgClient[$client]["upload"].$dir;
if (is_dir($sPathDir)) {
chdir($sPathDir);
$myhandle = opendir('.');
while (($mydir = readdir($myhandle)) !== false) {
if (($mydir != ".") && ($mydir != "..")) {
if (is_dir($mydir)) {
$dirs[] = $dir.$mydir."/";
$prefixs[] = $sPrefix.$mydir;
$ret = dir_list($dir.$mydir."/", ' '.$sPrefix);
foreach ($ret['dirs'] as $key => $value) {
$dirs[] = $value;
$prefixs[] = $ret['prefixs'][$key];
}
chdir($sPathDir);
}
}
}
closedir($myhandle);
}
chdir($old_path);
if ($show_options == 1) {
array_multisort ($dirs, $prefixs);
foreach ($dirs as $key => $value) {
if ($sSelected == $value) {
echo '<option selected value="'.$value.'">'.$prefixs[$key].'</option>';
}
else {
echo '<option value="'.$value.'">'.$prefixs[$key].'</option>';
}
}
}
else {
$ret['dirs'] = $dirs;
$ret['prefixs'] = $prefixs;
return $ret;
}
}
}
$hier = getcwd ();
if ($cfgClient[$client][tpl][path]) chdir($cfgClient[$client][tpl][path]);
else chdir($cfgClient[$client][path][frontend]."templates/");
$handle = opendir(".");
while ($file = readdir($handle)) {
if (is_dir($file)) $dirlist[] = $file;
if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
chdir($hier);
if ($filelist) {
asort($filelist);
}
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
echo "<tr valign=\"top\"><td>Ausgabe mandantenspezifisch: ";
echo "</td><td><input type=\"checkbox\" NAME=\"CMS_VAR[1]\" VALUE=\"1\" ";
if("CMS_VALUE[1]" == 1){echo "checked=checked"; };
echo ">";
echo "</td></tr>";
echo "<tr valign=\"top\"><td>Ausgabe sprachspezifisch: ";
echo "</td><td><input type=\"checkbox\" NAME=\"CMS_VAR[2]\" VALUE=\"1\" ";
if("CMS_VALUE[2]" == 1){echo "checked=checked"; };
echo ">";
echo "</td></tr>";
echo "<tr><td>Templatedatei: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[3]\">";
while (list ($key, $file) = each ($filelist)) {
echo "<option value=\"$file\"";
if ("CMS_VALUE[3]" == $file) echo " selected=\"selected\" ";
echo ">$file</option>";
}
echo "</td></tr>";
echo "<tr>";
echo "<td>Templateklasse:</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[4]\" VALUE=\"normal\"";
if ("CMS_VALUE[4]" == "normal") {
echo "checked=checked";
}
echo "> normale Klasse
<input type=\"radio\" name=\"CMS_VAR[4]\" value=\"extended\"";
if ("CMS_VALUE[4]" == "extended") {
echo "checked=checked";
}
echo "> eXtended-Template-Klasse (<a href=\"http://www.contenido.org/forum/viewtopic.php?t=5851\" target=\"_blank\">von swelpot</a>)</td></tr>";
echo "<tr><td>Bilderverzeichnis für Avatare:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[5]\">";
$sSelected = "CMS_VALUE[5]";
dir_list("", '->', 1);
echo "</select></td></tr>";
echo "<tr><td>Einträge pro Seite:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[6]\">";
for ($i = 1; $i < 41; $i++) {
echo "<option value=\"$i\"";
if ("CMS_VALUE[6]" == $i) echo " selected=\"selected\" ";
echo ">$i</option>";
}
echo "</select></td></tr>";
echo "<tr>";
echo "<td>Seitennavigation mit</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[7]\" VALUE=\"0\"";
if ("CMS_VALUE[7]" == 0) {
echo "checked=checked";
} ;
echo"> Seitenzahlen
<input type=\"radio\" name=\"CMS_VAR[7]\" value=\"1\"";
if ("CMS_VALUE[7]" == 1) {
echo "checked=checked";
} ;
echo"> Einträgen</td></tr>";
echo "<tr><td>Datumsformat DATE1 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"30\" /></td></tr>";
echo "<tr><td>Datumsformat DATE2 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=\"30\" /></td></tr>";
echo "<tr><td>Spracheinstellungen für das Datum (z.B. \"de_DE\"):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\" size=\"30\" /></td></tr>";
echo "<tr><td>Längste Zeichenfolge:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[11]\" value=\"CMS_VALUE[11]\" size=\"30\" /></td></tr>";
echo "<tr><td>Text \"vor\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[12]\" value=\"CMS_VALUE[12]\" size=\"30\" /></td></tr>";
echo "<tr><td>Text \"zurück\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[13]\" value=\"CMS_VALUE[13]\" size=\"30\" /></td></tr>";
echo "</table>";
Code: Alles auswählen
<td colspan=2><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>