Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]"+" w zmiennej
mperlam
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


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


--------------------
Go to the top of the page
+Quote Post
frytek92
post
Post #2





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 9.11.2007
Skąd: Goleniów

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


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


--------------------
Go to the top of the page
+Quote Post
mperlam
post
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


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 :/


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.


--------------------
Go to the top of the page
+Quote Post
mperlam
post
Post #5





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


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...


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




niech google Cie prowadzi: http://www.google.pl/search?q=bool&ie=...lient=firefox-a


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 00:56