Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z potwierdzeniem rejestracje poprzez email
Forum PHP.pl > Forum > Przedszkole
rudolf35
Robie potwierdzenie rejestracji uzytkownika poprzez email. Wykorzystałem do tego funkcje mail, ale ona mi zwraca wartosc "true" nawet jesli nie wpisze zadnego adresu email, mój kod:
CODE
if(mail($email_temat, $email_temat, $email_wiadomosc))

{

mysql_query('INSERT INTO `admin` (`login`, `haslo`) VALUES(

\''.mysql_real_escape_string($_POST['login']).'\',

\''.mysql_real_escape_string($_POST['haslo']).'\')');

echo "Twoje konto zostało utworzone";

}

else

{

echo "Popraw adres email";

}

i dlatego w kazdym przypadku pisze "Twoje konto zostało utworzone", prosze o rade lub podsuniecie mi alternatywnej funkcji. Pozdro
dadexix
a co chjcesz uzyskać?

i w ogóle 2 razy dajesz temat?

if(mail($email_temat, $email_temat, $email_wiadomosc))
rudolf35
Chce uzyskać taki efekt, zeby funkcja w przypadku podania złego adresu email zwracała wartosc "false", a wtedy automatycznie warunek byłby nie spełniony. Ten drugi temat dałem później, żeby sprawdzić czy w kazdym przypadku zwruci ona wartosc "true" i tak tez sie stało, bo oczywiste ze tam powinna byc zmienna zawierajaca jakis adre email. Po prostu chce aby nie mozna było stworzyc konta jesli user poda adres email na ktury funkcja ta nie ma prawa niczego wysłac
dadexix
hmm takie proste to nie jest bo nawet jeśli adres będzie nie poprawny to go wyśle... jeśli np. będzie wysłany na nie istniejącą skrzynkę to serwer MX może(lecz nie zawsze) wysłać zwrotnego maila że adres nie prawidłowy.. ale to 1. może trwać 2. php to nie pop3 i nie umie "samo" odbierać maili....
ale można zrobić coś takiego najpierw sprawdzasz czy w ogóle coś ten ktoś wpisal...
  1. <?php
  2. isset($zmienna);
  3. ?>


potem sprawdzasz czy w ciągu jest @

Kod
$ile = substr_count($adres_mail, '@');
if ($ile == 1){insturukcje jeśli ok}


Jeszcze możesz sprawdzić czy domena istnieje ale z tym nie do mnie - ja początkujący - ale chyba by to był CURL:P
Redchiro
Ta funkcja sprawdza czy ciąg znaków jest adresem e-mail (poprawnym czyli jest @ i .):
CODE
ereg ("^.+@.+\..+$", $_POST['mail']))

jeśli zwróci True tzn ze adres poprawny.
dadexix
  1. <?php
  2. substr_count($adres_mail, '@')
  3. ?>
a ta niby nie działa? zwraca 1 jeśli jest to poprawny adres:P

edit: a Ty sprawdzasz jeszcze kropkę? noo tak też można:P ale co za róznica:D? możesz dodać
Kod
substr_count($adres_mail, '.')
i gotowe:P

tylko nie wiem czy Twoja funkcja nie zwróci true jeśli małpy będą dwie albo i nawet trzy[..]? moja jeśli da jeden to mała jest tylko jedna.. a jeśli jest więcej to da więcej(przy dwóch @ daje 2 itd)
rudolf35
Dzięki dadexix, wykorzystałem zaproponowane przez ciebie funkcje, zawsze coś do przodu snitch.gif . Chociarz nie zabezpieczy to przed tworzeniem konta "dla jaj", ale wprowadzi troche porządku. Bede musiał popracować nad wysyłaniem na maila linka aktywacyjnego, a to troche więcej roboty worriedsmiley.gif
Gość
Poprawność wprowadzonego adresu e-mail najlepiej sprawdzić wyrażeniem regularnym (np. http://www.regular-expressions.info/email.html) bo co jeśli ktoś wpisze "jozek@jozek" albo wręcz samo "@"?
dadexix
jak się chce dobrze sprawdzać można sprawdzać czy istnieje podana domena... więcej chyba się nie zrobi...
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.