Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Rejestracja
damianexson
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.09.2011

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


Witam,
Uczę się PHP i napisałem rejestrację, z tym że zarowno username jak i password sprawdza mi case-insensitive. A tego nie chcę. Urywki kodów:
  1. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  2. if($zapid = mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'")){
  3. if(mysql_num_rows($zapid)){ //zalogowano :)

Rozumiem, że zapytanie zwraca niezależnie od wielkosci liter i musze to teraz sprawdzic poprzez fetch_row() ? Czy może da się coś do tego zapytania dopisac?

Druga sprawa to potwierdzenie e-maila. Pomysł na to mam, jednak chodzi mi o samo wysyłanie...Czy taka funkcja która znalazłem jest bezpieczna, bo coś tam mi się kiedyś o uszy obiło, że czasem się jakiś spam załacza do takich wiadomości. I jeszcze, żeby mojej wiadomości do spamu nie dodawało w skrzynce.
  1. $adresat = 'adres@serwer.pl'; // pod ten adres zostanie wysłana // wiadomosc
  2. @$email = $_POST['email'];
  3. @$content = $_POST['content'];
  4. $header = "From: ktos@serwer.pl \nContent-Type:".
  5. ' text/plain;charset="iso-8859-2"'.
  6. "\nContent-Transfer-Encoding: 8bit";
  7. if (mail($adresat, 'List ze strony', $content, $header))
  8. echo '<p>działa</p>';
  9. else
  10. echo '<p><b>NIE</b> wysłano maila!</p>';
  11. ?>


Pozdrawiam,
Z góry dzięki za pomoc!

Ten post edytował damianexson 6.09.2011, 11:45:17
Go to the top of the page
+Quote Post
doogi
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 5
Dołączył: 9.04.2008

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


Cytat
if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
if($zapid = mysql_query("select * from users where user_login = '".mysql_escape_string($_POST["login"])."' AND user_haslo = '".mysql_escape_string($_POST["haslo"])."'")){
if(mysql_num_rows($zapid)){ //zalogowano smile.gif


Zamiast htmlspecialchars() proponuje użycia mysql_escape_string(), bo to ta druga funkcja ma zapewniać bezpieczeństwo w przypadkach pakowania danych od użytkownika do zapytania SQL. Ogólnie polecam poczytać ten temat na forum
Inną bardzo ważną sprawą jest to by nie trzymać w bazie haseł w postaci plain-text, co u Ciebie z tego co widzę właśnie występuje. Tutaj wątek rozwijaący temat potrzeby szyfrowania takich danych jak hasła w bazie danych.

Jeśli chodzi o funkcje mail() to sama funkcja niczego nie dolepia, jedynie demon serwera poczty wychodzącej może coś takiego zrobić (tudzież Twoje parametry, które przekazujesz do funkcji mail()).
Go to the top of the page
+Quote Post
damianexson
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.09.2011

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


No ok, ale ja do tego projektu hashować nie muszę.

Zamieniłem tą funkcję, ale nadal jest case-insensitive sad.gif

Ok znalazlem to sobie googlując 30 sekund -.- brakowało mi BINARY przed user_haslo. Dodajac BINARY w sql query sprawiamy ze zwraca uwagę na wielkie male litery i nie zalicza ą jako a np.

Ten post edytował damianexson 6.09.2011, 12:25:14
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: 19.08.2025 - 16:02