PDA

Bekijk Volledige Versie : actie op belaade woorden php



Henk....
21/09/06, 09:40
Hallo,

ik heb een gastenboek en daar zit op dit moment een spammer in die elke keer
een verhaal van dezelfde strekking plaatst.
dat is er vervelend en nu wil ik gaan filteren op bepaalde woorden.
als een woord overeen komt met de lijst mag het niet in het gastenboek
worden opgeslagen.

Hoe kan ik met php filteren op bepaalde woorden?

ik hoop dat iemand mij verder kan helpen.

alvast bedankt.

Henk.

ps: ik blokkeer nu al de ipadressen van de spammer maar die laat zich elke
keer weer via een adres zien


--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
756 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!

--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
756 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!

Erick T. Barkhuis
21/09/06, 10:40
Henk....:

> Hoe kan ik met php filteren op bepaalde woorden?

Je kunt gebruik maken van de functie strstr().
Zie http://php.net/strstr


> --------------------------------------------------------------------------------
> Mijn Postvak In wordt beschermd door SPAMfighter
> 756 spam-mails zijn er tot op heden geblokkeerd.
> Download de gratis SPAMfighter vandaag nog!
>
> --------------------------------------------------------------------------------
> Mijn Postvak In wordt beschermd door SPAMfighter
> 756 spam-mails zijn er tot op heden geblokkeerd.
> Download de gratis SPAMfighter vandaag nog!

En zou je zo vriendelijk willen zijn deze berichten (die je steeds vaker
ziet op Usenet) te onderdrukken? Het is voor lezers van deze nieuwsgroep
niet bijster interessant jouw high-score te volgen, denk ik.


--
Erick

"When a fellow says, 'it ain't the money but the principle of the
thing,' it's the money." - F. McKinney Hubbard

Operator
21/09/06, 10:40
In article <451240b2$0$2017$ba620dc5@text.nova.planet.nl>,
"Henk...." <info@nospamhetnet.nl> writes:

[...]
> Hoe kan ik met php filteren op bepaalde woorden?

Een van de oplossingen:

$woorden = split('[[:space:]]', $_POST['verhaal']);
$vervelende = array('kud', 'met', 'peren');
$gebruikt = array_intersect($vervelende, $woorden);

if (count($gebruikt) > 0) {
// foutmelding ofzo

Erick T. Barkhuis
21/09/06, 11:00
Operator:
> In article <451240b2$0$2017$ba620dc5@text.nova.planet.nl>,
> "Henk...." <info@nospamhetnet.nl> writes:
>
> [...]
> > Hoe kan ik met php filteren op bepaalde woorden?
>
> Een van de oplossingen:
>
> $woorden = split('[[:space:]]', $_POST['verhaal']);
> $vervelende = array('kud', 'met', 'peren');
> $gebruikt = array_intersect($vervelende, $woorden);
>
> if (count($gebruikt) > 0) {
> // foutmelding ofzo

Een nadeeltje van deze (verder goede) methode is, dat ze zich er op
baseert dat 'woorden' altijd omgeven staan door spaties.
Dit zal dus verfijnd moeten worden met woorden die op een zinseinde staan
(dus gevolgd worden door een punt, uitroepteken, e.d.), of die vooraf
gegaan of gevolgd worden door iets anders (komma, aanhalingsteken,
haakje).

Verder zal het script moeten worden aangevuld zodanig, dat het hoofd- en
kleine letters als gelijke tekens behandelt.

--
Erick

Henk....
21/09/06, 11:20
"Erick T. Barkhuis" <erick.usenet@ardane.c-o-m> schreef in bericht
news:MPG.1f7c71efa3d75a0898a18d@news.individual.ne t...
> Operator:
>> In article <451240b2$0$2017$ba620dc5@text.nova.planet.nl>,
>> "Henk...." <info@nospamhetnet.nl> writes:
>>
>> [...]
>> > Hoe kan ik met php filteren op bepaalde woorden?
>>
>> Een van de oplossingen:
>>
>> $woorden = split('[[:space:]]', $_POST['verhaal']);
>> $vervelende = array('kud', 'met', 'peren');
>> $gebruikt = array_intersect($vervelende, $woorden);
>>
>> if (count($gebruikt) > 0) {
>> // foutmelding ofzo
>
> Een nadeeltje van deze (verder goede) methode is, dat ze zich er op
> baseert dat 'woorden' altijd omgeven staan door spaties.
> Dit zal dus verfijnd moeten worden met woorden die op een zinseinde staan
> (dus gevolgd worden door een punt, uitroepteken, e.d.), of die vooraf
> gegaan of gevolgd worden door iets anders (komma, aanhalingsteken,
> haakje).
>
> Verder zal het script moeten worden aangevuld zodanig, dat het hoofd- en
> kleine letters als gelijke tekens behandelt.

Het script werkt inderdaad,en op deze manier kan ik wel wat blokkeren.
ik zal het nog wat gaan uitwerken

Henk


--------------------------------------------------------------------------------
Mijn Postvak In wordt beschermd door SPAMfighter
756 spam-mails zijn er tot op heden geblokkeerd.
Download de gratis SPAMfighter vandaag nog!

Operator
21/09/06, 12:40
In article <MPG.1f7c71efa3d75a0898a18d@news.individual.net>,
Erick T. Barkhuis <erick.usenet@ardane.c-o-m> writes:
> Operator:
>> In article <451240b2$0$2017$ba620dc5@text.nova.planet.nl>,
>> "Henk...." <info@nospamhetnet.nl> writes:
>>
>> [...]
>> > Hoe kan ik met php filteren op bepaalde woorden?
>>
>> Een van de oplossingen:
>>
>> $woorden = split('[[:space:]]', $_POST['verhaal']);
>> $vervelende = array('kud', 'met', 'peren');
>> $gebruikt = array_intersect($vervelende, $woorden);
>>
>> if (count($gebruikt) > 0) {
>> // foutmelding ofzo
>
> Een nadeeltje van deze (verder goede) methode is, dat ze zich er op
> baseert dat 'woorden' altijd omgeven staan door spaties.

[:space:] bevat newline, retrun, tab, spatie en vertical tab.

> Dit zal dus verfijnd moeten worden met woorden die op een zinseinde staan
> (dus gevolgd worden door een punt, uitroepteken, e.d.), of die vooraf
> gegaan of gevolgd worden door iets anders (komma, aanhalingsteken,
> haakje).

Klopt. Die karakters zitten in [:punct:]

> Verder zal het script moeten worden aangevuld zodanig, dat het hoofd- en
> kleine letters als gelijke tekens behandelt.

Ok. Dan wordt het dus:
$woorden = split('[[:space:][:punct:]]'
, strtolower($_POST['verhaal']));