Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[MySql] Logowanie - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: [MySql] Logowanie (/thread-mysql-logowanie)

Strony: 1 2


[MySql] Logowanie - kajzur - 03-05-2008

Witam, pewnie problem który mam jest łatwy do rozwiązania, ale mi nie idzie rozwiązanie go, chodzi o logowanie, skrypt "przepuszcza" wszystko dane wpisane przez użytkownika w formularzu. Kod wygląda tak:

Kod:
<?php
include("config.php");

$login = $_POST['login'];
$haslo = $_POST['haslo'];

if ( $db = mysql_connect( $db_server, $db_user, $db_pass ) ){ echo "<b>OK</b><BR>"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }

$lol = mysql_select_db( $db_name );

$query = "SELECT *
FROM `users`
LIMIT 0 , 30 WHERE 'login' == '$login' & 'password' == '$haslo'";
$query1 = mysql_query( $query );
echo $query1;
if ($query) echo ok;
else echo lol;
?>

Cokolwiek wprowadzę w pola formularza, dostaje napis "OK ok".

Proszę o pomoc.

EDIT:[wait] Nazywaj odpowiednio tematy!


RE: [MySql] Logowanie - DoGeR - 03-05-2008

Poprawne logowanie:
Kod PHP:
$zaloguj_z1 "select login, haslo from uzytkownicy where (login = '" $_POST['login'] . "' and haslo = '" md5($_POST['haslo']) . "') limit 1;";
    
$zaloguj_w1 mysql_query($zaloguj_z1);
    if(
mysql_num_rows($zaloguj_w1) == 0) {
        print 
'Dane niepoprawne';
    }else{
        
$zaloguj_d1 mysql_fetch_array($zaloguj_w1);
        if( (
$zaloguj_d1['haslo'] == md5($_POST['haslo'])) && ($zaloguj_d1['login'] = $_POST['login']) ) {
                        print 
'Zalogowano';
        }
     } 

i zamiast
Cytat:if ( $db = mysql_connect( $db_server, $db_user, $db_pass ) ){ echo "<b>OK</b><BR>"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }

$lol = mysql_select_db( $db_name );
lepiej daj
Kod PHP:
mysql_connect($db_server$db_user$db_pass) or die("Nie można nazwiazac polaczenia z baza danych.");
mysql_select_db($db_name) or die("Nie mozna wybrac bazy danych."); 



RE: [MySql] Logowanie - kajzur - 03-05-2008

Niestety, ale kod, który pan podał, zwraca bład w ostatniej linii.

Pozdrawiam.


RE: [MySql] Logowanie - DoGeR - 03-05-2008

Przepraszam, mój błąd poprawny kod:
Kod PHP:
$zaloguj_z1 "select login, haslo from uzytkownicy where (login = '" $_POST['login'] . "' and haslo = '" md5($_POST['haslo']) . "') limit 1;";
    
$zaloguj_w1 mysql_query($zaloguj_z1);
    if(
mysql_num_rows($zaloguj_w1) == 0) {
        print 
'Dane niepoprawne';
    }else{
        
$zaloguj_d1 mysql_fetch_array($zaloguj_w1);
        if( (
$zaloguj_d1['haslo'] == md5($_POST['haslo'])) && ($zaloguj_d1['login'] = $_POST['login']) ) {
                        print 
'Zalogowano';
        } 
        else{
            print 
'Niepoprawne dane';
        }
    } 



RE: [MySql] Logowanie - kajzur - 03-05-2008

Teraz dostaje:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\logowanie\lol.php on line 12
Dane niepoprawne

Zmieniłem nazwę tabeli tam gdzie potrzeba i działa, tzn nie wyrzuca żadnego błędu, ale cokolwiek wpiszę daje "dane niepoprawne" nawet jeśli są w bazie.

Pozdrawiam


RE: [MySql] Logowanie - DoGeR - 03-05-2008

musisz stworzyć tabelę uzytkownicy z polami login i haslo


RE: [MySql] Logowanie - kajzur - 03-05-2008

ALTER TABLE `users` CHANGE `password` `haslo` CHAR( 32 ) DEFAULT NULL
Mam taką tabelę.


RE: [MySql] Logowanie - DoGeR - 03-05-2008

Nie będę za Ciebie wszystkiego robił...
Kod PHP:
$zaloguj_z1 "select login, password from uzytkownicy where (login = '" $_POST['login'] . "' and password= '" md5($_POST['haslo']) . "') limit 1;";
    
$zaloguj_w1 mysql_query($zaloguj_z1);
    if(
mysql_num_rows($zaloguj_w1) == 0) {
        print 
'Dane niepoprawne';
    }else{
        
$zaloguj_d1 mysql_fetch_array($zaloguj_w1);
        if( (
$zaloguj_d1['password'] == md5($_POST['haslo'])) && ($zaloguj_d1['login'] = $_POST['login']) ) {
                        print 
'Zalogowano';
        } 
        else{
            print 
'Niepoprawne dane';
        }
    } 



RE: [MySql] Logowanie - kajzur - 03-05-2008

Wszystk działa, ale dość dziwnie, mianowicie, zawsze daje komunikat "Dane niepoprawne" nawet jeśli są poprawne.


RE: [MySql] Logowanie - DoGeR - 04-05-2008

kajzur to znaczy że w bazie nie ma takiego rekordu gdzie nazwa usera i haslo są poprawne. Kod jest dobry

Domyśliłem się dlaczego Ci nie działa Tongue W bazie jest szukany hash(md5) hasła, a ty pewnie masz bez kodowania