Kom ihåg mig?
Home Menu

Menu


php fråga: censurskript

Ämnesverktyg Visningsalternativ
Oläst 2006-06-06, 18:48 #1
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
Hej,

Försöker göra ett litet censurskript till en gästbok. Så här ser det ut:


Kod:
# Orden som ska censureras
$censorship = array("en", "bunt", "fula", "ord");

$message = $_POST['message'];

$split = explode("", $message);

# Kollar igenom varje ord i det skrivna fältet
foreach ($censorship as $word)
{
if(in_array($split, $word) === true)
{
echo "Du har använt dig av ett eller flera otillåtna ord. Formulera om ditt inlägg och försök igen.";
}
}

Är osäker på om jag strukturerat upp det fel eller om det är något jag kan ha missat...?
estberg är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-06-06, 19:29 #2
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
in_array() är case-sensitiv, så "fula" matchar inte "fUla","Fula","fuLa" osv..

Rekommenderar dig att göra en regexp istället.
Kod:
<?php
$str_badwords = 'detta|är|en|massa|fula|ord';
$message = trim($_POST['message']);

if(preg_match("/(".$str_badwords.")/is", $message))
{
echo "Du har anv&auml;nt dig av ett eller flera otill&aring;tna ord. Formulera om ditt inl&auml;gg och f&ouml;rs&ouml;k igen.";
}
?>
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-06-06, 21:23 #3
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
Tack Jonas, det funkar bra nu!
estberg är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-06-06, 23:00 #4
thorsells avatar
thorsell thorsell är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 295
thorsell thorsell är inte uppkopplad
Medlem
thorsells avatar
 
Reg.datum: Feb 2004
Inlägg: 295
Eller kan du göra så att alla "fula ord ersätts med [biiip]

Kod:
<?
$inord = "en text som ska kollas";
$notallowed = array("en", "bunt", "fula", "ord");
$totw = count($notallowed)-1;
$repword = Array();
for ($i=0;$i<=$totw;$i++)
{
$notallowed[$i] = '@'.$notallowed[$i].'@si';
$repword[$i] = "[<i>biiip</i>]";
}

$newmsg = preg_replace($notallowed,$repword,$inord);
$inord = $newmsg;

?>
thorsell är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:55.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017