Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> uwierzytelnianie http, nie dziala skrypt
a79rtur
post 5.10.2004, 21:57:35
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


przyklad z ksiazki. po zakomentowaniu pierwszych zmiennych jak widac w kodzie, skrypt nie dziala tak jak trzeba,. poprostu nie dziala uwierzytelnianie http. pokazuje sie monit o podanie usera i hasla ale jest zawsze zle. w innym skrypcie tez to nie działało.
co jest grane ?

  1. <?php
  2. //$PHP_AUTH_USER=\"ryan\";
  3. //$PHP_AUTH_PW=\"dentist\";
  4. $aDoAuth = True;
  5. if ( isset( $PHP_AUTH_USER ) )
  6. {
  7. if ( ( $PHP_AUTH_USER == &#092;"ryan\" ) && 
  8.  ( $PHP_AUTH_PW == &#092;"dentist\" ) )
  9. {
  10. // prawidłowa nazwa użytkownika i hasło
  11. $aDoAuth = False;
  12. }
  13. }
  14. if( $aDoAuth == True ) 
  15. {
  16. Header( &#092;"WWW-Authenticate: Basic realm=\"My Realm\"\" );
  17. Header( &#092;"HTTP/1.0 401 Unauthorized\" );
  18. echo &#092;"Nie udało się zalogowanie do systemu.n\";
  19. }
  20. ?>


czy to jest dobry sposób autoryzacji ? jakie są lepsze ?

Ten post edytował a79rtur 5.10.2004, 21:58:45


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
j00seph
post 5.10.2004, 22:16:33
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 3.10.2004
Skąd: Taka wiocha koło Cieszyna :P

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


a co to jest $PHP_AUTH_USER questionmark.gif i skąd się to bierze ?, skąd to pobiera wartość questionmark.gif

ja robie uwierzytelnianie podobnie jak ty ( z tym ze dane do autoryzacji przesyłam przez formularz (POST) ) ,a potem mam kontrole sesji (wygodne to )

http://pl2.php.net/manual/pl/ref.session.php

A co do twojego kodu - to moze tak :
Formularz WWW
  1. <form name=costam method=post action auth.php>
  2. Login:<input name=user> Pass:<imput name=pass> <input type=submit value=loguj>


a skrypt do logowania (auth.php)- na bazie twojego
  1. <?php
  2. //$USER=$HTTP_POST_VARS[\"user\"];
  3. //$PW=$HTTP_POST_VARS[\"pass\"];
  4. $aDoAuth = True;
  5. if ( isset( $USER ) )
  6. {
  7. if ( ( $USER == &#092;"ryan\" ) && 
  8.  ( $PW == &#092;"dentist\" ) )
  9. {
  10. // prawidłowa nazwa użytkownika i hasło
  11. $aDoAuth = False;
  12. }
  13. }
  14. if( $aDoAuth == True ) 
  15. {
  16. Header( &#092;"WWW-Authenticate: Basic realm=\"My Realm\"\" );
  17. Header( &#092;"HTTP/1.0 401 Unauthorized\" );
  18. echo &#092;"Nie udało się zalogowanie do systemu.n\";
  19. }
  20. ?>


i teoretycznie powinno zadzaialac


--------------------
"Nemo Sine Vitiis Est" - Ktoś tak kiedyś powiedział... i miał rację.
Go to the top of the page
+Quote Post
sf
post 5.10.2004, 22:17:19
Post #3





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


http://pl.php.net/features.http-auth


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
a79rtur
post 5.10.2004, 22:29:05
Post #4





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


dzieki działa smile.gif

j00seph: co miales na mysli pisząc "...,a potem mam kontrole sesji (wygodne to )" .chodzilo ci o to ze są zmienne sesyjne, w ktorych są jakby co dane usera i skrypt jak je potrzebuje to sobie pobierze ?


--------------------
php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::..
www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu
Go to the top of the page
+Quote Post
j00seph
post 6.10.2004, 10:20:49
Post #5





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 3.10.2004
Skąd: Taka wiocha koło Cieszyna :P

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


Dokładnie o to chodzi
dajesz nazwe zalogowanego usera do zmiennej sesyjnej, dzięki temu zyskujesz możliwość kontroli na innych stronach/podstronach
Prosty przykład :
Działasz na php+mysql masz skrypt do wywalania rekordów z bazy danych, nazwijmy ten skrypt usun.php ,
a wywołuje się go z formularza, lub normalnie jako linka - podając jako parametr id nr. rekordu który chcesz usunąć z bazy
  1. <?php
  2. echo('<form name=usuwanie action=usun.php?id='.$do_usuniecia.'>'); 
  3.  
  4. ?>
lub
  1. <?php
  2. echo('<a href=usun.php?id='.$do_usuniecia.'>Usun ten rekord</a>'); 
  3. ?>


To w skrypcie tym(lub przed jego wywolaniem) musisz sprawdzac czy uzytkownik jest zalogowany, i tylko zalogowany user moze odpalic skrypta, inaczej każdy burak co ci wejdzie na stronke mógłby ( wywołując z paska adresu usun.php?id= ) pousuwać ci dane - i po to właśnie jest sesja smile.gif


--------------------
"Nemo Sine Vitiis Est" - Ktoś tak kiedyś powiedział... i miał rację.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 20:11