Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z logowaniem :(
Gligamesh
post 31.07.2004, 12:06:43
Post #1





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


witam ma taki skrypt logowania
  1. <? 
  2.  
  3. mysql_connect (&#092;"localhost\", \"\", \"\");
  4. mysql_select_db (&#092;"podkret\");
  5.  
  6. $query = mysql_query(&#092;"SELECT * FROM `redakcja` WHERE `nick`='\".$PHP_AUTH_USER.\"'\"); 
  7. while ($rekord = mysql_fetch_array ($query)) 
  8. { 
  9. $name = $rekord[1]; 
  10. $password = $rekord[2]; 
  11. } 
  12.  
  13. if (($PHP_AUTH_USER<>$name)or($PHP_AUTH_PW<>$password)) { 
  14. header(&#092;"WWW-Authenticate: Basic realm=\"tajna strefa\\"n\"); 
  15. header(&#092;"HTTP/1.0 401 Unauthorizedn\"); 
  16. echo &#092;"Brak autoryzacji!\"; 
  17. exit; 
  18. } 
  19.  
  20. ?> 
  21.  
  22.  
  23. <!doctype html public \"-//w3c//dtd html 4.0 transitional//en\"> 
  24. <html><head><meta http-equiv=\"content-type\" 
  25. content=\"text/html; charset=iso-8859-2\"> 
  26. <title>Tajna strefa</title></head><body> 
  27.  
  28. Ok, udało Ci się wej&para;ć do tajnej strefy... 
  29.  
  30. </body></html>


niby dziala ale nie dziala, od razu pokauzje zawartosc strony, jak zrobic by spełniał swoja role questionmark.gif
Go to the top of the page
+Quote Post
halfik
post 31.07.2004, 12:56:55
Post #2





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


Tak na oko to moze tak:

  1. <?php
  2.  
  3. mysql_connect (&#092;"localhost\", \"\", \"\");
  4. mysql_select_db (&#092;"podkret\");
  5.  
  6. $query = mysql_query(&#092;"SELECT * FROM `redakcja` WHERE `nick`='\".$PHP_AUTH_USER.\"'\"); 
  7. while ($rekord = mysql_fetch_array ($query)) 
  8. { 
  9. $name = $rekord[1]; 
  10. $password = $rekord[2]; 
  11. } 
  12.  
  13. if (($PHP_AUTH_USER==$name) && ($PHP_AUTH_PW==$password)) { 
  14. echo '<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">'; 
  15. echo '<html><head><meta http-equiv=\"content-type\" ';
  16. echo 'content=\"text/html; charset=iso-8859-2\">'; 
  17. echo '<title>Tajna strefa</title></head><body> ';
  18.  
  19. echo 'Ok, udało Ci się wej&para;ć do tajnej strefy... ';
  20.  
  21. echo '</body></html>';
  22.  
  23.  
  24. }
  25. else{
  26. header(&#092;"WWW-Authenticate: Basic realm=\"tajna strefa\\"n\"); 
  27. header(&#092;"HTTP/1.0 401 Unauthorizedn\"); 
  28. echo &#092;"Brak autoryzacji!\"; 
  29. exit; 
  30. } 
  31.  
  32.  
  33.  
  34. ?>


--------------------


"Nie wiedziałem tylko, że Bóg też był na grzybach, gdy majstrował przy wszechświecie" (Janusz Wisniewski)
dev: gazeta.ie
Go to the top of the page
+Quote Post
Gligamesh
post 31.07.2004, 21:34:36
Post #3





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


niestety nic z tego, okienko sie dalej nie poakzuje sad.gif moze ktos zna jakis inny "bezpieczny" system logowania questionmark.gif
Go to the top of the page
+Quote Post
halfik
post 31.07.2004, 21:52:42
Post #4





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


no tak, nie uzywam authoriza i teraz widac winksmiley.jpg

a system logowania to sobie mozesz przeciez sam napisac, rpsota sprawa: maly formularz kilka linijek kodu i jest proste logowanie winksmiley.jpg


--------------------


"Nie wiedziałem tylko, że Bóg też był na grzybach, gdy majstrował przy wszechświecie" (Janusz Wisniewski)
dev: gazeta.ie
Go to the top of the page
+Quote Post
Gligamesh
post 31.07.2004, 22:13:41
Post #5





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


tak wiem ale czy takie logowanie jest bezpieczne questionmark.gif
Go to the top of the page
+Quote Post
rogrog
post 31.07.2004, 22:19:34
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


a czemu nie questionmark.gif byle by nie było wykorzystania tego przeżytku zwanego register_globals i jeżeli współdziała z bazą danych było odporne na mysql injections i juz smile.gif


--------------------
Go to the top of the page
+Quote Post
Gligamesh
post 31.07.2004, 23:10:32
Post #7





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


eee a tak po ludzku questionmark.gif
Go to the top of the page
+Quote Post
rogrog
post 1.08.2004, 11:16:23
Post #8





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


1. uzywasz tablicy $_GET np. $_GET[login] zamiast po prostu $login
2. jezeli korzystasz z bazy to przed wstawieniem np. loginu do zapytania przepuść go przez mysql_escape_string()


--------------------
Go to the top of the page
+Quote Post
Gligamesh
post 1.08.2004, 16:43:07
Post #9





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


tak questionmark.gif
  1. <?php
  2. $login = mysql_escape_string($login);
  3. ?>
Go to the top of the page
+Quote Post
rogrog
post 1.08.2004, 17:05:48
Post #10





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


no np.

  1. <?php
  2. $q = &#092;"SELECT nr, login, haslo FROM users WHERE login='\".mysql_escape_string($_GET[login]).\"' AND haslo='\".mysql_escape_string($_GET[haslo]).\"'\";
  3. $r = mysql_query($q);
  4.  
  5. if(mysql_num_rows($r)>0) { 
  6. //zalogowany
  7. }
  8.  
  9. ?>


dodam ze dla bezpieczenstwa warto hashowac zapisane w bazie haslo md5()

ech... jak cos to sobie poszukaj na forum


--------------------
Go to the top of the page
+Quote Post
halfik
post 1.08.2004, 19:49:51
Post #11





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


z ty mbezpieczenstwem danych to raczej nie tak. dane na sieci chyba nigdy nie sa bezpieczne i nie beda. a jesli chodzi o logowanie, to mozna wspomoc sie protokolem SSL, ale jesli nie piszesz zadnego sklepu internetowego or something like that to nie zawracaj sobie tym glowy.


--------------------


"Nie wiedziałem tylko, że Bóg też był na grzybach, gdy majstrował przy wszechświecie" (Janusz Wisniewski)
dev: gazeta.ie
Go to the top of the page
+Quote Post
Gligamesh
post 1.08.2004, 21:34:02
Post #12





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


ok zrobilem takie cos

  1. <?require('menu.txt'); 
  2. mysql_connect (&#092;"localhost\", \"\", \"\");
  3. mysql_select_db (&#092;"podkret\");
  4. $zapytanie = &#092;"SELECT DISTINCT nick,haslo FROM redakcja WHERE nick='\".$_POST[\"login\"].\"' AND haslo='\".$_POST[\"pas\"].\"';\";
  5. $wynik = mysql_query($zapytanie);
  6. ?>
  7. <link rel=\"stylesheet\" type=\"text/css\" href=\"../css.css\"><meta http-equiv=\"Content-Language\" content=\"pl\">
  8. <title>Panel Administracyjny</title>
  9. <body topmargin=\"0\" leftmargin=\"0\">
  10. <div align=\"center\">
  11.   <center>
  12.   <table border=\"0\" style=\"border-collapse: collapse; \" height=\"256\" width=\"770\">
  13.     <tr>
  14. <?
  15. if(mysql_num_rows($wynik)!=0)
  16. {
  17. $_SESSION[&#092;"login\"]=$_POST[\"login\"];
  18. $_SESSION[&#092;"pas\"]=$_POST[\"pas\"];
  19. $_SESSION[&#092;"accept\"]=1;
  20. while ($user = mysql_fetch_array($wynik))
  21. {
  22. echo&#092;"<td width=\"100%\\" height=\"220\" background=\"adm.jpg\" valign=bottom><div align=\"right\">
  23. <table border=&#092;\"0\" width=\"350\" >
  24.   <tr>
  25.     <td width=&#092;\"100%\"><a href=\"panel_login.php?action=show\">Poka&iquest; profil</a>&nbsp; <a href=\"panel_login.php?action=edit\">Edytuj profil </a>&nbsp;<a href=\"?logout=t\">Wyloguj ($user[0])</a></td>
  26.   </tr>
  27.   <tr>
  28.     <td width=&#092;\"100%\">&nbsp;</td>
  29.   </tr>
  30. </table>
  31. </div></td>
  32.     </tr>
  33.     <tr> <td width=&#092;\"100%\" height=\"14\" bgcolor=\"#666666\"><center>$menu</center></td>
  34.     </tr>
  35.     <tr>
  36.       <td width=&#092;\"100%\" height=\"298\" valign=\"top\">\";
  37. // zalogowny 
  38.  
  39.  
  40.  
  41.  
  42. //zalogowany      
  43. }
  44. }
  45. else
  46. {


logowanie dzial tylko niestey nie sesje co jest zle questionmark.gif

Ten post edytował Gligamesh 2.08.2004, 17:46:12
Go to the top of the page
+Quote Post
m_iwanicki
post 3.08.2004, 09:54:54
Post #13





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 18.06.2004

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


Aby sesje działały nie mozesz wysłac nic do przeglądarki przed session_start(),
najpierw to a potem cała reszta.
Go to the top of the page
+Quote Post
hispano
post 31.08.2004, 09:57:02
Post #14





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

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


Miałem ten sam problem. To była walka z wiatrakami, ponieważ ta metoda autoryzacji działa tylko gdy Server API to Apache (tak jak w Krasnalu). Natomiast często na serwerach wirtualnych w internecie Server API to CGI.

A co jest ustawione znajdziesz w phpinfo

pozdrawiam
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: 18.07.2025 - 16:25