nachdem das Snippet http://www.phpbb.de/viewtopic.php?t=151867 zum Sperren von Gästebildern nicht den gewünschten Effekt hatte habe ich etwas rumprobiert. Die Gäste konnten zwar keine Bilder mehr posten aber der Link stand trotzdem klickbar im Posting und der Rest des Pornospams war auch noch zu lesen. Wenn man die Fehlermeldung des Snippets eingebaut hatte wurden sogar alle Gästeposts unterbunden.
Mit der Variante die ich zusammengelötet habe wird auf das Vorkommen von den IMG-Tags (durch stripos() wird auf Groß- und Kleinschreibung geprüft) im Text gesucht und wenn die User_id auf ANONYMOUS steht eine Fehlermeldung ausgegeben und der Beitrag wird nicht gesendet. Was für automatische Spam-Routinen bisher ausreichte um diese Postings komplett zu unterbinden.
Code: Alles auswählen
#
#-----[ Öffne ]------------------------------------------
#
includes/bbcode.php
#
#-----[ Finde ]------------------------------------------
#
function bbencode_first_pass($text, $uid)
{
#
#-----[ Füge danach ein ]-------------------------------------------
#
// Lade Globale Variable für Benutzer.
global $userdata;
#
#-----[ Finde ]------------------------------------------
#
// [img]image_url_here[/img] code..
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
#
#-----[ Ersetze mit ]-------------------------------------------
#
// [img]image_url_here[/img] code..
// Eingeloggte Nutzer dürfen Bilder posten
if($userdata['session_logged_in'] && $userdata['user_id'] != ANONYMOUS)
{
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
// Unterbindung von Gästebildern
if($userdata['user_id'] == ANONYMOUS && (stripos($text,"[IMG]") !== false))
{
message_die(GENERAL_MESSAGE,'Es ist Gästen nicht erlaubt Bilder in ihre Beiträge zu stellen. Bitte entferne die Bilder aus deinem Beitrag','Bilder verboten');
}