Hoe kan ik controleren of een string spaties bevat?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben

Ruben

19/11/2006 22:44:00
Quote Anchor link
Ik heb een loginscript, waarin in de loginnaam ook spaties kunnen voorkomen. Hoe kan ik er voor zorgen dat dit niet gebeurt. Heeft iemand hier misschien een functie voor of een andere oplossing? Ik heb namelijk geen idee hoe ik dit oplos..
Alvast bedankt! :)
 
PHP hulp

PHP hulp

23/04/2024 20:55:42
 
Jan Koehoorn

Jan Koehoorn

19/11/2006 22:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $loginnaam
= eregi_replace('[^a-zA-Z0-9]', '', $loginnaam);
?>
 
K i p

K i p

19/11/2006 23:01:00
Quote Anchor link
Huh, Jan? Dat snap ik niet? Staat daar nou, vervang a-z en A-Z en 0-9 met niks?

Ik denk dat Ruben bedoelt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$loginnaam
= str_replace(' ','',$loginnaam);
?>
 
Ruben

Ruben

19/11/2006 23:13:00
Quote Anchor link
Ik zocht het eigenlijk meer in de vorm van:

if($login bevat spaties){
//Gebruiker waarschuwen en registratie stoppen
}

Bij jullie oplossingen worden volgens mij gewoon alle spaties uit de string verwijdert, of niet?

Thx voor de reactie :)
 
Red Crew

Red Crew

19/11/2006 23:18:00
Quote Anchor link
Je kan voor je sql inbrengt een controle invoeren.
Met $good = true;
en als ze falen op een van de controles komt $good op false te staan en dan gaat de registratie niet door en kunnen ze terug gestuurd worden.
 
CrawlBackwards

CrawlBackwards

19/11/2006 23:19:00
Quote Anchor link
gebruik strpos() om te bepalen of der spaties in zitten..
denk dat dit t snelst werkt..
 
Ruben

Ruben

19/11/2006 23:26:00
Quote Anchor link
Oke, dus dan kan ik gewoon neerzetten

if(strpos($string, ' ')){
//Spatie komt voor in string
}

Thx, dit ga ik even testen. Dit is volgens mij het makkelijkst
 
Jan Koehoorn

Jan Koehoorn

19/11/2006 23:29:00
Quote Anchor link
Boris schreef op 19.11.2006 23:01:
Huh, Jan? Dat snap ik niet? Staat daar nou, vervang a-z en A-Z en 0-9 met niks?

Ik denk dat Ruben bedoelt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$loginnaam
= str_replace(' ','',$loginnaam);
?>

In regexen is een ^ binnen [ en ] een ontkenning. Zoiets als ! in PHP.
Wat er dus staat, is: vervang alles wat geen letter of cijfer is door een lege string. Met andere woorden: haal alle niet alfanumerieke tekens er uit.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Jan Koehoorn

Jan Koehoorn

19/11/2006 23:34:00
Quote Anchor link
Ruben schreef op 19.11.2006 23:26:
Oke, dus dan kan ik gewoon neerzetten

if(strpos($string, ' ')){
//Spatie komt voor in string
}

Thx, dit ga ik even testen. Dit is volgens mij het makkelijkst

Dat werkt wel, maar alleen voor spaties. Ik denk dat mijn regex voorbeeld interessanter voor je is. Die verwijdert namelijk alle rare tekens, behalve cijfers en letters.
 
Ruben

Ruben

19/11/2006 23:50:00
Quote Anchor link
Oke, dat is idd ook nog handig om dat te voorkomen ja :)
Bedankt hiervoor. Nu kan ik weer verder.

Iedereen bedankt voor zijn snelle reacties!
 
Tamara

Tamara

20/11/2006 11:05:00
Quote Anchor link
wat een handig script, ik zit de hele tijd al te klooien met hoe user input te filteren...
Gewijzigd op 01/01/1970 01:00:00 door Tamara
 
Martijn B

Martijn B

20/11/2006 11:13:00
Quote Anchor link
Zo werkt het beter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if( strpos($string, ' ') !== false ){
//Spatie komt voor in string
}
?>


Als ik in de vorige oplossing nu in $string begin met een spatie dan kan ik daarna ook gewoon spacies gebruiken omdat strpos in dit geval 0 weer geeft wat dus overeenkomt met boolean false.
 
Pim Vernooij

Pim Vernooij

20/11/2006 12:17:00
Quote Anchor link
Daar heeft php een ingebouwde functie voor hoor :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sString
= "dit is een voorbeeld zin";

if( strlen( $sString ) != strlen(trim( $sString ) ) ) {
    echo "Deze string bevat spaties!";
}

else {
    echo "Deze string bevat geen spaties!";
}

?>


/edit:
Hmm.. toch niet helemaal. trim(); haalt whitespace aan het begin en einde van de string weg.
Gewijzigd op 01/01/1970 01:00:00 door Pim Vernooij
 
Martijn B

Martijn B

20/11/2006 12:41:00
Quote Anchor link
@Pim Vernooij:

Misschien dat je oplossing zo wel lukt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sString
= "dit is een voorbeeld zin";

if( strlen( $sString ) != strlen(trim( $sString, ' ' ) ) ) {
    echo "Deze string bevat spaties!";
}

else {
    echo "Deze string bevat geen spaties!";
}

?>


Maar ik vind strpos() toch makkelijker en is misschien ook wel sneller.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 



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.