|
| Spam Fighter hjælp søges... Fra : NoName7620 | Vist : 707 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 |
| | |
| Kommentar Fra : sverola |
Dato : 21-01-06 12:15 |
| | |
|
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.
| |
|
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 |
| | |
| 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.
| |
|
|