Bepaalde tekens herkennen in een string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Christian Snijders

Christian Snijders

04/10/2010 21:36:44
Quote Anchor link
Hallo,

aangezien ik eigenlijk overal gezocht heb en het nhiet heb kunnen vinden vraag ik jullie hulp maar

ik zoek een controlescriptje die kan kijken of er verboden tekens aanwezig zijn
het gaat om de tekens: _ \ / . & * ()^ % $ # @ ! [ ] { } : ; > < € |

dus het word gepost met: $_POST['username']

en ik wilde zo iets gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($nochar != true){
print "Er is een verboden teken gebruikt";
}

?>


wie weet hoe ik dit het beste kan oplossen?
 
PHP hulp

PHP hulp

18/12/2024 14:31:58
 
SilverWolf NL

SilverWolf NL

04/10/2010 22:08:14
Quote Anchor link
Een regex is de beste oplossing. Dan wel in combinatie met preg_match()
 
Pim -

Pim -

04/10/2010 22:15:36
Quote Anchor link
Whitelisten is beter dan blacklisten!
 
Christian Snijders

Christian Snijders

04/10/2010 23:06:17
Quote Anchor link
Pim de Haan op 04/10/2010 22:15:36:
Whitelisten is beter dan blacklisten!


hoe kan ik dat het beste aanpakken?
 
Pim -

Pim -

04/10/2010 23:14:16
Quote Anchor link
Hangt ervan af wat je wél wil toestaan.

Kijk op php.net eens naar ctype
 
Mark L

Mark L

04/10/2010 23:14:54
Quote Anchor link
Ook d.m.v. preg_match();
Je moet het zo zien:
Als je dit allemaal weigert: _ \ / . & * ()^ % $ # @ ! [ ] { } : ; > < € |, dan accepteer je dus: , ~ ` ø ß en dan nog 60000 andere tekens weggelaten.

Je kunt beter zeggen:
Ik wil alleen kleine letters (a-z), hoofdletters (A-Z), cijfers (0-9), streep - .. etc.
Dan kun je een regex samenstellen: tutorial();
 
Christian Snijders

Christian Snijders

04/10/2010 23:31:52
Quote Anchor link
ik heb nu:
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
if(preg_match('/[a-zA-Z\\d]+/',$_POST['user']))  
{
$temp=userByName($_POST['user']);
if($temp['username']!="" || $_POST['user'] == "desktop" || $_POST['user'] == "Desktop" || $_POST['user'] == "DESKTOP" || $_POST['user'] == "gprs" || $_POST['user'] == "GPRS" || $_POST['user'] == "Gprs")
{
$active--;
print "<div id='error'>Gebruikersnaam bestaat al</div>";
}
elseif($_POST['user']=="")
{
$active--;
print "<div id='error'>Gebruikersnaam kan niet leeg zijn!</div>";
}
else
{
print "<div id='error'>Naam beschikbaar</div>";
}
}
else{
print "<div id='error'>Er werden niet toegestane tekens ingevoerd</div>";
$active--;
}
}

alleen wanneer er letters tussen staan word hij nog goedgekeurd, hij moet hem dann gewonn afkeuren, wat doe ik fout?
 



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.