Gästebuch und Kontaktforumlar mit Spam-Schutz (Captcha)

mayhem
Beiträge: 39
Registriert: Di 14. Aug 2007, 13:36
Kontaktdaten:

Beitrag von mayhem » Mo 20. Aug 2007, 14:37

Super, jetzt funktionierts. Danke.
Nur das Problem mit der Email und Homepage habe ich noch.

anubis2k
Beiträge: 50
Registriert: Fr 27. Jul 2007, 13:39
Kontaktdaten:

Beitrag von anubis2k » Di 16. Okt 2007, 23:00

Juhu... ich hoffe ich darf meine Frage hier in diesem Thread stellen :)
Ich habe eine kleine Homepage aufgebaut für einen Bekannten der
nun ganz gerne ein Gästebuch haben möchte ... von daher dachte ich
mir das es ja kein großes Thema darstellen sollte :)

Anleitung durchgelesen vom original (ich besitze 4.6.23)...
1. Modul angelegt (Style -> Module)
2. Modul-Templates (Style -> Modul-Templates)

Ich wollte nun gucken ob das richtig war und wollte wegen
dem normalen Template gucken, aber vorher muss ja ein
Layout angelegt werden so wie ich das sehe :D

Doch nun scheiterte ich... somit hab ich erstmal wieder Modul und
Modul-Templates gekillt... aber... weiss einer wo da bitte der Fehler
gewesen sein könnte..?!?

Die Anleitung ist also recht einfach geschrieben,
aber ich schein gerade irgend wo einen Fehler gemacht zu haben...
Oder ist die Anleitung vielleicht noch für ältere Contenido Versionen?!?

Währe toll wenn Ihr mir helfen könntet :)

Bye,
Anubis

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » Mi 24. Okt 2007, 19:43

Hallo,

ich habe übrigens die gleiche Fehlermeldung in der 4.6.22:
Fehler: Bitte Sicherheitscode eingeben!
Zu sehen hier: www.tim-toupet.de

Woran kann das denn nun liegen, vor allem weil es am Wochenende noch funktioniert hat? Ich habe alles noch einmal gelöscht und die Rohdaten wieder hoch gespielt. Die Pfade in den Templates zur captcha.php und zur Eingabe geändert.

Gruß, Martin

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

Beitrag von derSteffen » Do 25. Okt 2007, 09:34

Hallo,

hier wurde die Theamtik mit Gästebuch und Captcha-Schutz schon einmal diskutiert. Vielleicht hilft euch ja diese Variante weiter:

http://www.contenido.org/forum/viewtopi ... &start=165

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » Fr 26. Okt 2007, 09:02

Danke, aber da besteht ja wohl zum Teil das gleiche Problem mit dem Sicherheitscode. Es haben einige Leute danach gefragt, aber noch habe ich keine Antwort darauf gefunden.

Wenn ich das alles richtig verstehe, funktioniert das doch folgendermaßen:

Beim Aufruf der Eingabe-Seite wird ein Code erzeugt und als Grafik dargestellt. Der Code wird in der Datenbank gespeichert und muss mit dem eingegebenen Code übereinstimmen um den Eintrag zu übernehmen. Kann doch eigentlich nur an der Datenbank liegen - oder? Vor allem wenn es erst funktioniert und drei Tage später nicht mehr.

Weiß denn jemand, in welcher DB-Tabelle der Code gespeichert wird?

Gruß, Martin

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

Beitrag von derSteffen » Di 30. Okt 2007, 15:24

Also bei mir funktioniert das Gästebuch mit dem Captcha-Schutz!

Also in dem verlinkten Thread, erst das machen was MediaMuchacho sagt:
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.
Beachte! Setze die Rechte des Ordners captcha und die der Datei captcha.php auf 777!

Dann mein Output nehmen und einfügen:

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>";
}

?>
Das hier beachten:
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">';
Dann im Output das hier suchen "MEIN-PERSÖNLICHER-SICHERHEITSCODE" und mit einem Code hinterlegen!

Und meine captcha.php sieht so aus:

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); 
?> 
So und hier auch nach "MEIN-PERSÖNLICHER-SICHERHEITSCODE" suchen und durch deinen Code ersetzten!

Letzte Sache in:
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 />
Schreibe mal bitte ob es geklappt hat!

Steffen

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » Di 30. Okt 2007, 17:50

Ich habe alles korrekt durchgeführt, kann aber das Template in der Vorkonfiguration nicht konfigurieren. Es liegt wohl am Inputteil. Sowohl bei Eintrag, als auch bei Ausgabe habe ich folgende Ansicht:

Bild

Kannst du mir bitte den Modul-Input für Aus- und Eingabe posten?

Vielen Dank und viele Grüße, Martin

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

Beitrag von derSteffen » Di 30. Okt 2007, 21:11

Mhm ist ja eigenartig?! hast du den Original-Code? Weil denn habe ich auch nur in meinem Input!

input (eintrag):

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."/", '&nbsp;&nbsp;&nbsp;&nbsp;'.$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>";
input (ausgabe):

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."/", '&nbsp;&nbsp;&nbsp;&nbsp;'.$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&auml;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&auml;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&auml;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&uuml;ck\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[13]\" value=\"CMS_VALUE[13]\" size=\"30\" /></td></tr>";

echo "</table>";
Aber wenn das bei beiden Templates ist, kann nicht der input-Code daran schuld sein. Vielleicht sind das andere Module die sich daran stören?

MfG Steffen

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » Do 1. Nov 2007, 16:26

Danke, es funktioniert nun fast alles. Ich bekomme nur immer wieder die Fehlermeldung, dass ich den Sicherheitscode eingeben soll. Wenn ich es richtig verstanden habe, kann ich anstatt "Mein persönlicher Sicherheitscode" im Eintragmodul/Output einen x-beliebigen Code eingeben z.B. "abcdefg12" und das gleiche natürlich in der captcha.php. Welchen Zweck erfüllt dieser Code?

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » So 4. Nov 2007, 10:12

So, nun habe ich den Fehler endlich gefunden.

Überall wird geschrieben, dass man den vollen Webpfad zur captcha.php angeben soll. Nun, gerade das hat den Fehler ausgelöst. Nachdem ich nur noch folgenden Pfad hatte, funktionierte alles wunderbar:

Code: Alles auswählen

<td colspan=2><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>
Warum sind eigentlich immer die einfachen Dinge so schwer zu finden? - Vielleicht denken wir ja manchmal zu kompliziert!

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

Beitrag von derSteffen » Di 6. Nov 2007, 16:57

Na das freut mich, dass es jetzt bei Dir geklappt hat. Ist ein guter Hinweise mit dem relativen Pfad, bei mir klappt es komischerweise nur mit dem absoluten.

Ich denke der Sicherheitscode dient dafür, dass die Generierung der Zeichenkombination nach einem Algorithmus ausgeführt wird. Dieser Algorithmus bedient sich diesem "Schlüssel" und zaubert daraus den CaptchaCode. Und dann benötigt das Skript ja auch den Sicherheitscode als Überprüfungsmethode.

So oder so ähnlich!

erikawiese
Beiträge: 118
Registriert: Fr 23. Feb 2007, 22:06
Kontaktdaten:

sendet keine Email

Beitrag von erikawiese » Mo 17. Dez 2007, 14:27

Habe das Modul auf 4.6.23 und es versendet keine Emails. Muss dazusagen: Bin bei Host Europe und habe mir den entsprechenden Thread durchgelesen: http://contenido.org/forum/viewtopic.ph ... ktformular

Mir ist nicht klar, wie die -f Funktion einzubauen ist. Vielleicht gibt mir mal jmd. ein Codeschnipsel?

Contenider
Beiträge: 503
Registriert: Do 6. Apr 2006, 01:40
Kontaktdaten:

Beitrag von Contenider » Sa 29. Dez 2007, 19:11

Danke für die Erweiterung, funktioniert sehr gut! Sogar bei HostEurope...
Ειμαστε στη μεση απο κατι...

tomkolb
Beiträge: 50
Registriert: Di 22. Mär 2005, 13:55
Wohnort: Aalen (Baden-Württ.)
Kontaktdaten:

vpGuestbook: Fehlerseite nach Absenden

Beitrag von tomkolb » Fr 23. Jul 2010, 07:06

Nach einen Server-Umzug und gleichzeitigem Upgrade 4.6.15 => 4.8.12 funktioniert das vpGuestbook ( vpGuestbook 1.9 - Eintrag; Author: Ingo van Peeren, Simon Martinelli; Created: 2005-03-14; Modified: 2007-08-07 - erweitetert mit Spam-Schutz (Captcha); Autor: Simon Martinelli; Version: 1.0) nicht mehr einwandfrei.
Beim Absenden landet man auf einer Fehlerseite (500). Allerdings: Der Eintrag wird in die DB geschrieben - auch die Formular-Fehlerprüfung (inc. Captcha) funktionieren.
Ich bin jetzt echt ratlos. Liegt das möglicherweise an dem AMR-Plugin bzw. den Einstellungen der .htaccess-Datei dass er den Pfad zur aufrufenden Seite (self) nicht wieder findet?
Bei der alten Installation (unter 4.6.15 - ohne AMR) gab's nie Probleme. Weiss jemand Rat??
(http://www.ksv-aalen.de/pinwand/eintrag ... reiben.php)

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

Re: Gästebuch und Kontaktforumlar mit Spam-Schutz (Captcha)

Beitrag von Dodger77 » Fr 23. Jul 2010, 07:57

@tomkolb Das CAPTCHA-Script von simas Website hast du aber beim Update nicht überschrieben bzw. danach wieder im cms-Ordner hinzugefügt?

Gesperrt