Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiast array, baza danych.
Forum PHP.pl > Forum > PHP
mith
Witam
Jak można przerobić poniższy skrypt służący do logowania się tak aby pobierał dane zamiast z array to z bazy danych?

  1. <?
  2. $user_table = array(
  3. "login1"=>"haslo1",
  4. "login2"=>"haslo2",
  5. "login3"=>"haslo3"
  6. );
  7.  
  8. if ($_POST)
  9. {
  10. foreach($user_table as $username=>$password)
  11. {
  12. if (($_POST['username_md5'] == md5($username)) AND ($_POST['password_md5'] == md5($password)))
  13. {
  14. echo '1';
  15. }
  16. }
  17. echo '0';
  18. }
  19.  
  20. else
  21. {
  22. header("Location: blad.php");
  23. }
  24. ?>


Dzięki z góry.
^bmb
A zrobiłeś chociaż tabelę w której masz zamiar przechowywać userów i hasła?

jeśli tak to np:

  1. <?php
  2. $user=$_POST['user'];
  3. $pass=md5($_POST['pass']);
  4. $res=mysql_query("SELECT * FROM {NAZWA TABELI} WHERE {KOLUMNA Z USERAMI}=$user AND {KOLUMNA Z
     HASŁAMI}=$pass"
    );
  5.  
  6. if(mysql_num_rows($res)==1) echo 'zalogowany';
  7. else echo 'Błąd logowania';
  8. ?>


--
pozdrawiam
^bmb
mith
Jest jeden problem bo jak użytkownik się loguje to podany przez niego login i hasło jest od razu szyfrowane w md5, a w bazie danych nic nie jest zaszyfrowane. I dlatego trzeba zrobić coś aby przy poszukiwaniu loginu i hasła w bazie danych od razu on to szyfrował i porównywał z zaszyfrowanymi wynikami wpisanymi przez użytkownika, no ale właśnie jak to zrobić?

szkic bazy danych:

login: | haslo:

login1 | haslo1
login2 | haslo2
login3 | haslo3
nospor
Cytat
Jest jeden problem bo jak użytkownik się loguje to podany przez niego login i hasło jest od razu szyfrowane w md5, a w bazie danych nic nie jest zaszyfrowane. I dlatego trzeba zrobić coś aby przy poszukiwaniu loginu i hasła w bazie danych od razu on to szyfrował i
blink.gif
a nie powinno byc na odwrót? w bazie zaszyfrowane dane, a koles podaje dane normalnie i dopiero przed porownaniem z bazą bedą one hashowane? Kto ci wymyslil tę bazę?
mith
Nie nospor oto chodzi że ma być tak jak ja tam napisałem bo to nie jest taki zwykły skrypt biggrin.gif
No i właśnie jak coś takiego zrobić i czy w ogóle da się coś takiego zrobić?
nospor
Cytat
bo to nie jest taki zwykły skrypt
to fakt. patrząc na baze danych to ten skrypt musi byc naprawdę niezwykly winksmiley.jpg

  1. <?php
  2. $res=mysql_query("SELECT * FROM {NAZWA TABELI} WHERE md5(kolumnauser)='{$_POST['user']}' AND md5(kolumnahaslo)='$_POST['haslo']'");
  3. ?>
^bmb
no to rzeczywiscie jakis dziwny ten skrypt;>

Chcesz powiedziec ze do formularza user bedzie wprowadzal hash swojego loginu i hasla?questionmark.gif lol;)

Co ma oznaczac ze od razu jest szyfrowane? Nic sie raczej samo nie zaszyfruje winksmiley.jpg
mith
Dobra ale jest kolejny problem skrypt wygląda tak:

  1. <?
  2. $dbhost = "localhost";
  3. $db = "db";
  4. $dbuser = "login";
  5. $dbpass = "pass";
  6. $connection = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Błąd: Nie można połączyć się z bazą MySQL");
  7. mysql_select_db($db, $connection) or die ("Błąd: Nie można wybrać bazy MySQL");
  8.  
  9. $res=mysql_query("SELECT * FROM konta WHERE md5(login)='{$_POST['username_md5']}' AND md5(haslo)='$_POST['password_md5']'");
  10.  
  11. if(mysql_num_rows($res)==1) echo '1';
  12. else echo '0';
  13. ?>


I wywala mi taki błąd:

Kod
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/test.php on line 10


Użytkownik wpisuje normalnie ale nie w przeglądarce internetowej tylko w takim jednym programie, a ten program szyfruje to md5 wysyła do tego pliku i jak plik mu powie 1 to loguje a jak 0 to nie loguje.
nospor
zjadles {} a konkretnie ja wczesniej zjadlem a ty bezmyslnie skopiowales. patrz w moj podpis winksmiley.jpg

  1. <?php
  2. $res=mysql_query("SELECT * FROM konta WHERE md5(login)='{$_POST['username_md5']}' AND md5(haslo)='{$_POST['password_md5']}'");
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.