Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]sesje
-ryks-
post
Post #1





Goście







http://pl.wikibooks.org/wiki/PHP/Autoryzacja_i_logowanie

zrobilem sobie takiego i mam problem, bo nie kapuje jak sie do tego teraz odwolac. tzn np $_SESSION['rank'] nie dziala nigdzie poza tym plikiem. jak sie doda session_start() np w index.php to nie lapie tego pliku i w ogole sesja tam nie dziala. oczywiscie daje require_once '/templates/zaloguj.php'; ale to nic nie daje (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gino
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

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


za to że marudzisz:

piszę z ręki więc sprawdz i oblecz w html-a!

1. plik index.html tam formularz do zalogowania się (siłą rzeczy nie ma tutaj session_start()):

  1. <form action="zaloguj.php" method="post">
  2. <label for="login">Login: </label><input type="text" name="login"/>
  3. <label for="password">Hasło: </label><input type="text" name="password"/>
  4. <input type="submit" value="zaloguj"/>
  5. </form>


2. plik zaloguj.php tam małe zmiany w funkcji zaloguj: session_start() oraz kod aby skrypt wiedział gdzie przenieść zalogowanego usera (np. do index2.php):

  1. <?php
  2. public function zaloguj(){
  3. if($_SERVER['REQUEST_METHOD']=='POST'){
  4. $user=$this->storage->login($_POST['login'], $_POST['password']);
  5. if(!$user){die('Nieprawidłowa nazwa użytkownika lub hasło!');}
  6. $this->name=$user['name'];
  7. $this->rank=$user['ranga'];
  8. session_start(); //dodane
  9. $_SESSION['zalogowany']=true;
  10. $_SESSION['name']=$this->name;
  11. $_SESSION['rank']=$this->rank;
  12. //dodane
  13. if (headers_sent()) {
  14. ?>
  15. <script langugage="javascript" type="text/javascript">
  16. <!--
  17. location.replace('index2.php');
  18. // -->
  19. </script> <?php
  20. } else {
  21. header("Location: index2.php");
  22. }
  23. }
  24. }
  25. //koniec dodanego
  26. }
  27. ?>


3. plik index2.php tutaj session_start() na początku i sprawdzenie czy zmienna sesyjna $_SESSION['zaloguj'] jest true oraz link do wylogowania:

  1. <?php
  2. if ($_SESSION['zalogowany'])
  3. {
  4. echo "strefa chroniona";
  5. echo "<a href=logout.php>wyloguj</a>";
  6. }
  7. else
  8. {
  9. echo "Wypad";
  10. }
  11. ?>


4. plik logout.php niszczenie sesji i link do zalogowania się.
  1. <?php
  2. ?>
  3. <a href="index.php">zaloguj ponownie</a>


pisałem z ręki więc sprzwdz


gino

Ten post edytował gino 19.03.2011, 09:32:04
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: 10.10.2025 - 13:46