Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie + baza w POSTGRESQL
mercii
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 1.05.2006

Ostrzeżenie: (0%)
-----


Witam
Napisalem takie logowanie ale nie dziala:(
Napisalem to za duzo powiedziane , przerobilem bylo by lepsze.(IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Domyslem sie ze sa spore bledy ale prosze mi wybaczyc i w miare mozliwosci pomoc.
Poszukuje sposobu na bezpieczne bardzo bezpieczne logowanie ale narzie jestem poczatkujacy wiec muse zaczynac od najprostszych.
Prosibym o porady dotyczace tego kodu a takze czym mam sie teraz zajac aby skupic sie na bezpieczenstwie.
Zrobilem baze danych w ktorej uzytkownicy beda sie logowac i sprawdzac stan konta.

  1. <?
  2. function getLoginInfo() {
  3.  
  4. if (isset($_SERVER['HTTP_AUTHORIZATION']))
  5. return explode(':', base64_decode(substr(
  6. $_SERVER['HTTP_AUTHORIZATION'], 6)));
  7. if (isset($_SERVER['PHP_AUTH_USER']))
  8. return array($_SERVER['PHP_AUTH_USER'],
  9. $_SERVER['PHP_AUTH_PW']);
  10. return false;
  11. }
  12.  
  13. $auth = false;
  14. if (($loginInfo = getLoginInfo()) !== false) {
  15. $polacznie = pg_connect("host=localhost dbname=X user=X") or die('Nie mozna nawiazac polaczenia');
  16. $sql="SELECT locked FROM users WHERE username='$loginInfo[0]' AND password='$loginInfo[1]'";
  17. $dane = pg_exec($polaczenie,$sql) or die(pg_erromessage());
  18. $wierdane = @pg_numrows($dane);
  19. if ($wierdane == 1) {
  20. if (!dane($dane, false, false))
  21. $auth = true;
  22. }
  23. }
  24.  
  25. if (!$auth) {
  26. // Brak uprawnien
  27. header('WWW-Authenticate: Basic realm="Tajne"');
  28. header('HTTP/1.0 401 Unauthorized');
  29. echo 'Brak uprawnieе└ do przeglд┘dania strony';
  30. die;
  31. }
  32. echo 'Witaj!';
  33. ?>


Nie ma u mnie w kodzie tych slashy.

Ten post edytował mercii 12.12.2006, 13:32:32
Go to the top of the page
+Quote Post
acztery
post
Post #2





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


hm nie widze

nie pg_numrows tylko pg_num_rows

i moze zamiast pg_exec daj pg_query
Go to the top of the page
+Quote Post
mercii
post
Post #3





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 1.05.2006

Ostrzeżenie: (0%)
-----


Poprawilem i jest juz lepiej.
Dziekuje za rade.
Ale nie jest dobrze do konca. teraz laczy mi sie z baza ale nie loguje.
Tzn nie wypisuje napisu witaj co jest wina mysle tego kodu:
  1. <?php
  2. $dane = pg_query($db_handle,$sql) or die(pg_erromessage());
  3. $wierdane = @pg_num_rows($dane);
  4. if ($wierdane == 1) {
  5. if (!dane($dane, false, false))
  6. $auth = true;
  7. }
  8. pg_close($db_handle);
  9. }
  10. ?>

I czemu jak juz raz wpisze dane do okienka autoryzacyjnego HTTP to po odswierzeniu strony sie juz nie pojawia?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
acztery
post
Post #4





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


Cytat(mercii @ 12.12.2006, 14:08:40 ) *
Poprawilem i jest juz lepiej.
Dziekuje za rade.
Ale nie jest dobrze do konca. teraz laczy mi sie z baza ale nie loguje.
Tzn nie wypisuje napisu witaj co jest wina mysle tego kodu:
  1. <?php
  2. $dane = pg_query($db_handle,$sql) or die(pg_erromessage());
  3. $wierdane = @pg_num_rows($dane);
  4. if ($wierdane == 1) {
  5. if (!dane($dane, false, false))
  6. $auth = true;
  7. }
  8. pg_close($db_handle);
  9. }
  10. ?>

I czemu jak juz raz wpisze dane do okienka autoryzacyjnego HTTP to po odswierzeniu strony sie juz nie pojawia?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?


popraw tak

  1. <?php
  2. $dane = pg_query($db_handle,$sql) or die(pg_erromessage());
  3. $wierdane = pg_num_rows($dane);
  4. if ($wierdane == 1) {
  5. $auth = true;
  6. }
  7. pg_close($db_handle);
  8. ?>





  1. <?php
  2. if (!$auth == true) {
  3.  
  4. echo 'brak dostępu';
  5. } else {
  6.  
  7. echo 'Witaj!';
  8. }
  9. ?>


PS pg_erromessage (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? co to (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ma byc pg_errormessage

Ten post edytował acztery 12.12.2006, 14:15:28
Go to the top of the page
+Quote Post
mercii
post
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 1.05.2006

Ostrzeżenie: (0%)
-----


Dzieki dziala, ale to teraz nie jest do konca to czego bym chcial. Chcialem aby przy sprawdzaniu hasla sprawdzala sie rowniez wartosc pola locked. Jesli jest ona ustawiona na false to sie loguje a jezeli na true to nie udaje sie zalogowac.
A jak rozwiazac problem ze po odswiezeniu strony nie pojawia mi sie okno logowania.
Sprawdzialem i wyglada na to jakbym caly czas byl polaczony z baza a skryp przegladarka pomij pierwsza czesc skryptu z autoryzacja.
Go to the top of the page
+Quote Post
acztery
post
Post #6





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


poczytaj o sesjach i tam trzymaj dane wartosci albo ciasteczka. jak ja ci napisze to nic nie zrozumiesz jak sam poszukasz to sie nauczysz powodzenia...
Go to the top of the page
+Quote Post
mercii
post
Post #7





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 1.05.2006

Ostrzeżenie: (0%)
-----


Po poczytaniu troche o sesjach , stworzylem takie cos i niestety nie chodzi:( . Moja niewprwane oczy nie widza bledu.MOze mi pomozecie:
  1. <?php
  2.  
  3.  
  4. function checkPass($user, $pass)
  5. {
  6. $auth = false;
  7. $db_handle=pg_connect("host=localhost dbname=log user=postgres");
  8. $sql="SELECT COUNT(*) FROM users WHERE username='$user' AND password='$pass'";
  9. $dane = pg_query($db_handle,$sql) or die(pg_errormessage());
  10. $wierdane = @pg_num_rows($dane);
  11. if ($wierdane == 1) {
  12. $auth = true;
  13. }
  14. @pg_close($db_handle);
  15. return $auth;
  16. }
  17. if(isSet($_SESSION['zalogowany'])){
  18. header("Location: glowna.php");
  19. exit();
  20. }
  21. else if(isSet($_POST['user']) && isSet($_POST['haslo']){
  22. if(checkPass($_POST['user'], $_POST['haslo'])){
  23. $_SESSION['zalogowany'] = true;
  24. header("Location: glowna.php");
  25. }
  26. }
  27. ?>


Ten post edytował mercii 16.12.2006, 13:25:51
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:37