Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie przez sesje (prosty skrypt)
Jozjasz
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 11.09.2009

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


Witam szanownych forumowiczów

Chciałem napisać prosty skrypt logowania i wylogowania. Niby wszystko działa, ale po wylogowaniu i usunieciu zmiennych sesyjnych jak kliknę na przeglądarce "wstecz" to i tak wszystkie chronione dane są wyświetlane, a odświeżenie strony powoduje ponowne rozpoczęcie sesji. Doszedłem do wniosku, że przeglądarka pamięta wartości zmiennych: nazwy użytkownika i hasła.

1. Jak poprawić mój kod, żeby po kliknięciu na wstecz i odświeżeniu wczystywał się forumarz, a nie chronione dane?
2. Jak sprawić aby wogóle nie było możliwe oglądanie chronionych danych przez "wstecz" po wylogowaniu?

Gdybym mógł chociaz jakieś wskazówki dostać...
Kod:
  1. <?php
  2. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  3. ?>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  6.  
  7. <style type="text/css">
  8. /*<![CDATA[*/
  9. #name{color:darkred; font-size:10pt; margin-bottom:4cm}
  10. #wrongpass{font-size:15; text-align:center; color:red; font-weight:bold; margin-top:2cm;}
  11. #who{font-size:10pt; font-variant:small-caps;}
  12. #form{width:400px; margin:auto; margin-top: 4cm;}
  13. /*]]>*/
  14. </style>
  15. <title> funfair</title>
  16. </head>
  17. <body>
  18. <?php
  19.  
  20. if(isset($_POST['submitted'])){
  21.  
  22. if((($_POST['user'])==='user1') && (($_POST['pass'])==='haslo1')){
  23. //utwórz sesję logowania
  24. $_SESSION['auth']=1;
  25.  
  26. }
  27. else{
  28. echo "Wprowadziłeś nieprawidłowe dane...";
  29. exit();
  30. }
  31. }//koniec submitted
  32.  
  33. //na logout.php dochodzi do zniszczenia zmiennych sesyjnych
  34. echo "<div id='name'>Welcome to faunfair";if(($_SESSION['auth']) == 1){
  35. echo "<div style=\"color:#dd4902\">Jesteś zalogowany jako {$_POST['user']} <a href=\"logout2.php\"> Wyloguj</a></div>";}
  36. echo "</div>";
  37.  
  38.  
  39. if($_SESSION['auth'] == 1){
  40. echo "tajna informacja: you are an alien";
  41. }
  42.  
  43. else{
  44.  
  45. echo <<<FORM
  46. <form id="form" method="POST">
  47.  
  48. <fieldset>
  49. <p>login: <input type="text" name="user" size="20" maxlength="25" /></p>
  50. <p>password: <input type="password" name="pass" size="20" maxlength="25" /></p>
  51. <input type="hidden" name="submitted" />
  52. <input type="submit" value="send" />
  53.  
  54. </fieldset>
  55.  
  56. </form>
  57. FORM;
  58. }
  59.  
  60. ?>
  61. </body>
  62. </html>


Ten post edytował Jozjasz 7.10.2011, 14:06:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
celbarowicz
post
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Na pierwszej stronie, jeśli nie była utworzona ukryta wartość sesyjna->tworzymy ją(jeśli była to sprawdzamy czy zgadza się z wymaganą na tej stronie). wartość tę przekazujemy na drugą stronę i sprawdzamy czy jest zgodna z wymaganą na drugiej stronie . Jeśli wartości się zgadzają otwieramy drugą stronę i ponownie tworzymy nową wartość która będzie potrzebna do przejścia na 3 stronę. Jeśli damy wstecz wartości nie będą się zgadzały i możemy zrobić przekierowanie na forum.php. (itd, itp)
Go to the top of the page
+Quote Post
Jozjasz
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 11.09.2009

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


Dzięki za odpowiedź, ale nie za bardzo jest to dla mnie jasne...
U mnie klikam na "wyloguj" po czym następuje przejście do strony logout2.php i zniszczenie zmiennych, jak kliknę na wstecz i odświeże to znowu tworzy się zmienna sesyjna, gdyż przeglądarka pamięta wartości superglobalnych z formularza, a jeśli tak, to następuje odtworzenie sesji logowania...

Ten post edytował Jozjasz 7.10.2011, 14:59:53
Go to the top of the page
+Quote Post
celbarowicz
post
Post #4





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


strona1.php
  1. <?php
  2. if(!isset($_SESSION['kod'])){
  3.  
  4. $_SESSION['kod']='znak_1';
  5.  
  6. echo '<form method="post" action="strona2.php">';
  7. echo '<input type="submit" value="przejdź do strony 2">';
  8. echo '</form>';
  9.  
  10. }else{ header('location:http://www.wp.pl/'); }
  11.  
  12.  
  13. ?>
  14.  


strona2.php
  1. <?php
  2. if($_SESSION['kod']=='znak_1'){$_SESSION['kod']='bleble';
  3. echo 'tutaj działamy na stronie 2';
  4. echo '<form method="post" action="strona3.php">';
  5. echo '<input type="submit" value="przejdź do strony 3">';
  6. echo '</form>';
  7.  
  8. echo '<form method="post" action="strona1.php">';
  9. echo '<input type="submit" value="przejdź do strony 1">';
  10. echo '</form>';
  11.  
  12. }else{ header('location:http://www.wp.pl/'); }
  13.  
  14.  
  15. ?>
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 Aktualny czas: 21.08.2025 - 03:45