login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cijfer en letter controle

Offline Dierre - 30/09/2006 14:09
Avatar van DierreMySQL interesse voor een invul formulier zou ik bij een paar velden willen controleren of er cijfers staan en geen letters en ook omgekeerd. Hoe zou ik dat het best doen? Het gaat bijvoorbeeld om een telefoonnummer waar ik geen lettters in mag hebben... wie kan me (opweg) helpen?

TIA
Dierre

7 antwoorden

Gesponsorde links
Offline svm - 30/09/2006 14:16 (laatste wijziging 30/09/2006 14:28)
Avatar van svm PHP ver gevorderde Om te kijken of het ingevoerde in een veld nummerriek is, kun je de volgende functie gebruiken:
is_numeric().

Om op tekst te controleren heb ik geen functie gevonden.
Je kunt dus hetvolgende scriptje gebruiken.
Hierbij noem ik ik het veld waar je alleen letters in mag voeren even text_veld.
  1. <?php
  2. if(isset($_POST['text_veld'])){
  3. if(!strpos($_POST['text_veld'], '0') && !strpos($_POST['text_veld'], '1') && !strpos($_POST['text_veld'], '2') && !strpos($_POST['text_veld'], '3') && !strpos($_POST['text_veld'], '4') && !strpos($_POST['text_veld'], '5') && !strpos($_POST['text_veld'], '6') && !strpos($_POST['text_veld'], '7') && !strpos($_POST['text_veld'], '8') && !strpos($_POST['text_veld'], '9')){
  4. // hier de verzend code
  5. }else{
  6. echo "Er bevinden zich nummers in je tekst!";
  7. }
  8. }
  9. ?>

Hij is misschien wat omslachtig, maar het kan.
Offline Simon - 30/09/2006 14:21 (laatste wijziging 30/09/2006 14:45)
Avatar van Simon PHP expert je kan gebruik maken van reguliere expressies (regex)
ik zoek even de tutorial
http://www.site...4&id=5
  1. <?php
  2. function onlyCharacters($pString) {
  3. return(preg_match("/^[aA-zZ]+$/", $pString));
  4. }
  5.  
  6. function onlyDigits($pDigits) {
  7. return(preg_match("/^[0-9]+$/", $pDigits));
  8. }
  9.  
  10. /*gebruik*/
  11. if(!onlyDigits($_POST['telefoon'])) {
  12. echo 'Een telefoonnummer bestaat enkel uit cijfers';
  13. }
  14. ?>
Offline Dark_Paul - 30/09/2006 17:52 (laatste wijziging 30/09/2006 17:53)
Avatar van Dark_Paul PHP ver gevorderde @Simon
het vervelende is dat mensen wel eens telefoonnummers invoeren met een spatie of - ertussen, dus dan zou je er een [:punct:] bij moeten zetten.
  1. <?php
  2. function onlyCharacters($pString) {
  3. return(preg_match("/^[aA-zZ]+$/", $pString));
  4. }
  5.  
  6. function onlyDigits($pDigits) {
  7. return(preg_match("/^[0-9[:punt:]]+$/", $pDigits));
  8. }
  9.  
  10. /*gebruik*/
  11. if(!onlyDigits($_POST['telefoon'])) {
  12. echo 'Een telefoonnummer bestaat enkel uit cijfers';
  13. }
  14. ?>

Of natuurlijk eerst proberen te exploden op een - of spatie en dan controleren.
Offline Simon - 30/09/2006 17:57
Avatar van Simon PHP expert of je zet het er gewoon bij, "enkel cijfers"
Offline Rens - 30/09/2006 17:58
Avatar van Rens Gouden medaille

Crew algemeen
Ja, en jij denkt dat iedereen zich daaraan houd?
Offline Dierre - 01/10/2006 22:23
Avatar van Dierre MySQL interesse er zijn er altijd die dat niet zullen doen. en als ik zoiets zie staan van enkel dit of dat zou ik nog meer geneigd zijn om dat script eens te testen als je toch letters zet ipv cijfers (in dit geval hier natuurlijk)

maar ik denk dat ik met die functie is_numeric() toch wel al een eindje op weg kan en met die andere voorbeelden ook

thx
Offline bosgroen - 01/10/2006 23:37 (laatste wijziging 01/10/2006 23:37)
Avatar van bosgroen Gouden medaille

PHP interesse
ik zet vaak een / of - na het zonenummer 
Overigens met of zonder landnummer? +32
enja, je kan ook nog altijd eens de lengte checken
mijn telefoonnumer, heeft 9 cijfers, mijn gsm-nummer 10 cijfers (België)
Persoonlijk zou ik spaties,/,- verwijderen uit string en dan kijken of er genoeg cijfers in staan
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s