Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przkierowanie logowania na OS
politech
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.06.2011

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


Hej, chciałbym zrobić logowanie na stronę ale takie jak jest np w routerach, gdzie wyskakuje okno Windowsa czy innego OS, przez które się loguje.
Nie za bardzo wiem jak się za to zabrać, a nie udało mi się tego wygooglować.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


To o czym mówisz to nic innego jak: apache auth
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




albo HTTP Basic Authentication. [;
Go to the top of the page
+Quote Post
modern-web
post
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


http://httpd.apache.org/docs/2.0/howto/auth.html
Najpopularniejszy sposób autoryzacji za pomocą serwera Apache.
Go to the top of the page
+Quote Post
politech
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.06.2011

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


a co jesli strona będzie stała nie na apachu a na lighttpd?
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(politech @ 9.06.2011, 10:40:45 ) *
a co jesli strona będzie stała nie na apachu a na lighttpd?

Wtedy czytasz post Erix'a i szukasz w google.

np tu

Ten post edytował Fifi209 9.06.2011, 09:55:05
Go to the top of the page
+Quote Post
politech
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 7.06.2011

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


  1. <?php
  2.  
  3. $realm = 'Restricted area';
  4. $bufor = include 'mechanizm.php';
  5.  
  6.  
  7. $users = array('admin' =>$bufor);
  8.  
  9.  
  10. if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
  11. header('HTTP/1.1 401 Unauthorized');
  12. header('WWW-Authenticate: Digest realm="'.$realm.
  13. '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');
  14.  
  15. die('Nacisnoles Cancel');
  16. }
  17.  
  18.  
  19. // analyze the PHP_AUTH_DIGEST variable
  20. if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
  21. !isset($users[$data['username']]))
  22. die('Wrong Credentials!');
  23. header("Location: index.php");
  24.  
  25.  
  26. // generate the valid response
  27. $A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
  28. $A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
  29. $valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);
  30.  
  31. if ($data['response'] != $valid_response)
  32.  
  33. die('Wrong Credentials!');
  34. header("Location: logowanie.php");
  35. // ok, valid username & password
  36. //echo 'Your are logged in as: ' . $data['username'];
  37. header("Location: logon.php");
  38.  
  39. // function to parse the http auth header
  40. function http_digest_parse($txt)
  41. {
  42. // protect against missing data
  43. $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
  44. $data = array();
  45. $keys = implode('|', array_keys($needed_parts));
  46.  
  47. preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);
  48.  
  49. foreach ($matches as $m) {
  50. $data[$m[1]] = $m[3] ? $m[3] : $m[4];
  51. unset($needed_parts[$m[1]]);
  52. }
  53.  
  54. return $needed_parts ? false : $data;
  55. }
  56.  
  57. ?>



Dla tego kodu na lighttpd wyrzuca mi nieznaną funkcje preg_match_all(..)
Rozumiem, ze muszę przeprowadzić konfigurację serwera, zgodnie z linkiem wysłanym w poście wyżej. Z tym, że nie wiem czy tą konfiguracje mam wkleić do mojego skryptu, czy mam ją ręcznie jakoś przeprowadzić(linux and php nooby).
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 - 08:12