vpGuestbook - Gästebuchmodul für die 4.6.x

grubi
Beiträge: 9
Registriert: Fr 4. Aug 2006, 08:58
Wohnort: Baden, Österreich
Kontaktdaten:

Beitrag von grubi » Mi 28. Feb 2007, 12:06

Danke, mit viel Spielerei und Fehlersuche hat es dann doch funktioniert. :?
Wie üblich eben. :D

MediaMuchacho
Beiträge: 71
Registriert: Do 3. Nov 2005, 15:01
Wohnort: Ulm
Kontaktdaten:

Captcha Implementation

Beitrag von MediaMuchacho » Mi 28. Feb 2007, 14:53

*edit* es bringt tatsächlich garnix...selbst wenn man das mit dem bad_behaviour kombiniert...
Tipp: baut eine offensichtliche Frage ein die der User beantworten muss...sowas wie "Welche Farbe hat dieses Bild" das Bild ist dann Grün und gut ist.
Das kriegt kein Bot hin ;-)
*edit ende*

Hi zusammen

Also ich habe mich auch nochmal mit der Captcha Problematik auseinander gesetzt und man braucht es nicht unbedingt als class.captcha.php via cInclude einbauen.
Ganz generell: haltet euch an das Tutorial auf http://www.stoppt-den-spam.info/webmast ... cript.html

Meine Variante:

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.

Dann in den Bereich OUTPUT
an passender Stelle folgende Variable hinzufügen. Bei mir steht Sie unterhalb von

Code: Alles auswählen

$submitform = "<input type=\"submit\" class=\"submit\" name=\"vpgb_submit\" value=\"eintragen\"".$einzeltag.">";
Das hier einfügen:

Code: Alles auswählen

$captchaform = '<img src="captcha/captcha.php" border="0" title="Sicherheitscode"><br/>Bitte Sicherheitscode hier eintragen:<br/><input type="text" name="sicherheitscode" size="18">';
Unterhalb von

Code: Alles auswählen

  $tpl->set('s', 'BBEMAIL',       bbcode_link("email"));
Das einfügen:

Code: Alles auswählen

  $tpl->set('s', 'CAPTCHA',       $captchaform);
Und Unterhalb von:

Code: Alles auswählen

// IP und Hostname speichern
  $iphost = $_SERVER["REMOTE_ADDR"];
  $host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
  if ($host) $iphost .= " / " . $host;
Das hier einfügen:

Code: Alles auswählen

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"], "DEINEN SICHERHEITSCODE HIER EINTRAGEN");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
    unset($_SESSION['captcha_spam']);
    //Captcha ENDE

// DATENBANK EINTRAG HIER EINFÜGEN

}
ACHTUNG

Code: Alles auswählen

$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "DEINEN SICHERHEITSCODE HIER EINTRAGEN");
Hier muss der selbe Sicherheitscode eingetragen werden wie in der captcha.php und nehmt da einen anderen als den Beispielcode.

Der Datenbank Eintrag könnte so ausschauen:

Code: Alles auswählen

// der eigentliche Eintrag in die Datenbank
  
  if ($error == "") {
    $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);
  }
}
else { $error = "Bitte geben Sie den AntiSpam Sicherheitscode korrekt ein";}
Achtung bei den geschweiften Klammern in meinem Fall is die vorletzte geschweifte Klammer die If-Captcha Klammer...


In das Guestbook Eintragstemplate dann folgende Zeile einfügen wo es gefällt:

Code: Alles auswählen

<label class="fleft" for="name">AntiSpam Sicherheitscode *:</label><br /> {CAPTCHA} <br />
Media in Vita - Medienagentur
Webdesign, Programmierung, Design

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Captcha Implementation

Beitrag von derSteffen » Sa 10. Mär 2007, 19:39

Kann mir bitte jemand helfen?

Ich bekomme diese Captcha nicht zum laufen. Also eigentlich läuft alles, das Captcha wird ausgegeben und gerneriert, aber es wird nicht überprüft, ob der Sicherheitscode übereinstimmt. Wahrscheinlich liegt es einfach nur an meiner If-Abfrage. Könnte jemand seinen Output veröffentlichen, wo das Captcha abgefragt wird?

Vielen Dank!

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Captcha Implementation

Beitrag von derSteffen » So 11. Mär 2007, 14:49

So hier meine Lösung!

Ich habe auch noch die Spam-Liste ins Gästebuch integriert und mit einigen Begriffen erweitert!

Ich musste bei mir den kompletten Webpfad zum Captcha-Image angeben, also so...

Code: Alles auswählen

 $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">';
Und dann habe ich die Fehler-Ausgabe noch nach meinen persönlichen Bedürfnissen angepasst.

Und hier der Code

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&uuml;ck-Taste oder bet&auml;tigen Sie die Return-Taste Ihrer Tastatur um Ihre get&auml;tigen Eingabe wieder aufzurufen. Klicken Sie auf Abrechen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie m&uuml;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&uuml;ck-Taste oder bet&auml;tigen Sie die Return-Taste Ihrer Tastatur um Ihre get&auml;tigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie m&uuml;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&uuml;ck-Taste oder bet&auml;tigen Sie die Return-Taste Ihrer Tastatur um Ihre get&auml;tigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie m&uuml;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&uuml;ck-Taste oder bet&auml;tigen Sie die Return-Taste Ihrer Tastatur um Ihre get&auml;tigen Eingabe wieder aufzurufen. Nun brauchen Sie nur noch die fehlerhafte Eingabe korrigieren. <b><u>ACHTUNG:</u></b> Sie m&uuml;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&uuml;r Ihren Eintrag!";
    $formular_anzeigen = FALSE;
    if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
  }
  else {
    echo "Vielen Dank f&uuml;r Ihren Eintrag! Dieser wird nach Pr&uuml;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>";
}

?>

E. Hut
Beiträge: 15
Registriert: Di 14. Mär 2006, 17:58
Kontaktdaten:

Gästebuch-Eintrag über Suche auffindbar?

Beitrag von E. Hut » Mo 12. Mär 2007, 21:11

Hallo,

auch ich möchte mich für das tolle Modul bedanken.

Auf eine Frage konnte ich nach Suchlektüre keine Antwort finden, vermute aber derzeit, daß die Antwort wohl negativ ausfallen wird: kann der Gästebuch-Inhalt über die Suche indizierbar gemacht werden?

Eigentlich gilt das für einige Module, z.B. auch comments.

Gruß,

E.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Gästebuch-Eintrag über Suche auffindbar?

Beitrag von Dodger77 » Mo 12. Mär 2007, 21:15

E. Hut hat geschrieben:Auf eine Frage konnte ich nach Suchlektüre keine Antwort finden, vermute aber derzeit, daß die Antwort wohl negativ ausfallen wird: kann der Gästebuch-Inhalt über die Suche indizierbar gemacht werden?
Nein, indiziert über die DB-Tabelle "con_keywords" können die Gästebucheinträge nicht werden. Evtl. könnte man anstatt dessen aber eine Volltextsuche über die Tabelle laufen lassen, wenn man das für sinnvoll erachtet.

martius1999
Beiträge: 19
Registriert: Do 22. Mär 2007, 12:08
Wohnort: manubach (nähe bingen/rhein)
Kontaktdaten:

installation guestbook 1.9 auf contenido 4.6.15

Beitrag von martius1999 » Do 22. Mär 2007, 12:55

hallo,

danke für die schöne pdf datei. da kann man eigentlich nichts falsch machen - vorausgesetzt man hat schon etwas erfahrung mit contenido 8)

ich habe den satz: "im mandantenverzeichnis gibt es einen ordner "templates" in den die mitgelieferten beispieltemplates ... abgelegt werden können.", gefunden, weiss aber nicht, was das mandantenverzeichnis ist. bei mir gibt es einen ordner cms, von dem ich vermute, dass er gemeint ist.

momentan verstehe ich das ganze so: templates per ftp hochladen, module per backend anlegen und php code reinkopieren. dann noch die smilies irgendwohin kopieren, vermutlich in: cms/upload/smilies. letzteres verzeichnis muss wohl angelegt werden und dann darin noch die datei smilies.bak erzeugen.
ist das so halbwegs richtig?

gruss, martin

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: installation guestbook 1.9 auf contenido 4.6.15

Beitrag von Dodger77 » Do 22. Mär 2007, 13:19

martius1999 hat geschrieben:ist das so halbwegs richtig?
Ja, richtig. Einfach mal ausprobieren und wenn es Probleme gibt, hier posten.

Neologist
Beiträge: 11
Registriert: Do 30. Mär 2006, 11:34
Wohnort: Moritzburg
Kontaktdaten:

Beitrag von Neologist » Fr 23. Mär 2007, 11:21

Ich bekomme das mit dem Spamschutz einfach nicht hin.
Nachdem ich in der captcha.php die absoluten Pfade angegeben habe, funktioniert wenigstens die Generierung von dem Bild. Leider wird irgendwie nicht überprüft, ob die Eingabe auch tatsächlich stimmt, sodass weiterhin ein Haufen Spameinträge im Gästebuch auftauchen.
Wenn ich einen Eintrag mache, funktioniert das zwar, ich bekomme aber immer den Fehler "header already sent" oder so ähnlich. Woran könnte das liegen? Ich habe die Eingabemaske und die Ausgabe der Einträge auf eine Seite gepackt ... liegt da vielleicht der Fehler?
Hier findet Ihr mein Gästebuch. Ihr könnt gerne testweise mal einen Eintrag machen, falls das bei der Fehlersuche hilft.

Neologist
Beiträge: 11
Registriert: Do 30. Mär 2006, 11:34
Wohnort: Moritzburg
Kontaktdaten:

Beitrag von Neologist » Mo 2. Apr 2007, 13:18

Keiner ne Idee, woran das liegen könnte?

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mo 2. Apr 2007, 13:47

Neologist hat geschrieben:Keiner ne Idee, woran das liegen könnte?
Naja, die CAPTCHA-Erweiterung ist nicht von mir. Ich habe mir diese bisher auch nicht angesehen.

Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Beitrag von Vetinari » Mo 2. Apr 2007, 20:58

hi ingo,

hab das gästebuch installiert und funktioniert bestens. habe schon an den modul-templates gebastelt und das klappt auch soweit.

möchte aber das layout so haben, dass die gästebucheinträge erscheinen und darüber ein link: Neuen Beitrag erstellen, steht. wenn der beitrag erstellt wurde, kommt die meldung und der zurück-link, welcher dann aber wieder zu den einträgen führen muss.

mir ist aber die interne verlinkung bei contenido hier noch nicht ganz klar. wie muss dieser Link "beitrag erstellen" beschaffen sein? braucht der eine eigene kategorie oder so was?

V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.

Bloody
Beiträge: 11
Registriert: Mo 15. Jan 2007, 12:34
Kontaktdaten:

Installation

Beitrag von Bloody » Di 3. Apr 2007, 10:27

Hallo Leute,

ich glaube ich bin zu dumm um dieses Gästebuch zu installieren.
Ich habe es nach der Anleitung (der PDF-Date) versucht, aber im Punkt 2.2 hört es bei mir auf.
Ich habe die Module angelegt (Code reinkopiert) und ich habe auch die beiden HTML Files in den Templateverzeichnis kopiert. Aber wie kann ich dieses nun Konfigurieren? was muss ich am Template machen?! Die Ansicht aus 3.1 finde ich leider nicht.

Kann mir hier jemand helfen?

Danke schon mal

Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Beitrag von Vetinari » Di 3. Apr 2007, 12:45

@bloody

ist die datenbank-tabelle erfolgreich angelegt worden?
die ansicht aus 3.1. findest du unter content/kategorie.
dort solltest du eine kategorie "gästebuch" haben. wenn nun auf "kategorie konfigurieren" klickst, siehst du das bild von 3.1.

V.
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.

Bloody
Beiträge: 11
Registriert: Mo 15. Jan 2007, 12:34
Kontaktdaten:

Beitrag von Bloody » Di 3. Apr 2007, 15:39

Danke für die schnelle Antwort.

Inzwischen habe ich es geschaft, das das GB läuft.
Jedoch habe ich jetzt das Problem wenn jemand nur nen Smilie postet, so wird dieser 7 mal Angezeigt... und der Verweis auf die Datei steht auch 7 mal innder DB

und mit den Avaraten gibt es auch noch Probleme.
Ich kann beim erstellen eines Eintrags eins auswählen, in die DB wird jedoch nur der Pfad und nicht der dateiname geschrieben. Demzufolge kann das Avatar auch nicht mehr angezeigt werden...

Das habe ich im Eingabefeld stehen

Code: Alles auswählen

Test in "normal"

[u]Test in "unterstrichen"[/u]

[b]Test in "Fettschrift"[/b]

 #,#--  
und das hier steht dann nach dem speichern in der DB

Code: Alles auswählen

Test i<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />n <img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /><img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"normal<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />[<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />u<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />]Test i<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />n <img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /><img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"unterstrichen<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />[<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />/<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />u<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />]<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />[<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />b<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />]Test i<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />n <img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /><img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"Fettschrift<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />"<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />[<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />/<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />b<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />]<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />
<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /> <img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />#<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />,<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />#<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />-<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." />-<img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /> <img src="upload/vpGuestbook/smilies/copy.gif" alt="CopyV##--." /> 

Gesperrt