Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem ze skryptem uwierzytelniania
thekozak
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Warszawa

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


Witam. Mam taki kod jak ponizszy. Na serwerze offline w domu (Apache 1.3.27 z php 4.3.0) wszystko dzialalo prawidlowo, ale na serwerze unixowym (niestety nie jestem w stanie podac wersji) online juz nie bardzo. Problem pojawia sie w chwili, gdy klikam na jakis link (sa to linki, ktore uruchamiaja ten sam skrypt, ale z roznymi parametrami wysylanymi metoda GET). Po kliknieciu na link pojawia sie ponownie ekran logowania i zawartosci nie da sie obejrzec. Czy ktos moze wie dlaczego? Jesli byloby to potrzebne, to moge pokazac kod do ktoregos z pozostalych plikow tego skryptu.

  1. <?php
  2. if(isset($HTTP_POST_VARS['uzytkownik']) && isset($HTTP_POST_VARS['haslo']))
  3. {
  4. // jeżeli użytkownik właśnie podjął próbę zalogowania
  5. $uzytkownik = $HTTP_POST_VARS['uzytkownik'];
  6. $haslo = $HTTP_POST_VARS['haslo'];
  7. $logpass = @ file(&#092;"../../logpass.txt\", \"r\");
  8. $ilosc = count($logpass);
  9. $wiersz = explode(&#092;":\", $logpass[$j]);
  10. $login = $wiersz[0];
  11. $password = $wiersz[1];
  12. if( $uzytkownik == $login && $haslo == $password ) {
  13. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  14. $HTTP_SESSION_VARS['prawid_uzyt'] = $uzytkownik;
  15. break; }
  16. else { continue; }
  17. }
  18. if(isset($HTTP_SESSION_VARS['prawid_uzyt'])) {
  19. //uzytkownik zalogowany
  20. //wyswietlanie zawartosci
  21. require_once('funkcje_galerii.php');
  22. $katalog = $HTTP_GET_VARS['name'];
  23. wyswietl_naglowek();
  24. $tyt = tytul($katalog);
  25. function wyswietl_tytul($tyt)  {  
  26. print '<font size=\"5\"><b>'.$tyt.'</b></font><br><br>' ; }
  27. require('funkcje.php');
  28. wyswietl_stopke(); }
  29. else {
  30. echo '<b>Zaloguj się</b><br><br>' ;
  31. if(isset($uzytkownik)) {
  32. // jeżeli próba logowania była nieudana
  33. echo '<br><br><br><br><b>Zalogowanie niemożliwe</b><br>'; }
  34. else {
  35. // nie było próby logowania lub nastąpiło wylogowanie
  36. echo '<br><br><br><br><b>Użytkownik niezalogowany.</b><br>'; }
  37. // tworzenie formularza logowania
  38. echo '<form method=\"post\" action=\"index.php?name=null\"><table>'; // itd...
  39. }
  40. ?>



P.S. Po konsultacji ze znajomymi okazalo sie, ze ten problem wystepuje chyba tylko w przegladarce IE w wersji 6.0, bo w IE 5 i Mozilli wszystko dziala.

Ten post edytował thekozak 8.07.2004, 19:24:53
Go to the top of the page
+Quote Post
invx
post
Post #2





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


moze zamien HTTP_*_VARS na nowsze POST i GET
Go to the top of the page
+Quote Post
thekozak
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Warszawa

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


tzn. ze zamiast HTTP_GET_VARS mam wpisywac _GET, a zamiast HTTP_POST_VARS - _POST. Moge sprobowac, ale chetnie bym sie dowiedzial jaka jest miedzy tymi wyrazeniami roznica.

Ten post edytował thekozak 8.07.2004, 19:41:39
Go to the top of the page
+Quote Post
invx
post
Post #4





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


HTTP_*_VARS uzywalo sie kieys, teraz jest ono jus przestarzale i uzywa sie _GET i _POST, pozatym HTTP_*_VARS nie byly superglobalne
Go to the top of the page
+Quote Post
thekozak
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Warszawa

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


Dzieki za info, ale niestety sama ta zamiana nie pomogla. Moze problem tkwi w obsludze sesji. Bo efekt jest taki, ze przegladarka IE 6 tak jakby nie zapamietuje, ze uzytkownik juz sie zalogowal i kaze mu sie logowac jeszcze raz. Co ciekawe inne przegladarki (Mozilla, IE 5) dzialaja normalnie.
Go to the top of the page
+Quote Post
hwao
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Sproboj dac zaraz po
  1. <?php
  2. header(&#092;"Cache-control: private\");
  3. ?>
Go to the top of the page
+Quote Post
thekozak
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Warszawa

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


Nie jestem pewien, czy wstawilem to w odpowiednim miejscu (w kodzie z pierwszego postu te cztery linijki umiescilem zaczynajac od linii 43).
Po wstawieniu tego kodu pojawil sie po zalogowaniu komunikat:
Warning: Cannot modify header information - headers already sent by (output started at /home/antares/scr/lkozl/pierwotni/imprezy/naglowek.php:4) in /home/antares/scr/lkozl/pierwotni/imprezy/index.php on line 45

Natomiast po kliknieciu na jakis link wyrzuca do okna logowania tak jak poprzednio, ale pokazuje jeszcze nastepujacy komunikat:
Warning: Cannot modify header information - headers already sent by (output started at /home/antares/scr/lkozl/pierwotni/imprezy/index.php:32) in /home/antares/scr/lkozl/pierwotni/imprezy/index.php on line 45
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


To zrób tak:

  1. <?php
  2. header(&#092;"Cache-control: private\"); // TUTAJ TO WSTAW 
  3. if(isset($HTTP_POST_VARS['uzytkownik']) && isset($HTTP_POST_VARS['haslo']))
  4. {
  5. // jeżeli użytkownik właśnie podjął próbę zalogowania
  6. $uzytkownik = $HTTP_POST_VARS['uzytkownik'];
  7. $haslo = $HTTP_POST_VARS['haslo'];
  8. $logpass = @ file(&#092;"../../logpass.txt\", \"r\");
  9. $ilosc = count($logpass);
  10. $wiersz = explode(&#092;":\", $logpass[$j]);
  11. $login = $wiersz[0];
  12. $password = $wiersz[1];
  13. if( $uzytkownik == $login && $haslo == $password ) {
  14. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  15. $HTTP_SESSION_VARS['prawid_uzyt'] = $uzytkownik;
  16. break; }
  17. else { continue; }
  18. }
  19. if(isset($HTTP_SESSION_VARS['prawid_uzyt'])) {
  20. //uzytkownik zalogowany
  21. //wyswietlanie zawartosci
  22. require_once('funkcje_galerii.php');
  23. $katalog = $HTTP_GET_VARS['name'];
  24. wyswietl_naglowek();
  25. $tyt = tytul($katalog);
  26. function wyswietl_tytul($tyt)  {  
  27. print '<font size=\"5\"><b>'.$tyt.'</b></font><br><br>' ; }
  28. require('funkcje.php');
  29. wyswietl_stopke(); }
  30. else {
  31. echo '<b>Zaloguj się</b><br><br>' ;
  32. if(isset($uzytkownik)) {
  33. // jeżeli próba logowania była nieudana
  34. echo '<br><br><br><br><b>Zalogowanie niemożliwe</b><br>'; }
  35. else {
  36. // nie było próby logowania lub nastąpiło wylogowanie
  37. echo '<br><br><br><br><b>Użytkownik niezalogowany.</b><br>'; }
  38. // tworzenie formularza logowania
  39. echo '<form method=\"post\" action=\"index.php?name=null\"><table>'; // itd...
  40. }
  41. ?>
Go to the top of the page
+Quote Post
hwao
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2. header(&#092;"Cache-control: private\"); // TUTAJ TO WSTAW 
  3. ?>

Misi byc wylane na poczatku sammy przed jakimkolwiek htm;'em itp.
Jezeli nie moesz dac tego na samym paczatku to daj
  1. <?php
  2. ?>

w 1 linijce kodu ( koniecznie na samym poczatku )
Go to the top of the page
+Quote Post
thekozak
post
Post #10





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.12.2003
Skąd: Warszawa

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


A moze to kwestia zabezpieczen przegladarki IE 6. Moze nie przepuszcza cookiesow. Czy jest jakas metoda, zeby to obejsc?
Go to the top of the page
+Quote Post
Dabroz
post
Post #11





Grupa: Zarejestrowani
Postów: 286
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Poland, Płock

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


Przekazuj ID sesji w URL'ach, np:

  1. <?php
  2. $url= 'www.server.pl/strona.php?sid='.session_id();
  3. ?>
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: 25.08.2025 - 07:05