Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie nie działa.. (sesja ?)
tara
post
Post #1





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 3.03.2004
Skąd: śląsk

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


witam,

mam taki skrypt logowania:
  1. <? 
  2. // polaczenie z baza danych...
  3.  
  4. print &#092;"
  5. <form method=&#092;"POST\" action=\"login_admin.php?a=1\">n 
  6.  <h1> Zaloguj sie! </h1><br>
  7.  User: <input type=&#092;"text\" name=\"login\"><br>n 
  8.  Pass: <input type=&#092;"password\" name=\"haslo\"><br>n 
  9.  <input type=&#092;"submit\" name=\"submit\" value=\"Zaloguj\"><br>n 
  10.  <br>
  11. </form>&#092;";
  12.  
  13.  
  14. if( isset( $_GET['a'] ) ) 
  15. { 
  16.  
  17. session_name(admin_login); 
  18.  
  19.  $z = md5($haslo);
  20.  $wynik = mysql_query (&#092;"SELECT ksywka,haslo FROM admin_login WHERE ksywka='$login' AND haslo='$z'\");
  21.  
  22. while ($rekord = mysql_fetch_array ($wynik)) {
  23.  
  24. $haslob = stripslashes($rekord[1]);
  25. $loginb = stripslashes($rekord[0]);
  26.  
  27. }
  28.  if (($z == $haslob) || ($login == $loginb)) 
  29.  { 
  30.  
  31. session_register(&#092;"login\");
  32.  
  33. header(&#092;"Location: admin_zarzadzanie.php?\" . SID); 
  34. } else { 
  35. echo(&#092;"Zly login/pass \"); 
  36.  
  37.  } 
  38.  
  39. }
  40.  
  41.  
  42. ?>

plik admin_zarzadzanie:
  1. <? 
  2. session_name(admin_login); 
  3. if (!isset($_SESSION[&#092;"login\"])) # sprawdza czy w sesji jest zaladowana zmienna login:) 
  4. { 
  5. header(&#092;"Location: login_admin.php\"); # jezeli nie jest to wyswietla plik login.php 
  6. exit(); 
  7. if ($_SESSION[&#092;"ban\"] == 1) 
  8. { 
  9.  echo(&#092;"Masz bana. <br> <pre> Error 403 <br> Brak dostępu do zasobów </pre>\"); 
  10. exit(); # jeżeli ma bana, to skrypt wyœwietli ten tekst i się zatrzyma, więc gosciu nie 
  11. ostanie ani kawałka kodu więcej:) 
  12. } }
  13. ?>
  14. Czesc <? print &#092;"$login\"; ?> co chcesz zrobić :
  15. //......


i wraca mi do login_admin.php.. czyli chyba (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) nie daje zmiennej login do sesji
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adax2000
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.05.2005

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


no dobrze masz tu poprawiony swój skrypt wg. moich zaleceń, zapomniałeś tylko o paru drobiazgach, a są one istotne: powtarzam
1. $login możesz używać jako zmiennej globalnej jeśli zarejestrujesz ją w sesji poprzez session_register('login'); jeśli zarejestrujesz $_SESSION[login'] = $login to potem konsekwetnie $_SESSION['login'] w drugim skrypcie.
2. całe if przed print gdyż w środku jest instrukcja header, i session_name razem z session start (widzę, że już dodałeś apostrofy)
3. Te zmienne $_POST to miałem na myśli w pierwszym skrypcie gdzie odbierasz dane z formularza (method=post) a nie w drugim gdzie odbierasz dane przez sesję.
4. wyrzuciłem kilka zbędnych moim zdaniem rzeczy pozostawiając tą samą funkcjonalność, nie miej mi o to żalu, nie mogłem się powstrzymać.

  1. <?
  2. session_name(&#092;"admin_login\");
  3.  
  4. if( isset( $_POST['login'] ) )
  5. {
  6. $wynik = mysql_query (&#092;"SELECT ksywka,haslo FROM admin_login WHERE ksywka='\".$_POST['login'].\"' AND haslo='\".md5($_POST['haslo']).\"'\");
  7. $rekord = mysql_fetch_array ($wynik);
  8. if (mysql_num_rows($rekord))
  9.  {  $_SESSION['login'] = $login;
  10.  header(&#092;"Location: admin_zarzadzanie.php?\" . SID);
  11. } else { echo(&#092;"Zly login/pass \"); }
  12.  
  13. }
  14.  
  15. print &#092;"
  16. <form method=&#092;"POST\" action=\"login_admin.php\">n
  17.  <h1> Zaloguj sie! </h1><br>n
  18.  User: <input type=&#092;"text\" name=\"login\"><br>n
  19.  Pass: <input type=&#092;"password\" name=\"haslo\"><br>n
  20.  <input type=&#092;"submit\" name=\"submit\" value=\"Zaloguj\"><br>n
  21.  <br>
  22. </form>&#092;";
  23.  
  24. ?>



drugi skrypt

  1. <? 
  2. session_name('admin_login'); 
  3. if (!isset($_SESSION['login']))
  4. { header(&#092;"Location: admin_login.php\"); exit(); }
  5. ?>
  6. Czesc <? print $_SESSION['login']; ?> co chcesz zrobić :


pozdro i nara

ps. widzę że temat sesji wzbudza duże i aktywne zainteresowanie
gdyby interesował ciebie ten drugi model sesji (session_register)
to zajrzyj tam model sesji przez session_register

Ten post edytował adax2000 3.05.2005, 19:22:29
Go to the top of the page
+Quote Post

Posty w temacie


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: 2.10.2025 - 19:12