Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Rejestracja
Forum PHP.pl > Forum > Przedszkole
damianexson
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!
doogi
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()).
damianexson
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.
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.