Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[MySql] Logowanie
#1
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!
Odpowiedz
#2
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."); 
Odpowiedz
#3
Niestety, ale kod, który pan podał, zwraca bład w ostatniej linii.

Pozdrawiam.
Odpowiedz
#4
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';
        }
    } 
Odpowiedz
#5
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
Odpowiedz
#6
musisz stworzyć tabelę uzytkownicy z polami login i haslo
Odpowiedz
#7
ALTER TABLE `users` CHANGE `password` `haslo` CHAR( 32 ) DEFAULT NULL
Mam taką tabelę.
Odpowiedz
#8
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';
        }
    } 
Odpowiedz
#9
Wszystk działa, ale dość dziwnie, mianowicie, zawsze daje komunikat "Dane niepoprawne" nawet jeśli są poprawne.
Odpowiedz
#10
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
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Logowanie STEAM YoutuberAidis 2 3,580 09-06-2017, 16:11
Ostatni post: martasmith
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,025 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,926 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,922 24-08-2013, 16:26
Ostatni post: msx83
  [PHP] Logowanie na plikach kadobe 1 3,115 23-08-2013, 19:29
Ostatni post: msx83

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl