Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
[MySql] Logowanie
|
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
03-05-2008, 02:28
(Ten post był ostatnio modyfikowany: 03-05-2008, 13:23 przez Wait.)
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!
Liczba postów: 289
Liczba wątków: 19
Dołączył: 18-12-2007
Reputacja:
9
03-05-2008, 16:14
(Ten post był ostatnio modyfikowany: 03-05-2008, 18:40 przez DoGeR.)
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.");
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
Niestety, ale kod, który pan podał, zwraca bład w ostatniej linii.
Pozdrawiam.
Liczba postów: 289
Liczba wątków: 19
Dołączył: 18-12-2007
Reputacja:
9
03-05-2008, 18:36
(Ten post był ostatnio modyfikowany: 03-05-2008, 18:50 przez DoGeR.)
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'; } }
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
03-05-2008, 18:46
(Ten post był ostatnio modyfikowany: 03-05-2008, 18:53 przez kajzur.)
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
Liczba postów: 289
Liczba wątków: 19
Dołączył: 18-12-2007
Reputacja:
9
03-05-2008, 18:49
(Ten post był ostatnio modyfikowany: 03-05-2008, 18:51 przez DoGeR.)
musisz stworzyć tabelę uzytkownicy z polami login i haslo
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
ALTER TABLE `users` CHANGE `password` `haslo` CHAR( 32 ) DEFAULT NULL
Mam taką tabelę.
Liczba postów: 289
Liczba wątków: 19
Dołączył: 18-12-2007
Reputacja:
9
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'; } }
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
Wszystk działa, ale dość dziwnie, mianowicie, zawsze daje komunikat "Dane niepoprawne" nawet jeśli są poprawne.
Liczba postów: 289
Liczba wątków: 19
Dołączył: 18-12-2007
Reputacja:
9
04-05-2008, 00:50
(Ten post był ostatnio modyfikowany: 04-05-2008, 00:51 przez DoGeR.)
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  W bazie jest szukany hash(md5) hasła, a ty pewnie masz bez kodowania
|
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
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|