Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dodatkowe odświeżenie podczas logowania
benzulli
post 27.05.2015, 18:45:20
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


  1. <?php
  2. ?>
  3. <body>
  4. <?php
  5. if($_SESSION['logged'])
  6. {
  7. ?>
  8. To info wyskakuje, kiedy jesteś zalogowany.
  9. <form method="post">
  10. <input type="submit" value="Wyloguj" name="logout">
  11. </form>
  12. <?php
  13. if($_POST['logout'])
  14. {
  15. echo '<meta http-equiv="refresh" content="0">';
  16. }
  17. }
  18. else
  19. {
  20. ?>
  21. To info wyskakuje, kiedy nie jesteś zalogowany (wraz z formularzem). </br>
  22. <form method="post">
  23. <input type="text=" name="email">
  24. <input type="password" name="password">
  25. <input type="submit" name="login" value="Zaloguj">
  26. </form>
  27. <?php
  28.  
  29. require_once "connect.php";
  30. $connect = @new mysqli($host, $db_user, $db_password, $db_name);
  31. if ($connect->connect_errno!=0)
  32. {
  33. echo "Error: ".$connect->connect_errno;
  34. }
  35. else
  36. {
  37. if($_POST['login'])
  38. {
  39. $email = htmlentities($_POST['email']);
  40. $password = htmlentities(md5($_POST['password']));
  41.  
  42. $ask = sprintf("SELECT * FROM accounts WHERE email='%s' AND password='%s'", mysqli_real_escape_string($connect,$email), mysqli_real_escape_string($connect,$password));
  43. if($result = @$connect->query($ask))
  44. {
  45. if($result->num_rows == 1) {
  46. $array = $result->fetch_assoc();
  47. $_SESSION['logged'] = true;
  48. $_SESSION['username'] = $array['email'];
  49. $_SESSION['role'] = $array['role'];
  50. $result->close();
  51. }
  52. else
  53. {
  54. echo "Błędne hasło/nazwa użytkownika.";
  55. }
  56. }
  57. }
  58.  
  59. $connect->close();
  60. }
  61. }
  62. ?>
  63. </body>
  64. </html>
  65. <?php
  66. ?>


Sprawa ma się następująco: kiedy loguję się na stronę i naciskam przycisk "zaloguj", to po odświeżeniu nadal pokazuje się pusty formularz, a dopiero jak znowu refreszne, wtedy już odczytuje, że sesja "jest". To samo z wylogowaniem, jak zniszczę sesję, to dalej jestem przez jedno odświeżenie strony "zalogowany". Otóż problem da się rozwiązać wpisując magiczną regułę:
  1. echo '<meta http-equiv="refresh" content="0">';


lecz mnie interesuje jak rozwiązać ten problem (bo coś czuję, ze bardzo łatwo da się to zrobić) nie stosując po prostu dodatkowego odświeżenia. Według mnie, wszystko powinno działać, bo jak ustawisz sesję, wysyłasz formularz, strona się refreszuje i powinno już być ok, a tymczasem trzeba kolejny raz zrefreszować.

Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 05:16