Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dlaczego zle sprawdza mi maila?
Forum PHP.pl > Forum > Przedszkole
lnn
mam taki oto kod:
  1. <?php
  2. } elseif (!ereg("^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+.[a-z]{2,4}$", $email))
  3. { echo "zly mejl";
  4. ?>

i wywala blad jesli adres ma postac np.:
imie-nazwisko@domena.pl (chodzi chyba o myslnik, bo w innych przypadkach jest ok)

zrobilem tak
  1. <?php
  2. } elseif (!ereg("^[a-zA-Z0-9.sleep.gif]+@[a-zA-Z0-9.sleep.gif]+.[a-z]{2,4}$", $email)) {
  3. ?>
i niby hula ;P chyba ze ktos jest innego zdania? smile.gif ze to bedzie zle rozwiazanie? dopisalem \- drugi myslnik..
teraz zarowno sprawdza imie-inazwisko@domena-jakas.pl
bo w drugim czlonie wczesniej tez blad wyskakiwal
c3zi
Tak właśnie 3ba było zrobić.
MajareQ
Rzadko spotykam gościa, który zakłada temat po to by opisać problem podać prawidłowe rozwiązanie i spytać czy jest złe.

Jest dobrze.
erix
Cytat
i niby hula ;P chyba ze ktos jest innego zdania? ze to bedzie zle rozwiazanie?

Tak, to jest złe rozwiązanie. Kwestia czasu - ereg" title="Zobacz w manualu PHP" target="_manual nie będzie.
MajareQ
No i fakt - preg_match jest szybsze.
erix
Nie chodzi o to, że tylko szybsze, ale w PHP6 funkcji z grupy ereg" title="Zobacz w manualu PHP" target="_manual nie będzie.
MajareQ
Dlatego w moim poście napisałem && a nie === ;p
lnn
kurde to co uzyc, podobny przyklad sprawdzania w manualu znalazlem, wiecie adres do manuala to ja znam i skoro mowicie ze ereg bedzie zle to po cholere mi do niego link dajecie? ;-) lepiej jak ktos wie to podpowiedzialby jak to zastapic ;D
PawelC
  1. <?php
  2. $pobrane_zrodlo="adres@wp.pl";
  3. if(preg_match('/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9-.]+.[a-zA-Z]{2,4}$/', $pobrane_zrodlo, $znalezione))
  4. { echo "Podany adres, jest adresem e-mail!";   }
  5. else
  6. echo "Podany adres, nie jest adresem e-mail!";
  7. ?>
lnn
ExPlOiT, dzieki dziala smile.gif a czy to bedzie poprawne ze specyfikacja PHP 6? biggrin.gif bo juz zbaranialem..
a nie powinno byc bez tej zmiennej znalezione?
  1. <?php
  2. if(preg_match('/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9-.]+.[a-zA-Z]{2,4}$/', $pobrane_zrodlo))
  3. ?>
DREEMus
Myśląc logicznie tak, skoro w PHP6 ereg nie będzie smile.gif a na temat preg_match nikt złego słowa nie napisał smile.gif
lnn
hm a jesli chce zeby sprawdzalo czy email jest niepoprawny to daje wykrzyknik?
  1. <?php
  2. } elseif (!preg_match('/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9-.]+.[a-zA-Z]{2,4}$/', $email)) {
  3. ?>

o tak o? smile.gif

a jak sprawdzic nr tel? tzn mam koncepcje tzn
  1. <?php
  2. } elseif (!preg_match('/^[0-9-]{4,}$/', $tel)) {  // min 5 znakow format 500100100 lub 500-100-100
  3. ?>

ale chcialbym ulatwic uzytkownikowi robote jesli np wpisze w formie 574554-554-54 z myslnikami zeby tez przechodzilo walidacje winksmiley.jpg
DREEMus
To zrób sobie 3 pola po 3 cyfry biggrin.gif
To będzie duże ułatwienie biggrin.gif

PS. Pamiętaj o nr kier. kraju, bo nie każdy jest w PL, np. ja biggrin.gif
"tzn. mam koncepcje tzn." - nocne siedzenie Ci chyba nie służy smile.gif

  1. <?php
  2. }
  3. elseif ( !preg_match ( '/^[0-9-] {9,12}$/', $tel ) ) // od 9 sam nr, do 12 z 3 "-"
  4. {
  5. ?>


// Widzę, że już sobie poradziłeś smile.gif
lnn
dzieki, ano chyba nie sluzy smile.gif poza tym chodzi o skrypt zgloszeniowy do promocji lokalnej to jak ktos chce to niech podaje nr polski ;p albo jakos inaczej wpisze ten zagramaniczny ;D
DREEMus
ale walidacją zablokowałeś podawanie np +34 smile.gif

dopisz pole na nr kier. z domyślą wartością +48 winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.