Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mam problem z Logowaniem
Forum PHP.pl > Forum > Przedszkole
majes_grudziadz
Na stronie glownej mam panel logowania. Przed head mam wstukane:
  1. <?
  2. session_register(&#092;"user\");
  3. ?>



Pozniej (za head w sekcji body) jest panel logowania:
  1. <form method=post action="panel.php">
  2. <table border="0" cellspacing="0" cellpadding="0">
  3. <tr>
  4. <td width=50>Login :</td><td><input type="text" name="login_user" size="20"></td>
  5. </tr>
  6. <tr>
  7. <td width=50>Hasło :</td><td><input type="password" name="password" size="20"></td>
  8. </tr>



Zaś plik panel.php wygląda tak:
  1. <?
  2. if($opcja == &#092;"wyloguj\"):
  3.  
  4. session_unregister(&#092;"user\");
  5. setcookie ('PHPSESSID', '', time()-300,'/', '',0);
  6. header (&#092;"Location: \". $adres .\"/index.php\");
  7. exit();
  8.  
  9. endif;
  10. $inc = 0;
  11. include(&#092;"config.php\");
  12. if(!session_is_registered(&#092;"user\")):
  13. if(isset($submit)):
  14. $db=mysql_connect(&#092;"localhost\", $sqluser, $sqlpass);
  15. mysql_select_db($sqldatabase, $db);
  16. $sql = &#092;"select * from users where login = '$login_user'\";
  17. $result = mysql_query($sql);
  18. $rezul = mysql_fetch_array($result);
  19. if(($rezul[&#092;"login\"] == $login_user) && ($rezul[\"pass\"] == md5($password)) && ($rezul[\"active\"] == 1)):
  20. session_register(&#092;"user\");
  21. $user = $login_user;
  22. else:
  23. ?>
  24.  
  25. <form method=post>
  26. <p class=\"data\">Zły Login lub Hasło.<br>
  27. Login: <input type=text name=login_user size=\"20\"><br>
  28. Hasło: <input type=password name=password size=\"20\"><br>
  29. <input type=submit name=submit value=\"Zaloguj\">
  30. </form></p>
  31.  
  32. <?
  33. endif;
  34. else:
  35. ?>
  36.  
  37. <p class=\"data\">Podaj Login i Hasło.<br>
  38. Login: <input type=text name=login_user size=\"20\"><br>
  39. Hasło: <input type=password name=password size=\"20\"><br>
  40. <input type=submit name=submit value=\"Zaloguj\"><br>
  41. </form></p>
  42.  
  43. <?
  44. exit();
  45. endif;
  46. endif;
  47. if(!session_is_registered(&#092;"user\")):
  48. exit();
  49. endif;
  50. ?>
  51.  
  52. tresc dostepna po zalogowaniu


A w pliku config.php jest:
  1. <?
  2.  
  3. $sqluser = &#092;"user_bazy\";
  4. $sqlpass = &#092;"haslo\";
  5. $sqldatabase = &#092;" nazwa_bazy\";
  6. ?>



A teraz pisze w czym jest porblem.
Gdy loguje sie z index.php przenosci mnie na panel.php jestem zalogowany ale nie przenosi zmiennych sad.gif. Gdy klikam wyloguj to przenosi mnie na index.php ale nie jestem wylogowany bo gdy nie zamkne przegladarki i wpisze recznie adres/panel.php to nadal jestem zalogowany.

Natomiast jak wchodze odrazu na adres/panel.php pokazuje mi komunikat o logowaniu. Zaloguje sie pokazuje zmienne i moge sie wylogowac.

I ostatni problem. Jak sie pomyle przy logowaniu to pozniej zaloguje sie poprawnie i gdy chce sie wylogowac to musze klikac kilka razy wylogoj.

W czym moze byc problem.

Prosze o pomoc i o poprawienie mojego blednego kodu php.

Z gory dziekuje smile.gif
infernox
Nie wiem moze to rozwiazanei lamerskie ale ja bym to tak zrealizowal

  1. <?php
  2. if($opcja==''&& $_SESSION['zalogowany']!='tak')
  3. {
  4.   //formularz logowania
  5. }
  6.  
  7.  
  8. if($opcja==''&& $_SESSION['zalogowany']=='tak')
  9. {
  10.   //trasc dostepna po zalogowaniu 
  11. }
  12.  
  13.  
  14. if($opcja=='loguj')
  15. {
  16.   //wyciagniecie z bazy i sprawdzenie poprawnosci loginu i hasla
  17.   //
  18.    $_SESSION['uzytkownik']=$nazwa_uzytkownika_przekazana przez formularz;
  19.  
  20.    //i przekierowanie 
  21.   
  22.    header(&#092;"Location:  $_SERVER['PHP_SELF']?opcja=\");
  23.  
  24.    //jesli nie to samo przekierowanie  
  25.   
  26.    header(&#092;"Location:  $_SERVER['PHP_SELF']?opcja=\");
  27.  
  28. }
  29.  
  30.  
  31.  
  32. if($opcja=='wyloguj')
  33. {
  34.   unset($_SESSION['zalogowany']);
  35.   unset($_SESSION['uzytkownik']);
  36.   header(&#092;"Location:  $_SERVER['PHP_SELF']?opcja=\");
  37. }
  38. ?>


jesli by ci ten sposob odpowiadal i byly jakies niescislosci to prosze o pytania

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.