Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Nie wysyła informacji do bazy dot. Maila
maly_pirat
post 31.08.2008, 08:31:48
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Znalazłem taką funkcję:
  1. <?php
  2. function check_mail($email)
  3. {
  4. $ok = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-zA-Z]{2,4}/";
  5. return (preg_match($ok, $email))true: false;
  6. }
  7. ?>


Sprawdza poprawność maila. Problem leży w tym, że gdy dodam $mail (żeby wysyłało informacje do bazy w rejestracji)
to nic się nie dzieje.
  1. <?php
  2. if(!check_mail($mail))  {$error .= 'Podany Mail '.$mail.' jest niepoprawny!<br />';}
  3. ?>


Sprawdza czy mail jest poprawny czy nie, na tym etpaie dobrze sprawdza go.
No i skrypt jedzie dalej, jeżeli nie ma błędów, wrzuć do bazy danych uzytkownik dane:
  1. <?php
  2. $sql = "INSERT INTO `uzytkownik` (`id`, `login`, `haslo`, `gg`, `ip`, `datarejestracji`) 
  3.  VALUES (NULL, '$login', '$haslo', '$gg', '$ip', '$datarejestracji')";
  4.  mysql_query($sql);
  5. echo "rejestracja - ok";
  6. ?>


To tak z części skryptu rejestracji mojej, wina tej funkcji czy jak że mail nie chce się wrzucać do bazy?
Aha,
  1. <?php
  2. function filter($co)
  3. {
  4. $co = addslashes($co);
  5. $co = strip_tags($co);
  6. return $co;
  7. }
  8. ?>


Taką mam funkcje, na początku kodu
później filtruje dane:
$_POST, itd
i dopiero mail jest sprawdzany jezeli ok, to sie dalej wykonuje skrypt.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ViX
post 31.08.2008, 10:46:45
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 9
Dołączył: 19.11.2007
Skąd: Kraków

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


spróbuj napisać funkcje check_mail na funkcji ereg()


--------------------
Poszukujący wiedzy
Go to the top of the page
+Quote Post
-gosc-
post 31.08.2008, 11:04:04
Post #3





Goście







wpisz po wysłaniu do bazy danych
echo mysql_error();
Go to the top of the page
+Quote Post
barthpl
post 31.08.2008, 11:31:06
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Po pierwsze podana przez Ciebie funkcja sprawdzająca jest nie do końca poprawna, ponieważ wg niej mail "#$barthpl@barth.pl" jest poprawny a chyba zgodzisz się że tak nie jest. Wyrażenie do sprawdzania poprawności maila to na przykład:
  1. <?php
  2. function check_mail($email)
  3. {
  4. $pattern = "/^(([a-zA-Z0-9]+)([a-zA-Z0-9._-]*)@([a-zA-Z0-9_-]+)([a-zA-Z0-9._-]+)([a-zA-Z]+))$/i";
  5. return preg_match( $pattern, $email ) == 1;
  6. }
  7. ?>


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
szopen
post 31.08.2008, 16:16:46
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 5
Dołączył: 28.08.2008

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


Cytat(maly_pirat @ 31.08.2008, 09:31:48 ) *
  1. <?php
  2. $sql = "INSERT INTO `uzytkownik` (`id`, `login`, `haslo`, `gg`, `ip`, `datarejestracji`) 
  3.  VALUES (NULL, '$login', '$haslo', '$gg', '$ip', '$datarejestracji')";
  4.  mysql_query($sql);
  5. echo "rejestracja - ok";
  6. ?>


To tak z części skryptu rejestracji mojej, wina tej funkcji czy jak że mail nie chce się wrzucać do bazy?

Ale... gdzie Ty tego maila wrzucasz? Tzn. w jakim zapytaniu? Bo w tym powyżej go po prostu nie ma, więc jak ma się "wrzucić"...
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 Wersja Lo-Fi Aktualny czas: 14.07.2025 - 18:21