Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak sprawdzić numer telefonu
redelek
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Witam,

Mam formularz w którym jest pole numer telefonu.
Chcę go tak ustawić, że jeżeli jest pusty wstawia wartość domyślną do bazy. Jeśli coś jest wpisane choć by jeden znak zaczyna sprawdzać czy jest
telefon poprawnie wpisany.

To moja kombinacja

  1. <?php
  2. if (strlen($tel)==0) {
  3. $tel='(022)622-22-22';
  4. }else{
  5. if (strlen($tel)<14 or strlen($tel)>14
  6.  or !eregi("^[0-9()-]+$",$tel)) { $blad++;
  7. echo "<span style=\"color:red;\">Błąd w podawaniu numeru telefonu. Przykład: (022)622-22-22</span><br />";
  8. }
  9.  
  10. }
  11. ?>


Prawie działa, nie sprawdza mi czy są nawiasy i myślniki tylko liczy do 14 cyfr.
Macie może jakiś na to pomysł ?

Pozdrawiam
Redelek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Zwróciłeś uwagę na różnice między moim kodem, a Twoim?

Kurcze, trochę logicznego myślenia - przetłumaczę Twój warunek i potem swój:
Kod
if (strlen($tel)>0 || !preg_match("/\(0[1-9]{3}\)[0-9]{3}-[0-9]{2}-[0-9]{2}/",$tel)) {
Jeśli długość jest większa od zera lub wyrażenie nie pasuje do regExpa wyświetl good.

Lub znaczy że przynajmniej jeden z tych warunków jest spełniony - u Ciebie jest, bo długość jest większa od zera i notabene wyrażenie nie pasuje do wzorca.

Kod
  if (strlen($tel)<=0 || !preg_match("/\(0[1-9]{2}\)[0-9]{3}-[0-9]{2}-[0-9]{2}/",$tel)) {
Jeśli długość jest równa zeru (lub mniejsza, z rozpędu mi się napisało) lub wyrażenie nie pasuje do wzorca wyświetl błąd.

Jeśli przynajmniej jedno z tych nie jest spełnione - wyświetlany jest błąd.
Ale nie baw się w te ory, andy i tak dalej, a wyrzuć spokojnie sprawdzanie długości. Niepotrzebne jest. I przeanalizuj przykłady

Ten post edytował Shili 11.07.2008, 15:06:21
Go to the top of the page
+Quote Post
redelek
post
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Cytat(Shili @ 11.07.2008, 13:57:03 ) *
Zwróciłeś uwagę na różnice między moim kodem, a Twoim?

Kurcze, trochę logicznego myślenia - przetłumaczę Twój warunek i potem swój:
Kod
if (strlen($tel)>0 || !preg_match("/\(0[1-9]{3}\)[0-9]{3}-[0-9]{2}-[0-9]{2}/",$tel)) {
Jeśli długość jest większa od zera lub wyrażenie nie pasuje do regExpa wyświetl good.

Lub znaczy że przynajmniej jeden z tych warunków jest spełniony - u Ciebie jest, bo długość jest większa od zera i notabene wyrażenie nie pasuje do wzorca.

Kod
  if (strlen($tel)<=0 || !preg_match("/(0[1-9]{2})[0-9]{3}-[0-9]{2}-[0-9]{2}/",$tel)) {
Jeśli długość jest równa zeru (lub mniejsza, z rozpędu mi się napisało) lub wyrażenie nie pasuje do wzorca wyświetl błąd.

Jeśli przynajmniej jedno z tych nie jest spełnione - wyświetlany jest błąd.
Ale nie baw się w te ory, andy i tak dalej, a wyrzuć spokojnie sprawdzanie długości. Niepotrzebne jest. I przeanalizuj przykłady


Troszkę nie ( przepraszam ), ale nawet Twój kod nie działa, cały czas wyświetla błąd pomimo podania poprawnego numeru

OOO działa TROSZKĘ POPRAWIŁEM I DZIAŁA. DZIĘKI PANOWIE ZA POMOC I ZA ZAINTERESOWANIE (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !!!

Ten post edytował redelek 11.07.2008, 15:10:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.08.2026 - 19:14