gastenboek filter

Status
Niet open voor verdere reacties.

kevin_ingen

Gebruiker
Lid geworden
4 jan 2003
Berichten
274
Ik wil een gastenboek maken voor een website van mij. Maar een eis hieraan is dat er geen grof taalgebruik op is toegestaan.

Is dit te filterren hoe en is dit makkelijk?

ik heb php tot mijn beschikking icm mysql.

alvast bedankt,
 
dit is zeke en vast mogelijk en niet zo moeilijk:)
Er zijn talloze manieren, afhangend van jou wijze van 'filteren'...
Als je grove woorden wil vervangen door %@& ofzo kan je str_replace gebruiken, bv
PHP:
$detekst = $_GET[text];
$detekst = str_replace("sh*t", "****", $detekst);

Enz...
je kan, wat handiger is maar iets moeilijker, een 'array' maken van alle ontoegelaten woorden. Deze is makkelijk aan te passen en is niet lang om te coden. Je kan ze bv in mysql invoeren en er dan uithalen, in een array zetten, de array afgaan met een loopje en zo alles vervangen wat niet past.

Je kan ook gewoon checken of er vuile woorden in je tekst komen en zo alles weigeren door bv:

PHP:
$pos = strpos($tekst, "sh*t");
if($pos == false){
// laat door
}
else{
echo "No can do sir, please change your language...";
}

Er zijn heel veel mogelijkheden:)
 
PHP:
$vuile_woorden = array( 'sh*t', 'bagger', 'poep' );
$vervangsels = array( '****', '******', '****' );

$tekst = str_replace( $vuile_woorden, $vervangsels, $text );
Zoiets kan ook nog.
 
hoeft vervangwoorden een array te zijn?
gewoon $tekst = str_replace( $vuile_woorden, "****", $text );

?:)
 
Geplaatst door arre
hoeft vervangwoorden een array te zijn?
gewoon $tekst = str_replace( $vuile_woorden, "****", $text );

?:)
Kzou 't niet weten, nooit getest :)

Test 't zou ik zeggen !
 
Geplaatst door JPeetje
PHP:
$vuile_woorden = array( 'sh*t', 'bagger', 'poep' );
$vervangsels = array( '****', '******', '****' );

$tekst = str_replace( $vuile_woorden, $vervangsels, $text );
Zoiets kan ook nog.
Bwoah, dan kan Bagger wel dus. Ik heb ooit es iets geschreven (dat was pas bagger code :p ) dat ook scheldwoorden filterde, maar kan het niet zo 1 2 3 vinden..
 
Laatst bewerkt:
Da gaat nie werken, nou kijkt-ie of $bericht in $woorden voorkomt, je zal $bericht woord voor woord moeten checken.
 
Geplaatst door JPeetje
Da gaat nie werken, nou kijkt-ie of $bericht in $woorden voorkomt, je zal $bericht woord voor woord moeten checken.
Awh ja je hebt gelijk :(
 
Geplaatst door kevin_ingen
welke en wat werkt er nu wel?
Lees de hele thread maar door, aan de hand van de berichten (niet PHP code) kun je prima afleiden welke er wel werken en welke niet.
 
Je kunt het ook zo proberen...

PHP:
$vervang =  strlen($woord);
$vervang = str_repeat("*", $vervang);
$bericht = str_replace($woord, $vervang, $bericht);

Deze gaat eerst tellen uit hoeveel tekens het "verbodenwoord" bestaat, dan vervangt hij het aantal tekens door * dus als je het zo hebt:
PHP:
$woord = "irritante";
$bericht = "Wat is dit een irritante code zeg";

$vervang =  strlen($woord);
$vervang = str_repeat("*", $vervang);
$bericht = str_replace($woord, $vervang, $bericht);
Wordt dit de output:
"Wat is dit een ********* code zeg"

Natuurlijk krijg je dan soms heel veel sterretjes, maar je kunt ook een kleiner woord gebruiken. Neem je bijvoorbeeld "heks" als $woord, dan krijg je bij een bericht als deze "Wordt er nog wat gehekst?" deze output: "Wordt er nog wat ge****t?"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan