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

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

Re: Gewerksel die zweite

Beitrag von Dodger77 »

apicalart hat geschrieben:Es wäre auch denkbar, das man die Avatargeschichte unberührt lässt und einfach ( oder auch schwierig ) ein neues Upload Feld hinzufügt. vielleicht ist das sogar noch einfacher. Oder ???
Möglich ist das natürlich. Ich sehe das aber nicht als notwendiges Feature für das GB an, da fände ich eine Einbindung von gravatar.com schon sinnvoller.
MacKP
Beiträge: 34
Registriert: Mi 9. Nov 2005, 15:55
Kontaktdaten:

Beitrag von MacKP »

Dodger77 hat geschrieben:
MacKP hat geschrieben:so, ich habe jetzt weiter getestet.
in der .pak Datei durfte kein & <> etc. sein. Daher habe ich jetzt ziemlich wilde Bezeichnungen für die Smilies, aber alles Funktioniert wieder.
Ich werde mir das aber trotzdem nochmal anschauen, da das bei anderen ja klappt.
MacKP hat geschrieben:Das Cookie Problem versuche ich gerade weiter einzugrenzen.
Bei mir lässt sich das nicht nachstellen. Macht auch im Prinzip keinen Sinn, da der Cookie in der Ausgabe des GB gar nicht abgefragt wird.

Hallo dodger77,
das Cookie Problem bzw. die Ausgabe hat sich so wie es aussieht auch erledigt, seit dem ändern der Zeichen hatte ich keine Probleme mehr damit.
MacKP hat geschrieben:Mir ist dabei aufgefallen, das ich mehrere Error-Log Einträge bekomme wenn ich im Backend auf die Konfiguration vom GB Eintragen gehe :
Diese Einträge düften daher kommen, dass im Upload-Verzeichnis keine Ordner sind/waren.
Hmm die Fehler-Ausgaben habe ich immer noch. Im Upload-Verzeichnis sind Bilder und Unterordner (alles mit den benötigten Rechten).
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

MacKP hat geschrieben:Hmm die Fehler-Ausgaben habe ich immer noch. Im Upload-Verzeichnis sind Bilder und Unterordner (alles mit den benötigten Rechten).
OK, den Fehler habe ich nun nachstellen können. Auswirkungen scheint der keine zu haben, für die nächste Version habe ich das aber mal vorgemerkt.
MacKP
Beiträge: 34
Registriert: Mi 9. Nov 2005, 15:55
Kontaktdaten:

Beitrag von MacKP »

Dodger77 hat geschrieben:
MacKP hat geschrieben:Hmm die Fehler-Ausgaben habe ich immer noch. Im Upload-Verzeichnis sind Bilder und Unterordner (alles mit den benötigten Rechten).
OK, den Fehler habe ich nun nachstellen können. Auswirkungen scheint der keine zu haben, für die nächste Version habe ich das aber mal vorgemerkt.
Alles klar.
Danke für die gute Arbeit bei dem GB. Ich find es echt super das man das so schön Administrieren kann.
Grüße,
MacKP
majestic_morpheus
Beiträge: 3
Registriert: Mo 6. Mär 2006, 15:44
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von majestic_morpheus »

Ich bekomme bei einer Website, die ich betreue und das vp_guestbook enthält, beim Anzeigen der Gästebucheinträge auf einmal folgende Fehlermeldung:
Warning: preg_match() [function.preg-match]: Compilation failed: repeated subpattern is too long at offset 45 in /home/www/domain.de/htdocs/cms/front_content.php(771) : eval()'d code on line 657
Diese Fehlermeldung wird für jeden Eintrag einmal angezeigt (bei 5 Einträgen pro Seite also auch 5 Meldungen).

Im Backend wird im Editor für den GB-Artikle ebenfalls diese Meldung ausgegeben, jedoch mit veränderten Inhalt:
Warning: preg_match() [function.preg-match]: Compilation failed: repeated subpattern is too long at offset 45 in /home/www/domain.de/htdocs/contenido/includes/include.con_editcontent.php(644) : eval()'d code on line 833
Weiß jemand Rat wo ich den Fehler suchen soll?

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

Beitrag von Dodger77 »

majestic_morpheus hat geschrieben:Weiß jemand Rat wo ich den Fehler suchen soll?
Welche PHP-Version wird auf dem Server eingesetzt?
majestic_morpheus
Beiträge: 3
Registriert: Mo 6. Mär 2006, 15:44
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von majestic_morpheus »

Dodger77 hat geschrieben:Welche PHP-Version wird auf dem Server eingesetzt?
Das ist die Version 5.2.0
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

majestic_morpheus hat geschrieben:Das ist die Version 5.2.0
Dann wird es wohl daran liegen. Das Problem scheinen auch noch andere zu haben:

http://bugs.php.net/bug.php?id=39415
majestic_morpheus
Beiträge: 3
Registriert: Mo 6. Mär 2006, 15:44
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von majestic_morpheus »

Dodger77 hat geschrieben:Dann wird es wohl daran liegen. Das Problem scheinen auch noch andere zu haben:

http://bugs.php.net/bug.php?id=39415
Das lese ich mir mal durch. Vielen Dank...
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Es scheint wohl ein Problem mit der PCRE Bibliothek in der Version 6.7 zu geben. Da findet man über Google einiges zu. Ob das nun allerdings ein PHP- bzw. PCRE-Bugs ist oder gewünschtes Verhalten muss man noch schauen.

Hier noch zwei Hinweise darauf:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392363
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=393687
djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

Captcha Einbau

Beitrag von djw »

hab mich mal bemüht eine Spamsicherung mit Captcha einzubauen:

Beispiel unter:
http://www.dj-w.info/front_content.php?idcat=79

Orginalanleitung unter:
http://www.stoppt-den-spam.info/webmast ... rwort.html

Eingabe INPUT:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    vpGuestbook 1.9 - Eintrag
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-03-14
* Modified    :     2006-01-16
************************************************/

$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=\"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=\"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=\"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[13]\" 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=\"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>";
Eingabe OUTPUT:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :	    vpGuestbook 1.9 - Eintrag
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-03-14
* Modified    :     2006-01-16
* Modified    :     2006-11-19
* Modified  by:     Markus Grampp DJ W. Event- & IT- Service www.dj-w.de
************************************************/

// Mailer-Klasse einbinden
cInclude('classes',  'class.phpmailer.php');
cInclude('classes',  'class.captcha.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.getElementById('vpgb_eintrag').entry.createTextRange) document.getElementById('vpgb_eintrag').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('" . htmlspecialchars($smilie['ersetzung']) . "','')\"><img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $smiliespfad . $smilie['icon'] . "\" alt=\"" . htmlspecialchars($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 = "Bitte geben Sie Ihren Namen an!";
  }
  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 = "Bitte geben Sie eine gültige Email-Adresse an!";
  }

  // URL überprüfen
  if ($_POST['url'] != "") {
    $url = htmlentities(strip_tags($_POST['url']));
    $url = testURL($url);
  }

  // Eintrag überprüfen
  if ($_POST['entry'] == "") {
    $error = "Bitte schreiben Sie einen Eintrag!";
  }
  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']));
$SpamArray= array();
$SpamArray[]= "Phentermine";
$SpamArray[]= "phentermine";
$SpamArray[]= "cialis";
$SpamArray[]= "Cialis";
$SpamArray[]= "viagra";
$SpamArray[]= "Viagra";
$SpamArray[]= "xanax";
$SpamArray[]= "zoloft";
$SpamArray[]= "gambling";
$SpamArray[]= "welbutrin";
$SpamArray[]= "depression";
$SpamArray[]= "drug-testing";
$SpamArray[]= "craps";
$SpamArray[]= "poker";
$SpamArray[]= "partypoker";
$SpamArray[]= "condoms";
$SpamArray[]= "Very good site! I like it! Thanks!";
$SpamArray[]= "cancer";
$SpamArray[]= "free ringtone";
$SpamArray[]= "atlantic city";
$SpamArray[]= "credit card";
$SpamArray[]= "mortgage";
$SpamArray[]= "influenza";
$SpamArray[]= "roulette";
$SpamArray[]= "casino game";
$SpamArray[]= "housewife picture";
$SpamArray[]= "valium";
$SpamArray[]= "welbutrin";
$SpamArray[]= "free online";
$SpamArray[]= "zoloft";
$SpamArray[]= "meridia";
$SpamArray[]= "free online";
$SpamArray[]= "wellbutrin";
$SpamArray[]= "meridia";
$SpamArray[]= "hoodia";
$SpamArray[]= "levitra";
$SpamArray[]= "pills";
$SpamArray[]= "casino";
$SpamArray[]= "franchise";
$SpamArray[]= "cash";
$SpamArray[]= "freeporn";
$SpamArray[]= "free porn";
$SpamArray[]= "gay";
$SpamArray[]= "boobs";
$SpamArray[]= "adipex";
$SpamArray[]= "allegra";
$SpamArray[]= "Cool site";
$SpamArray[]= "Thanks";
$SpamArray[]= "fashionbiz";

//Spamfilter
$IsSpam=0;
$word = substr_count($_POST['entry'], 'http');
if($word >= 2) {
    $IsSpam=1;
}
// IP und Hostname speichern
$iphost = $_SERVER["REMOTE_ADDR"];
$host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
if ($host) $iphost .= " / " . $host;
foreach ($SpamArray as $SpamString) {
		if(strstr($_POST['entry'],$SpamString)){
			$IsSpam=1;
		}
}
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"], "DJWEventservice");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
    unset($_SESSION['captcha_spam']);
    //Captcha ENDE
    // der eigentliche Eintrag in die Datenbank
    if ($error == "" && $IsSpam == 0) {
        $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;
    }
}
// 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.">";

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

  ?>
  <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)\">";
  echo '
  <img src="captcha/captcha.php" border="0" title="Sicherheitscode">
  <input type="text" name="sicherheitscode" size="4">
  
  ';
  $tpl->generate('templates/' . $tpl_datei);
  echo "</form>";
}

?>
Kann leider kein großer Support geben , da ich die 2 Scripte lediglich zusammengefasst habe.
Seili
Beiträge: 21
Registriert: Di 15. Mär 2005, 16:47
Wohnort: Osnabrück
Kontaktdaten:

Beitrag von Seili »

was steht denn in Deiner class.captcha.php?

könntest du näher erläutern wie du das Captcha in Contenido integriert hast (step by step)

denn mit der Anleitung auf der angegebenen Seite klappts bei mir leider nicht...
bazz-design
Beiträge: 57
Registriert: Do 18. Nov 2004, 14:09
Kontaktdaten:

Beitrag von bazz-design »

hallo.... ich will auch wissen wie ich captcha mit einfüge!
gruß
stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

Würde ich auch gerne wissen

Beitrag von stxinden »

Habe mir die Anleitung einmal durchgelesen und würde jetzt gerne einfach mal wissen was in der class.captcha drinstehen muss.

Viele Grüße
Stefan
Stx
djw
Beiträge: 129
Registriert: Di 6. Apr 2004, 21:27
Wohnort: Baden
Kontaktdaten:

auf dauer nichts

Beitrag von djw »

Sorry muss euch leider enttäuschen - das captcha klappt auf dauer nicht - habs jetzt einige Zeit getestet und immer noch genug Spam im GB
Gesperrt