Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]"+" w zmiennej
Forum PHP.pl > Forum > Przedszkole
mperlam
Cześć. Mam następujący problem. MAm mniej więcej taki kod:

  1. $mail=$_POST['mail'];
  2. if(!empty($_POST['mail']) && strpos($mail, '@') !== false && strpos($mail, '.') !== false && strpos($mail, ' ') == false && strpos($mail, '"') == false && strpos($mail, "'") == false && strpos($mail, '*') == false && strpos($mail, '/') == false && strpos($mail, '%') == false) {


Niestety warunek "strpos($mail, ' ')" blokuje też znak "+". Gdy go usunę to mail zapisuje się w bazie jako xxx yyy@... a nie xxx+yyy@... Zapewne dzieje się tak bo przypisuję go do zmiennej (muszę to zrobić bo później interpretuję go w bazie danych).

Czy jest możliwość "przepuszczenia" znaku + i zrobienia tak, aby nie zmieniał się on na spację?
frytek92
Ale po co wymyślasz ameryke na nowo smile.gif wystarczy że użyjesz filter_var :

Kod
$email = trim('email@email.pl');
if ( (bool)filter_var($email, FILTER_VALIDATE_EMAIL) === false )
{
echo 'Nieprawidłowy adres e-mail';
}


I Masz 100% lepszy efekt pamietaj filter_var występuje w PHP >= 5.2
mperlam
Zaraz przetestuję. Mam jednak pytanie po co tutaj występuje funkcja trim? Chcę właśnie aby spacje automatycznie były wykrywane jako zły mail

Niestety funkcja, którą podałeś działa nieprawidłowo. Nie interpretuje "+" jako część maila i zwraca wtedy nieprawidłowy wynik :/
piotrooo89
Cytat(mperlam @ 31.03.2010, 19:05:12 ) *
Niestety funkcja, którą podałeś działa nieprawidłowo. Nie interpretuje "+" jako część maila i zwraca wtedy nieprawidłowy wynik :/


i tu się mylisz, funkcja działa prawidłowo, oczywiście z prawidłową flagą. o ile się nie myle jest ona zgodna z RFC 5322.
mperlam
No dobra, mój błąd. Działa smile.gif Mam jeszcze tylko pytanie co robi "(bool)"? Dręczy mnie to słówko bo nie moge zrozumieć po co ono jest tam potrzebne...
piotrooo89
niech google Cie prowadzi: http://www.google.pl/search?q=bool&ie=...lient=firefox-a
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.