Jak sprawdzać podany login i hasło?


(jacko1998) #1
$login = @$_POST['login'];$haslo = @$_POST['haslo'];$pobr_login = mysql_query("SELECT * FROM uzytk WHERE `login` = '$login'");$pobr_pass = mysql_query("SELECT * FROM uzytk WHERE `haslo` = '$haslo'");

(ra-v) #2

Pisałem z ręki, więc nie odpowiadam za poprawność.

Wcześniej oczywiście musisz użyć session_start() i połączyć się z bazą danych.

if( isset($_POST['wyslij']) ){    if( !empty($_POST['login']) and !empty($_POST['haslo']) ){        $q = mysql_query("SELECT id FROM uzytk WHERE `login` = '".mysql_real_escape_string($_POST['login'])."' AND `haslo` = '".mysql_real_escape_string($_POST['haslo'])."'");        if( mysql_num_rows($q)==1 )        {            $user = mysql_fetch_assoc($q);            $_SESSION['logged'] = $user['id'];        }        else{                echo "You can't be logged in.";        }    }    else{        echo "No login or password";    }[/code]

(jacko1998) #3

Nie działa ;/ W Twoim kodzie nie widzę porównywania tego co wpisał użytkownik, do tego co jest w bazie :?


(ra-v) #4

A jaki błąd wywala?

Porównanie jest w zapytaniu do bazy, w którym uzyskuje się ID, lub się go nie uzyskuje.


(jacko1998) #5

5167994900_1381870770_thumb.jpg


(ra-v) #6

Bo pewnie jest błąd w zapytaniu, dlatego $q jest false (czyli bool) a nie zasobem (resource).

To niżej wyświetli jaki to błąd, więc go popraw.

$q = mysql_query("SELECT id FROM uzytk WHERE `login` = '".mysql_real_escape_string($_POST['login'])."' AND `haslo` = '".mysql_real_escape_string($_POST['haslo'])."'") or die(mysql_errno().': '.mysql_error()); [/code]

(jacko1998) #7
<?php('localhost', 'root', '', 'uzytkownicy') or die (mysql_error());?[/code]Słyszałem gdzieś, że funka [b]mysql_connect[/b] jako czwarty parametr, może przyjąć nazwę bazy. Poprawiłem, zaznaczając bazę funkcją [b]mysql_select_db[/b] Dzięki !