Email bij een scheldwoord in bericht

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Milo

Milo

09/09/2009 17:03:00
Quote Anchor link
Toen ik mijn gastenboek tutorial had geplaatst kwamen er enkele reacties over de scheldwoorden filter, en in 1 daarvan stond het volgende:

Quote:
Edit: een beter oplossing zou ik persoonlijk vinden is een systeem dat administrators/moderators bericht geeft van een bericht dat mogelijk scheldwoorden bevat en die dan te kunnen verwijderen of iets dergelijks.


nu had ik een idee maar ik vroeg me af of dit wel een goed begin is in de goede richting

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// De verboden woorden
$forbidden = array('kut', 'lul', 'homo', 'gay', 'pijpen', 'beffen');

// Als er een scheldwoord in het bericht zit
if(in_array($bericht, $forbidden))
{

    // Stuur de mail
    $msg = mail('[email protected]',  // Aan
                'scheldwoorden filter',  // Onderwerp
                'Er zijn mogelijk scheldwoorden aangetroffen in het bericht met het volgende id: "'.$eenidhier'"',  // Bericht
                'FROM: [email protected]'); // Van
    
    // Als er een fout is opgetreden in de mail

    if($msg == FALSE)
    {

        echo 'Helaas, er is een fout opgetreden';
    }
}

?>


Is dit iets in de goede richting of totaal niet?
gr
Gewijzigd op 01/01/1970 01:00:00 door Milo
 
PHP hulp

PHP hulp

25/04/2024 08:51:26
 
Dick oo

dick oo

09/09/2009 17:16:00
Quote Anchor link
Ik zou het niet in een functie doen.
Ik zou gewoon het bericht checken op scheldwoorden als het wordt toegevoegd.
Als dat het geval is meteen een mail sturen.
 
Afra ca

Afra ca

09/09/2009 17:36:00
Quote Anchor link
Je begrijpt in_array nog niet helemaal. Je bericht zal waarschijnlijk 1 string zijn. Bij in array is het eerste argument een array en tweede argument een string, net andersom dus. Om het dus werkend te krijgen zal je de $bericht string moeten gaan exploden om een array met alle losse woorden te krijgen, en een foreach loop om te checken. Zal zo in edit even laten zien wat ik bedoel .

En ik kan je bij voorbaat een tip geven, gebruik Swiftmailer, zelf emails sturen met de ingebouwde mail functie van php word vaak een drama.

edit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

$testbericht
= "Hier is een bbericht met wat woorden en een kut scheeldwoord homo erin";
$forbidden = array('kut', 'lul', 'homo', 'gay', 'pijpen', 'beffen');
$stukken = explode(" ", $testbericht);
foreach ($stukken as $key => $woord){
    $badwords = false;
    if(in_array($forbidden, $woord)){
        $badwords = true;
    }
}

if ($badwords){
    //hier met swiftmailer gaan email
}
//optioneel
else{
    echo 'jeej, bericht geen scheldwoorden';
}

?>


Natuurlijk houd je de eeuwige discussie of filters wel zullen werken. Als "homo" niet werkt word het wel h0mo, of één van de andere 20 vversies.
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
GaMer B

GaMer B

09/09/2009 17:41:00
Quote Anchor link
Overigens zal dit allemaal niet werken, wat nou als ik dit doe:

Quote:
Je bent een luul! Nee, wacht, nog erger, een h o m o!


Zowel luul als h o m o zullen blijven staan / niet opgemerkt worden.
 
Afra ca

Afra ca

09/09/2009 17:43:00
Quote Anchor link
GaMer13 schreef op 09.09.2009 17:41:
Overigens zal dit allemaal niet werken, wat nou als ik dit doe:

Quote:
Je bent een luul! Nee, wacht, nog erger, een h o m o!


Zowel luul als h o m o zullen blijven staan / niet opgemerkt worden.


En als jij nou even gewacht had op de beloofde edit voor je onnodige posts maakt ;)
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Milo

Milo

09/09/2009 17:59:00
Quote Anchor link
Hey Afra bedankt ik ga het verder ontwikkelen en eff uitleg voormezelf er bij zetten ;)

gr
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.