/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Spam Fighter hjælp søges...
Fra : NoName7620
Vist : 712 gange
500 point
Dato : 21-01-06 06:18

Er der mon nogen derude der kan hjælpe mig med at bekæmpe al den spam der kommer i min shoutbox på PHP Fusion side. Ville gerne prøve en løsning hvor der simpelthen blev opsat en regel for indhold i "Teksten i shoutboxen" hvis den f.eks. indeholder "http://" så slettes den automatisk, for langt de fleste spams indeholder netop link til alt mulig crap

Kode
<?php
/*--------------------------------------------+
| PHP-Fusion 5 - Content Management System |
|---------------------------------------------|
| author: Nick Jones (Digitanium) © 2002-2005 |
| web: http://www.php-fusion.co.uk |
| email: nick@php-fusion.co.uk |
|---------------------------------------------|
| Released under the terms and conditions of |
| the GNU General Public License (Version 2) |
+--------------------------------------------*/
if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }

openside(LAN_120);
if (isset($_POST['post_shout'])) {
   if (iMEMBER) {
      $shout_name = $userdata['user_id'];
   } elseif ($settings['guestposts'] == "1") {
      $shout_name = stripinput($_POST['shout_name']);
      if (is_numeric($shout_name)) $shout_name="";
   }
   $shout_message = str_replace("\n", " ", $_POST['shout_message']);
   $shout_message = preg_replace("/^(.{255}).*$/", "$1", $shout_message);
   $shout_message = preg_replace("/([^\s]{25})/", "$1\n", $shout_message);
   $shout_message = stripinput(censorwords($shout_message));
   $shout_message = str_replace("\n", "<br>", $shout_message);
   if ($shout_name != "" && $shout_message != "") {
      $result = dbquery("INSERT INTO ".$fusion_prefix."shoutbox VALUES('', '$shout_name', '$shout_message', '".time()."', '".FUSION_IP."')");
   }
   header("Location: ".FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : ""));;
}
if (iMEMBER || $settings['guestposts'] == "1") {
   echo "<form name='chatform' method='post' action='".FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "")."'>
<table align='center' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='2'>\n";
   if (iGUEST) {
      echo LAN_121."<br>
<input type='text' name='shout_name' value='".$userdata['user_name']."' class='textbox' maxlength='32' style='width:140px;'><br>
".LAN_122."<br>\n";
   }
   echo "<textarea name='shout_message' rows='4' class='textbox' style='width:140px;overflow:hidden'></textarea>
</td>
</tr>
<td><input type='submit' name='post_shout' value='".LAN_123."' class='button'></td>
<td align='right' class='small'><a href='".FUSION_INFUSIONS."shoutbox_panel/shoutboxhelp.php'>".LAN_124."</a></td>
</tr>
</table>
</form>
<br>\n";
} else {
   echo "<center>".LAN_125."</center><br>\n";
}
$result = dbquery("SELECT count(shout_id) FROM ".$fusion_prefix."shoutbox");
$numrows = dbresult($result, 0);
$result = dbquery(
   "SELECT * FROM ".$fusion_prefix."shoutbox LEFT JOIN ".$fusion_prefix."users
   ON ".$fusion_prefix."shoutbox.shout_name=".$fusion_prefix."users.user_id
   ORDER BY shout_datestamp DESC LIMIT 0,".$settings['numofshouts']
);
if (dbrows($result) != 0) {
   $i = 0;
   while ($data = dbarray($result)) {
      echo "<span class='shoutboxname'>";
      if ($data['user_name']) {
         echo "<a href='".FUSION_BASE."profile.php?lookup=".$data['shout_name']."' class='side'>".$data['user_name']."</a>\n";
      } else {
         echo "".$data['shout_name']."\n";
      }
      echo "</span><br>
<span class='shoutboxdate'>".showdate("shortdate", $data['shout_datestamp'])."</span><br>
<span class='shoutbox'>".parsesmileys($data['shout_message'])."</span><br>\n";
      if ($i != $numrows) echo "<br>\n";
   }
   if ($numrows > $settings['numofshouts']) {
      echo "<center>\n<img src='".FUSION_THEME."images/bullet.gif'>
<a href='".FUSION_INFUSIONS."shoutbox_panel/shoutbox_archive.php' class='side'>".LAN_126."</a> <img src='".FUSION_THEME."images/bulletb.gif'></center>\n";
   }
} else {
   echo "<div align='left'>".LAN_127."</div>\n";
}
closeside();
?>


 
 
Kommentar
Fra : return


Dato : 21-01-06 09:44

hej ved ikke om du kan bruge linket til noget men du kan da læse lidt om det http://www.secretmaker.com/support/spamfighter/default.html

Kommentar
Fra : sverola


Dato : 21-01-06 12:15

http://mailto.no/
Jeg vil tro at du kan finde det du søger her ....
Sverola

Kommentar
Fra : NoName7620


Dato : 21-01-06 13:28

Nu er det ikke mail spam der er tænkt på, men spam i replikboks på forsiden af hjemmesiden http.//www.lemvigbasket.dk der fyldes med spam fra forskellige robotter med reklamer fra specielt "præstationsfremmende" medicin. Selvfølgelig er det en mulighed at sætte siden op til at man skal logge ind for at skrive, men vil gerne kunne bevare det åbne system således at alle har mulighed for at skrive i replikboksen uden at skulle oprette profil og logge ind.

Accepteret svar
Fra : funbreak

Modtaget 500 point
Dato : 21-01-06 20:03

[B]Try this[/B] !

Kode
openside(LAN_120);
if (isset($_POST['post_shout'])) {
if(eregi("http://",$_POST['shout_message'])){ header("Location:../../index.php"); exit; }
if (iMEMBER) {


Kommentar
Fra : NoName7620


Dato : 21-01-06 22:31

Desværre giver det ikke den ønskede effekt, man kan stadig skrive "http://" i sine indlæg...

Kan ikke forhøje dette spørgsmål direkte, men udlover +100 point via bonus-spørgsmål

Godkendelse af svar
Fra : NoName7620


Dato : 22-01-06 10:31

Tak for svaret funbreak.

Det virkede ikke helt efter hensigten, men du ledte mig på rette spor og tror jeg nu fik det til at virke ved at bytte rundt på to if-sætninger

Kommentar
Fra : funbreak


Dato : 22-01-06 13:13

så har du også lært lidt

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177564
Tips : 31968
Nyheder : 719565
Indlæg : 6408970
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste