Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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 sad.gif
Go to the top of the page
+Quote Post
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


na poczatku kazdego pliku, w ktorych chcesz miec dostep do sesji mysisz umiescic kod
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







wiem, wiem, ale to wlasnie nic nie daje, co wiecej nie moge w kazdym pliku, bo mi wtedy wyskakuje ostrzezenie o dublowaniu rozpoczeciu sesji.
pewnie trzeba to jakos wywolac inaczej, tylko jak?
Go to the top of the page
+Quote Post
-ryks-
post
Post #4





Goście







skoro nikt nie wie jak to wykorzystac to moze chociaz ktos poleci jakis inny system autoryzacji uzytkownikow, juz nie obiektowy?
prosze o pomoc
Go to the top of the page
+Quote Post
gino
post
Post #5





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

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


a poszukać sie nie da ? google oddaje od groma gotowych skryptów krok po kroku.


gino

Ten post edytował gino 17.03.2011, 19:06:56
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







no tak, ale chcialbym sie dowiedziec jak to obiektowo wywolac. tam jest skrypt, ale nie ma przykladu uzycia i nie wiem jak zaczac
Go to the top of the page
+Quote Post
gino
post
Post #7





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

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


coś się na OOP tak uparł ? Skoro nie wiesz od czego zacząć, logicznym jest (naturalnie i rozwojowo programistycznie) zacząć od programowania nieobjektowego. Pójdzie Ci łatwiej i szybciej, logowanie niekoniecznie musi być od razu obiektowe. Poczytaj o sesjach, zrób to sam, wrzuć kod, na pewno nie zostaniesz bez pomocy. Jeśli oczekujesz gotowych rozwiązań skorzystaj z wyszukiwarki.


gino
Go to the top of the page
+Quote Post
-Gość-
post
Post #8





Goście







nieobiektowo mi sie udalo, a chce to zrobic wlasnie obiektowo. tez przyklad wyglada fajnie, ale nie wiem jak to wywolac.
probowalem dodawac

  1. $user=new user(new mysqlStorage);


mam 3 pliki, ktore tu uproszcze do minimum:

index.php:

  1.  
  2. require 'templates/list.php';
  3. ?>


list.php:
  1.  
  2. <?php require_once 'zaloguj.php';
  3.  
  4.  
  5. foreach ($test as $post): ?>
  6. ...
  7. <?php endforeach; ?>
  8. </ul>
  9.  
  10.  
  11. <form action="zaloguj.php" method="post">
  12. <label for="login">Login: </label><input type="text" name="login"/>
  13. <label for="password">Hasło: </label><input type="text" name="password"/>
  14. <input type="submit" value="zaloguj"/>
  15. </form>

tutaj nie dodaje session_start() bo mi wywala blad, ze jest aktywna juz, czyli jednak lapie sesje w tym pliku.

no i plik zaloguj.php
czyli to: http://pl.wikibooks.org/wiki/PHP/Autoryzacja_i_logowanie

i teraz jak sie loguje i robie sobie print_r w pliku zaloguj.php to ladnie wszystko jest wylapane. przechodze do pliku index.php i print_r pusty.

prosze o pomoc
Go to the top of the page
+Quote Post
gino
post
Post #9





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
-ryks-
post
Post #10





Goście







wielkie dzieki dobry czlowieku, za chwile sie za to wezme smile.gif jeszcze raz wielkie dzieki smile.gif
Go to the top of the page
+Quote Post
-ryks-
post
Post #11





Goście







prosze jakiegos moderatora, zeby dodal GINO POMOGL, bo ja nie mam konta, a na pewno jeszcze sie komus ta informacja przyda
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: 20.08.2025 - 14:31