Seite 1 von 1

Internet Adressen Filter

Verfasst: 30.12.2006 16:09
von scheibenbrot
Servus,
ich möchte sowas wie den Wortfilter haben, nur dass ich z.B. http://www.phpbb.de in eine .txt eintrage (ist jetzt nur ein Beispiel :D ) und wenn jemand in einem Beitrag auf diese Seite verlinkt soll man auf die verweigert.php gelangen, in der halt steht, das die Seite geblockt wurde...
Die verweigert.php und so kann ich selbst machen, aber ich brauche den Script, dass die Adressen in der .txt geblockt und auf die verweigert.php weitergeleitet wird.
Danke

mfg

Verfasst: 30.12.2006 16:31
von andreasOymann
Jobbörse???

Verfasst: 30.12.2006 16:41
von scheibenbrot
Ich will ja nicht direkt alles komplett fertig haben :wink:

Code: Alles auswählen

# 
#-----[ OPEN ]------------------------------------------ 
#
includes/functions.php

# 
#-----[ FIND ]------------------------------------------ 
#  
   global $db;

   //
   // Define censored word matches
   //
   $sql = "SELECT word, replacement
      FROM  " . WORDS_TABLE;
   if( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql);
   }

   if ( $row = $db->sql_fetchrow($result) )
   {
      do
      {
         $orig_word[] = '#\b(' . str_replace('\*', '\w*?', phpbb_preg_quote($row['word'], '#')) . ')\b#i';
         $replacement_word[] = $row['replacement'];
      }
      while ( $row = $db->sql_fetchrow($result) );
   }


# 
#-----[ REPLACE WITH ]------------------------------------------ 
#  
   global $phpbb_root_path;

   //
   // Define censored word matches
   //
   $words = file($phpbb_root_path . 'wortfilter.txt');

   foreach ($words as $word)
   {
      $orig_word[] = '#\b(' . str_replace('\*', '\w*?', phpbb_preg_quote(trim($word), '#')) . ')\b#i';
      $replacement_word[] = '-----';
   }
Also mit diesem Code wird der wortfilter aus der wortfilter.txt geladen...vielleicht kann man das so ähnlich machen...

Verfasst: 30.12.2006 17:49
von BruceCompanys
Mach es doch so^^

Einfacher geht es (scheinbar nicht), ansonsten, musst du alle Daten aus deiner Datei laden und den Post damit absuchen... nicht schwez oda?

Code: Alles auswählen

<?php
$text = file("text.txt"); //Als Array laden Zeile für Zeile
 foreach($text as $k => $v) //Wir brauchen nur $v!!!
 {
  if(eregi($v."*", $post))
   header("Location: verweigere.php");
 }
?>
Das ist nur nen Denkansatz...

Ich denke mal den rest schaffste allein... hab noch was anderes zu tun, als das zu Schreiben :D

Nichts für ungut^^
macht ja spass

Verfasst: 30.12.2006 18:00
von scheibenbrot
Ist das jetzt dafür, dass wenn im beitrag eine url aus der text.txt ist statt auf die url auf die verweigert.php geleitet wird?

Verfasst: 30.12.2006 19:26
von Max
und noch einfacher geht es nur hier mit:
URL Censor Mod
Version 1.0.1

Dieser MOD erweitert die Wortfilterfunktion von phpBB:
Im ACP werden die eingestellten Wörter nun auch aus URLs von Beiträgen sowie aus Profil eines Users, PMs und aus der Mitgliederliste herausgefiltert. So können Links gesperrt werden, diese können dann mit einem anderen Link oder mit einem Text ersetzt werden.
Download



Gruß Max

Verfasst: 30.12.2006 19:28
von scheibenbrot
Diesen mod kenne ich, aber ich möchte statt den Link zu zensieren auf eine datei verlinken :oops:

lesen :oops:

Verfasst: 17.01.2007 22:12
von scheibenbrot
So nach 576 Stunden pushe ich mal...ich denke die 24h sind abgelaufen :D

Verfasst: 17.01.2007 22:30
von Jensemann
BruceCompanys hat geschrieben:

Code: Alles auswählen

<?php
$text = file("text.txt"); //Als Array laden Zeile für Zeile
 foreach($text as $k => $v) //Wir brauchen nur $v!!!
 {
  if(eregi($v."*", $post))
   header("Location: verweigere.php");
 }
?>
Die Funktion eregi sollte vermieden werden. Die ereg* Funktionen zählen zu der langsamsten Implementierung Regulärerausdrücke. Du solltest dich mit den preg_* Funktionen beschäftigen.