Preg_match Anti Spam POST

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Belastingdienst - Freelance Senior Applicatie ontw

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Functieomschrijving: We verwachten van je, dat je: Brede ervaring hebt als JAVA-ontwikkelaar; Ervaring hebt met Agile/Scrum-werken en je thuis voelt in een Agile omgeving; Een aandeel levert aan het scrumproces en in de SAFe-releasetrain; Zelfstandig werkt in een scrumteam en intensief de samenwerking op zoekt met je directe collega’s en je omgeving; Ervaring meebrengt met het schattten en inplannen van taken tot en met het testen en demonstreren van de opgeleverde functionaliteit; Collega’s in je

Bekijk vacature »

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

.NET developer

Functie Als senior .NET ontwikkelaar en aankomend lead developer ben jij in één van de drie development teams verantwoordelijk voor het volgende: • Jij hebt een oogpunt op modernisering en bent verantwoordelijk voor de technische staat en architectuur van de applicatie; • Jij bent verantwoordelijk voor het reviewen van de technische haalbaarheid van verschillende onderwerpen; • Jij bent verantwoordelijk voor een goede aansluiting binnen het multidisciplinaire team en de bijbehorende taken; • Jij bent verantwoordelijk voor het aandragen van verbetervoorstellen en ontwikkelstandaarden in zowel de techniek als architectuur; • Jij bent meewerkend voorman en ondersteunt en coacht jouw team op

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Arnhem gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »
Pello Mugica-Gonzalez

Pello Mugica-Gonzalez

12/02/2011 17:31:37
Quote Anchor link
Hallo,

Ik zit met een klein en vrij simpel beginnersprobleempje. Ik heb een simpele "wall" ontworpen met 1 enkele form waar je gewoon wat tekst kunt in voegen en bij de submit komt dat dan op de wall.

Maar nu worden bij het posten van die tekst eerst enkele controles gedaan. O.a. op lengte, leegte, enz. Maar ik zou graag ook iets maken tegen spam.

Zo zou ik bvb alle ongewone tekens dat je in een normale tekst niet nodig hebt zoals / < > $ * % enz (uitgezonder leestekens( . , ; : ( ) ) en @) willen uitsluiten. En ik zou ook willen tegen gaan dat er mensen een spam doen met veel de zelfde letters na elkaar, dus laat ons zeggen dat je maar maximum 2 dezelfde letters naast elkaar moogt voegen(bvb: haaaaaaaaaaaaaaaallooo)


Zoals ik al eerder zij ben ik een beginner maar ik denk dat ik dit kan oplossen met een preg_match maar ik ben helemaal niet bekend met strings. Kunnen jullie mij daar bij helpen en zeggen hoe je er aan komt?

Alvast bedankt,
Pello
Gewijzigd op 12/02/2011 17:32:37 door Pello Mugica-Gonzalez
 
PHP hulp

PHP hulp

26/12/2024 08:43:36
 
Wouter J

Wouter J

12/02/2011 19:05:38
Quote Anchor link
Hallo Pello,

Een goede tutorial daarvoor is Regular expressions.
Daarin wordt alles uitgelegd.
De regex om alle tekens op A-Z, a-z, 0-9 en .,;:()@ te willen blokkeren kan je bijv. Deze regex proberen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$regex
= '/[^A-Za-z0-9\.,;:\(\)]/';
$preg = preg_match($regex, $_POST['iets']);
if($preg === false) {
  echo 'Dit is spam!';
}

else {
  echo 'Je hebt normaal gereageerd!';
}

De uitleg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
[          Begin van een character class
^          Match alle tekens met uitzondering van tekens in deze character class
A-Z        Match A-Z (door de eerdere ^ wordt het eigenlijk match niet)
a-z        Match a-z
0-9        Match 0-9
\.,;:\(\)  Match .,;:(). Doordat . () tekens zijn die je bij speciale regexen kan gebruiken moet je deze door middel van de backslash \ als gewone teken declareren.
]          Einde character class


Voor de meerdere letters achterelkaar kan je doen met grouping metacharacters. Dit zijn (). Alles wat hier tussen staat wordt onthouden. Dit kan je weer terug halen met \1 \2, enz.
Voorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$regex
= '/(.{1})(\1)/';
?>

Uitleg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
(         Dit is het begin van een metacharacters
.         In een regex matched de . alles behalve spaties
{1}       Door middel van {1} geven we aan dat het precies 1 keer mag matchen.
)         Einde metacharacters
(\1)      Nu kijken we of de letter 2 keer achter elkaar staat. Dit doen we doormiddel van \1. Hierin staat de informatie van het stukje van het eerste haakje

Om 2 keer achter elkaar te kijken wordt een beetje gevaarlijk. Want je kan in woorden als een ook 2 keer eenzelfde letter hebben. Dus je kan beter kijken op 3 tekens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$regex
= '/(.{1})(\1)(\1)/';
?>


Dit wordt allemaal uitgebreid en beter uitgelegd in de tutorial die ik je net gaf. Ik raad je aan die te lezen en dan deze uitleg.
Gewijzigd op 12/02/2011 19:17:26 door Wouter J
 
Pello Mugica-Gonzalez

Pello Mugica-Gonzalez

12/02/2011 19:32:21
Quote Anchor link
Zeer wel bedankt Wouter!

Deze duidelijke uitleg is me zeer gunstig geweest, en ook de tut is zeer goed.
Hier zullen meerdere mensen gebruik van kunnen maken!

Ik test hem nu uit.


Toevoeging op 12/02/2011 19:54:28:

Ik heb hem zonet uitgetest en het blijkt niet te werken..

Weet je wat ik fout doe?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?PHP
        // Anti Speciale tekens
        if( !preg_match("/[A-Za-z0-9\'\"\.:;@!?\)\(]/", $ber) ) {
                   echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Je hebt ongeldige tekens gebruikt.<BR><B>Let op:</B> buiten leestekens zijn er geen speciale karakters toegelaten, dit om spam te voorkomen.</div>';
                   echo "<head>
                       <meta http-equiv='refresh' content='3; URL=index.php'>
                       </head>"
;
                
        }

?>
Gewijzigd op 12/02/2011 19:58:07 door Pello Mugica-Gonzalez
 
Wouter J

Wouter J

12/02/2011 20:13:48
Quote Anchor link
Een ? moet je ook met een \ ervoor doen.
 
Pello Mugica-Gonzalez

Pello Mugica-Gonzalez

12/02/2011 20:30:25
Quote Anchor link
Hmm heb het aangepast maar werkt nog steeds niet. Het is gelijk of hij de check gewoon negeert.

Dit is mijn script dan is het wat duidelijker.

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?PHP
function postmsg($naam, $ber)
    {

        if(antiflood() == true)
          {

        echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Je kunt maar 1 bericht per minuut plaatsen!</div>';
        echo "<head>
            <meta http-equiv='refresh' content='3; URL=index.php'>
            </head>"
;
        exit();
       }

        $naam = mysql_real_escape_string($naam);
        $ber = mysql_real_escape_string($ber);
        
        // Anti Speciale tekens
        if( !preg_match("/[A-Za-z0-9\'\"\.:;@!\?]/", $ber) ) {
                   echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Je hebt ongeldige tekens gebruikt.<BR><B>Let op:</B> buiten leestekens zijn er geen speciale karakters toegelaten, dit om spam te voorkomen.</div>';
                   echo "<head>
                       <meta http-equiv='refresh' content='3; URL=index.php'>
                       </head>"
;
                
                exit();
                
        }

        
        // Anti vijfdubbel lettergebruik tekens
        if( preg_match("/(.{1})(\1)(\1)/", $ber) === false ) {
                   echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;"><B>Let op:</B> Je kan slechts 5 maal dezelfde letter in 1 woord gebruiken, dit om spam te voorkomen.</div>';
                   echo "<head>
                       <meta http-equiv='refresh' content='3; URL=index.php'>
                       </head>"
;
                      
                exit();        
        }

        
        // Controleren of er een veld leeg is
        if(empty($naam) || empty($ber) || $naam == "Kies een schuilnaam.")
            {

                       echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Alle velden moeten worden ingevuld.<BR>Vergat je uw schuilnaam niet in te vullen?</div>';
                         echo "<head>
                            <meta http-equiv='refresh' content='3; URL=index.php'>
                            </head>"
;
                exit();
            }

            
        // Controleren of het bericht langer is dan 250 karakters
        if (strlen($ber) > 400)
            {

                       echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Een bericht mag maximum 400 karakters bevatten.</div>';
                         echo "<head>
                            <meta http-equiv='refresh' content='3; URL=index.php'>
                            </head>"
;
                exit();
            }

            
        // Controleren of het bericht korter is dan 5 karakters
        if (strlen($ber) < 5)
            {

                       echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Een bericht moet minumum 5 karakters bevatten.</div>';
                         echo "<head>
                            <meta http-equiv='refresh' content='3; URL=index.php'>
                            </head>"
;
                exit();
            }

        
        // Controleren op scheldwoorden    
        $searchWord = array("kut", "hoer", "loser", "motherfucker", "aars", "viagra", "penis", "kut", "vagina", "aarsridder", "klootzak", "hoer", "zwerver", "dikzak", "dik", "lelijk", "lul", "eikel", "homo", "teringlijer", "fuck", "fuckyou", "rot");
        foreach($searchWord as $word)
        {

         if(strpos($ber, $word) != false) {
                    echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Hou het vriendelijk.</div>';
                   echo "<head>
                            <meta http-equiv='refresh' content='3; URL=index.php'>
                            </head>"
;
                exit;
          }
        }

        
                
        // Als alles goed is, naar de database sturen
        $sql = "INSERT INTO shout (naam, bericht) VALUES ('".strip_tags($naam)."', '".strip_tags($ber)."')";
        $res = mysql_query($sql);

      echo '<div style="margin-top: 150px; font-size: 30px; color: #999999;">Je bericht is geplaatst.</div>';
      echo "<head>
            <meta http-equiv='refresh' content='3; URL=index.php'>
            </head>"
;
    }


?>
Gewijzigd op 12/02/2011 20:32:15 door Pello Mugica-Gonzalez
 
Wouter J

Wouter J

13/02/2011 12:36:30
Quote Anchor link
@pello,
Sorry zie nu de fout. Als er iets matched is het spam. Dus je moet niet kijken of preg_match true weergeeft.
Zo ja -> Spam
Zo nee -> Normaal bericht

En nog wat extra's. Met het extraheren van de regex (staat uitgelegd in de tutorial) kun je ook nog zorgen dat de gebruiker ziet welke tekens er verkeerd waren.
Gewijzigd op 13/02/2011 12:37:07 door Wouter J
 
Peter Hunt

Peter Hunt

18/02/2011 22:53:29
Quote Anchor link
Zomaar even een opmerking, er zijn natuurlijk ook geldige woorden met 3x dezelfde letter. Vaak hoort daar dan bijvoorbeeld een trema op, zoals "een reeele kans", maar die wordt nog wel eens achterwege gelaten :)
 



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.