Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Logowanie (Sesje) - Błąd
Sotery
post 19.06.2010, 13:49:48
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 27.01.2008

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


Cześć,
Tworzę sobie panel logowania i napotkałem mały problem.
Stworzyłem dwa pliki:

zaloguj.php
  1. <?
  2.  
  3. $login=$_POST['login'];
  4. if($login) {
  5. $uzytkownik=$_POST['uzytkownik'];
  6. $md5_haslo=$_POST['haslo'];
  7.  
  8. require_once "config.php";
  9.  
  10. $rezultat=mysql_query("select * FROM uzytkownicy WHERE login='$uzytkownik' AND haslo='$md5_haslo'");
  11. if(@mysql_num_rows($rezultat)){
  12. session_register($uzytkownik);
  13. header("location:index.php");
  14. }else {
  15. $message="<span style='color:0d024c;'>Nieprawidłowa nazwa użytkownika lub hasło</span><br>";
  16. }
  17. }
  18. ?>
  19.  
  20. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  21. Login <input name="uzytkownik" type="text" id="uzytkownik" class="uzytkownik"><br>
  22. Hasło <input name="haslo" type="password" id="haslo" class="haslo"></div><br>
  23. <input name="login" type="image" src="images/04.jpg" id="login" value="login" />

index.php
  1. <?
  2. if(!session_is_registered($uzytkownik)){
  3. header("location:zaloguj.php");
  4. }
  5. ?>
  6.  
  7. <p>Witaj <? echo $_SESSION[$uzytkownik]; ?>! Jesteś zalogowany.</p>
  8. <p><a href="index.php">Wyloguj</a></p>


Wszystko śmiga ok. Problem jest z sesją :(
To znaczy, gdy dana osoba wpisze poprawne dane przekierowuje ją na index.php - tam niestety nie rozpoznaje aby sesja istniała i powraca do zaloguj.php.
Wie ktoś gdzie mógłby się znajdować tutaj błąd?
Go to the top of the page
+Quote Post
yevaud
post 19.06.2010, 13:54:27
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.
Go to the top of the page
+Quote Post
Lars_18
post 19.06.2010, 13:55:06
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 11
Dołączył: 29.05.2010

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


Może dlatego, że po starcie sesji od razu niszczysz jej dane (session_destroy). I nie używaj session_is_registered tylko isset.

Ten post edytował Lars_18 19.06.2010, 13:59:09
Go to the top of the page
+Quote Post
Sotery
post 19.06.2010, 14:11:14
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 27.01.2008

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


Początkowo też myślałem, że może chodzić o session_destroy.
Niestety po usunięciu owej linijki z kodu oraz zamianie session_is_registered na isset nadal to samo :/
Go to the top of the page
+Quote Post
yevaud
post 19.06.2010, 14:14:13
Post #5





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


w zaloguj.php przypisz cos pod $_SESSION['uzytkownik'];

popraw wszedzie $_SESSION[$uzytkownik]; na $_SESSION['uzytkownik'];

w index.php ma byc isset($_SESSION['uzytkownik'])

jak dalej nie dziala to wklej kod

Ten post edytował yevaud 19.06.2010, 14:15:45
Go to the top of the page
+Quote Post
nospor
post 19.06.2010, 14:16:57
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




session_is_registered($uzytkownik)
ty wogole tego nie łapiesz winksmiley.jpg
Przecież $uzytkownik jest puste w tej linijce. Wiesz jak wiec wygląda tak naprawdę ten kod? O tak:
session_is_registered()
smile.gif

Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
Masz tapisane między innym jak włączyc wyświetlanie wszystkich błędów.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Sotery
post 19.06.2010, 14:28:19
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 27.01.2008

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


Hehe, działa :))
Rzeczywiście wystarczyło zmienić [$uzytkownik] na ['uzytkownik'].
Dziękuje wam wszystkim i tobie nospor za wytłumaczenie.
Oczywiście lecą pochwały :))
Pozdrówka i miłego dnia.
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 Wersja Lo-Fi Aktualny czas: 27.06.2025 - 15:19