Versio

Telefoonnummer kwestie...!?

Overzicht Reageren

Erick Schluter

Erick Schluter

13/10/2009 13:31:00
Quote Anchor link
Ik zit met een telefoonnummer-kwestie.

In een formulier met allerlei velden, waarvan enkele verplichte velden, is het telefoonnummer 'geen' verplicht veld.

Echter...dit veld moet natuurlijk wel worden gecontroleerd wanneer iemand dit invult. Namelijk op het feit dat er wel een telefoonnummer is ingevuld en niets anders/geks...hoe doe je dit?

Het mag leeg gelaten worden...maar moet wel worden gevalideerd als correct telefoonnummer.

Iemand een idee?
 
PHP hulp

PHP hulp

25/05/2012 16:12:42
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Karl Karl

Karl Karl

13/10/2009 13:44:00
Quote Anchor link
Gewoon aangeven of het een verplicht veld is of niet (weet niet hoe je dat doet, met bold, sterrtje of rood omrand).
Er naast zet je dan bijvoorbeeld: 012-3456789.
Met javascript kan je ook leuke dingen uithalen, zoals live inline validatie, wat ik ook aanraad om te doen.
 
Erick Schluter

Erick Schluter

13/10/2009 13:50:00
Quote Anchor link
Inline validatie met Javascript wil ik juist vermijden...is dat beter?

En...het aangeven dat een veld verplicht is met een 'sterretje' of zo is natuurlijk een kwestie van HTML...maar hoe zorg ik dat het veld, ondanks dat het niet verplicht is om in te vullen, toch wordt gecontrolleerd?

Dus controle op:

A- is het leeggelaten? -> no problem!

B- is het ingevuld?
B2- is het correct ingevuld?

...dat bedoelde ik...
 
Mr.Ark

Mr.Ark

13/10/2009 13:53:00
Quote Anchor link
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
<?PHP

# Kijken of het is ingevuld
if(!empty($_POST['tel']))
{

    # Voer hier een check met een REGEX uit.
}
else
{
    # Geen telefoonnummer in gevuld
    $tel = '';
}


?>


Ben niet echt bekend met REGEX (regular expression) maar dat zou volgens mij het beste zijn om een check uit te voeren.

Edit:


Misschien kan je wat op google vinden, Alleen dan zit je wel met het probleem, is het dan een mobiel nummer of een vast telefoonnummer. Dat zou dan dus betekenen dat je 2x een regex moet uitvoeren.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Karl Karl

Karl Karl

13/10/2009 13:54:00
Quote Anchor link
Erick schreef op 13.10.2009 13:50:
Inline validatie met Javascript wil ik juist vermijden...is dat beter?

Het schrijnt dat het voor de gebruiker dan duidelijker is dat er wat mis is, aangezien die dan direct ziet dat die een fout maakt. Als je bijvoorbeeld een nul te veel doet en dan het nummer te lang maakt. Zie dit artikel.

Erick schreef op 13.10.2009 13:50:
En...het aangeven dat een veld verplicht is met een 'sterretje' of zo is natuurlijk een kwestie van HTML...maar hoe zorg ik dat het veld, ondanks dat het niet verplicht is om in te vullen, toch wordt gecontrolleerd?

Euh, gewoon zoals je aangeeft:

Erick schreef op 13.10.2009 13:50:
Dus controle op:

A- is het leeggelaten? -> no problem!

B- is het ingevuld?
B2- is het correct ingevuld?

...dat bedoelde ik...
 
Erik Rijk
Moderator

Erik Rijk

13/10/2009 13:58:00
Quote Anchor link
Quote:
Erick schreef op 13.10.2009 13:50
Inline validatie met Javascript wil ik juist vermijden...is dat beter?


Het is gebruiksvriendelijker om het wel te doen, ik heb er laatst nog een artikel over gelezen.
Als de pagina eerst gaat nadenken en dan een paar seconden later zegt dat gegevens niet correct zijn haken mensen sneller af.

Het is onderzocht en daaruit is gebleken dat mensen eerder hun fouten corrigeren als ze de fout direct zien dan wanneer ze eerst een paar seconden moeten wachten.
 
Erick Schluter

Erick Schluter

13/10/2009 15:14:00
Quote Anchor link
Oke...
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?

Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.

Mr Ark - jouw oplossing ziet er solide uit, ga ik proberen! Die regex-ellende kom ik wel uit...
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
 
Karl Karl

Karl Karl

13/10/2009 16:55:00
Quote Anchor link
Erick schreef op 13.10.2009 15:14:
Oke...
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?

Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.

Je hebt daar ook kant en klare scripts voor. Ik zou dan wel een script zoeken die met een javascript lib. werkt. Zoals jQuery: jquery form validator.

Erick schreef op 13.10.2009 15:14:
Mr Ark - jouw oplossing ziet er solide uit, ga ik proberen! Die regex-ellende kom ik wel uit...

Maar dat had je zelf toch ook kunnen bedenken? :-X Je zei het al in gewoon Nederlands. Dan is de stap naar php toch niet zo moeilijk?
 
Bart niethenk

bart niethenk

13/10/2009 17:19:00
Quote Anchor link
how about regex?
dat is ook wel handig
 
GaMer B

GaMer B

13/10/2009 17:44:00
Quote Anchor link
Je hebt verschillende lengtes voor de telefoon nummers... Ook voor verschillende landen.

Een 06-nummer is bijvoorbeeld 10 cijfers lang
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)

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
<?php

function phone($number, $lengths = NULL)
{

    if ( ! is_array($lengths))
    {

        $lengths = array(7, 10, 11);
    }


    // Alle niet-cijfer characters weg doen
    $number = preg_replace('/\D+/', '', $number);

    return in_array(strlen($number), $lengths);
}


// Voorbeeld:
echo (phone('06 123 45678')) ? 'Valid' : 'Not valid';
echo (phone('35 123 456')) ? 'Valid' : 'Not valid';

// Geeft:
// Valid

// Valid[/code]
 

26/10/2009 15:42:00
Quote Anchor link
Om een Nederlands telefoonnummer te valideren dmv een regex; zie http://bit.ly/3GRVxn ;)
 
Kitty N

kitty N

26/10/2009 16:19:00
Quote Anchor link
GaMer13 schreef op 13.10.2009 17:44:
Een 06-nummer is bijvoorbeeld 10 cijfers lang
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)


Niet voor iedereen geld 7 cijfers er zijn ook gebieden die hebben 6 cijfers vast. Daarvoor krijg je dan 4 cijfers (bv. 0416)
 
Erick Schluter

Erick Schluter

31/10/2009 13:24:00
Quote Anchor link
Of 0297...etc. etc.

Kun je van zo'n 'telefoonnummer' dus niet gewoon het beste een simpel invoerveld hebben met een (in dit geval) ruimte voor 10 cijfers...?

'Mensen in Nederland' begrijpen dit toch wel? En de rest v/d wereld zal net zo zitten rommelen als 'wij nederlanders' met bv. een braziliaans telefoonnummer op een braziliaanse website.

Als een telefoonnummer niet zou passen (op een nederlandstalige website!)...haal ik persoonlijk het streepje weg...of zo...etc. Dit soort geneuzel is eigelijk toch niet meer dan logisch en bij 'elk' formulier maar weer de vraag.

Ook denk ik dat het wellicht slim is om een 'lijst met kengetallen uit Nederland' te presenteren...net zoals je vaak een specifiek land uit een pulldown kunt kiezen.

Hier kiest iemand zijn of haar kengetal waarnaast vervolgens de rest van het nummer kan worden ingevuld.

Kengetal en 'streepje' richt je dan lekker naar behoeven in.

Is dit een idee? Of bestaat er geen lijst van 'alle kengetallen van Nederland'?
 
Robert Deiman

Robert Deiman

31/10/2009 15:40:00
Quote Anchor link
Een nederlands telefoonnummer begint met een 0 (behalve 112, maar die mag je toch niet invullen :P) met daarna de "kengetallen".. Na de kengetallen mag een streepje komen, of niet en volgt de rest van het telefoonnummer.

Vooralsnog zijn de Nederlandse telefoonnummers bestaand uit 10 cijfers, dus kan je controleren op:
- Begin 0 (zet gewoon bij de naam: tel.nr. Inclusief netnummer)
- 9 andere cijfers, waarbij het 2e getal (dus het getal na de 0 niet ook nog een 0 mag zijn, de rest in theorie wel)
- Staat er een streepje in kan je deze er zelf wel uit filteren en er een 10 cijferig nummer van maken

Op zich is dat het gemakkelijkst om te doen en zo kan in principe iedereen zijn/ haar telefoonnummer opgeven.
 
Emmanuel Delay

Emmanuel Delay

31/10/2009 15:46:00
Quote Anchor link
Ik heb ooit eens een functie geschreven die verschillende formaten controleerde
(met +31..., 0031, ...).

Het staat hier wel nog ergens online; ik vind het echter niet meer.

EDIT

http://www.phphulp.nl/forum/showtopic.php?cat=1&id=55625&replies=
Zie eens of je iets hebt aan mijn laatste post daar
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 



Overzicht Reageren

Get Adobe Flash player