[MySQL + PHP] Nie czyta mi hasła z bazy

0

No więc... Zrobiłem skrypt logowania. Działa wszystko...prawie. Podczas sprawdzania czy hasło podane jest zgodne z tym z bazy nie pobiera danych. Oto kod:

<?
  include'config.php';

  $name = $_POST['user'];
  $pass = $_POST['pass'];

  connect();

  $haslo_db = mysql_query("SELECT `pass` FROM `users` WHERE `name` = '".$name."'");

  while($g = mysql_fetch_array($haslo_db)){
    $g['pass'] = $pas;
  }

  if ($pass == $g['pass']){
    echo'Wpisałeś złe hasło!';
    exit;
  }

  disconnect();

  echo'Zalogowany jako: '.$name;

  $lp = 1;

  $_SESSION['name'] = $name;
  $_SESSION['haslo'] = $pass;
  $_SESSION['loged'] = $lp;

  session_register($name);
  session_register($pass);
  session_register($lp);



  include'index.php';

?>

P.S. Nie zwraca mi zadnych błędów

0

Witam!
A co masz w funkcji connect i disconnect? Może tam Ci się nie łączy z bazą i masz błędy.

0

Mam wszystko dobrze. A jest znaczenie między dużą, a małą literą w nazwie bazy??

0
mat_1200 napisał(a)

Mam wszystko dobrze. A jest znaczenie między dużą, a małą literą w nazwie bazy??

No, raczej... :)

// EDIT 1

Spróbuj powyświetlać jakie wartości zwraca z bazy poszczególne pole.
Możesz też wprowadzić do zapytania SQL "LIMIT 1" na koncu, żeby znalazło Ci tylko 1 rekord.

Pozdrawiam,
wert120

0

No teraz to nie chce mi sie w ogóle otworzyc strona...

0
<?
  include'config.php';

  $name = $_POST['user'];
  $pass = $_POST['pass'];

  connect();

  $haslo_db = mysql_query("SELECT `pass` FROM `users` WHERE `name` = '".$name."'");

  while($g = mysql_fetch_array($haslo_db)){
    $g['pass'] = $pas;
  }

  if ($pass == $g['pass']){
    echo'Wpisałeś złe hasło!';
    exit;
  }

co ty tu robisz ? ostatni rekord gdzie w polu "name" jest nazwa użytkownika (nie zabezpieczona) z post jest przepisywany do zmiennej "$g" gdzie jest dodawany/nadpisywany indeks 'pass' wartością z jakiejś zmiennej $pas której nigdzie nie zainicjowałeś chyba :| a dalej sprawdzasz czy $pass jest takie samo jak $g['pass'] i jeśli się zgadza to wypisujesz że złe hasło - gdzie tu logika ? gdzie sens ?

do tego skryptu co podałeś, nawet nie musisz się łączyć z bazą danych ... po co ? daj od razu

$pass = $_POST['pass'];
$g['pass'] = $pas;
if($g['pass'] == $pas) echo "Złe hasło";

i będzie ten sam efekt

"Zrobiłem skrypt logowania. Działa wszystko...prawie. Podczas sprawdzania czy hasło podane jest zgodne z tym z bazy nie pobiera danych"

to co działa ? myślałem że to jest 99% co powinien robić skrypt logowania

1 użytkowników online, w tym zalogowanych: 0, gości: 1