Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z sesją
iqique
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

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


Witam. Dopiero się uczę dlatego pytam o wskazówkę. Walczę z problemem od wczoraj i doszedłem tylko do wniosku, że to problem z sesją. Chodzi o system logowania w którym użytkownik podaje swoje dane logowania, kod sprawdza czy użytkownik jest w bazie jeśli jest to przekierowuje na stronę admin.php jeśli zalogował się admin. Jeśli zalogował się kto inny przekierowuje na main.php W teorii wszystko pięknie. W praktyce jednak prawidłowo loguje się dopiero za drugim razem. To znaczy otwieram przeglądarkę i wpisuje dane logowania admina. Przekierowuje jednak od razu na main.php przy czym nie zapisuje zmiennych sesyjnych. Tzn w miejscach gdzie później powinien pobrać dane z bazy i wyświetlić dla konkretnego usera wyświetla błąd. Jednak po wylogowaniu i zalogowaniu ponownie wszystko jest już ok. Reasumując loguje się za drugim razem dopiero. Wydaje mi się, że walnąłem się gdzieś w składni i coś ustawiłem w złej kolejności.

  1.  
  2. <?php
  3. ?><?php
  4. @session_register("zalogowany");
  5. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  6.  
  7. include("../includes/baza.php");
  8.  
  9.  
  10. $_SESSION["admin"]="1"; //z góry ustalony NUMER KONTA admina
  11.  
  12. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;}
  13.  
  14.  
  15. if($_SESSION["zalogowany"]!=1){
  16.  
  17.  
  18. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){//
  19. if(mysql_num_rows(mysql_query("select * from konta where user = '".htmlspecialchars($_POST["login"])."' AND haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  20. $_SESSION["zalogowany"]=1;
  21. $_SESSION["user"]=$_POST["login"];
  22.  
  23. $_SESSION["user"]==$user; //zalogowany klient sklepu NAZWA UZYTKOWNIKA
  24. $_SESSION["admin"]==$admin;
  25.  
  26. $zapytanie = mysql_query("SELECT nrkonta FROM konta WHERE user = '$user';");//sprawdzenie numeru konta klienta
  27. $record = mysql_fetch_array($zapytanie);
  28. $record["nrkonta"];
  29. $_SESSION["nrkonta"]=$record["nrkonta"];
  30. $nrkonta=$_SESSION["nrkonta"];//przypisywanie NUMERU KONTA klienta do zmiennej sesyjnej
  31.  
  32. $zapytanie2 = mysql_query("SELECT balans FROM konta WHERE nrkonta = '$nrkonta';");
  33. $record2 = mysql_fetch_array($zapytanie2);
  34. $record2["balans"];
  35. $_SESSION["balans"]=$record2["balans"];//pobieranie STANU KONTA i przypisywanie do zmiennej sesyjnej
  36.  
  37. if($nrkonta==$admin){header("Location: admin.php");} //jeśli zalogował się adminisrator przekieruj na admin.php
  38. else{
  39.  
  40. header("Location: main.php");//przekierowanie
  41. exit();
  42. }
  43.  
  44. }
  45. else include("../includes/logowanie.php");
  46. echo ("Błędny login lub hasło."."<br>");
  47. }
  48. else {include("../includes/logowanie.php");
  49. if($_GET["wyloguj"]=="tak"){echo "Wylogowano pomyślnie.";}
  50. else {if(isset($_POST[login])){echo ("Proszę wprowadzić pełne dane logowania."."<br>");}}
  51. }
  52.  
  53. }
  54. else{};
  55.  
  56.  
  57.  
  58. ?>
  59.  
  60.  


Ten post edytował iqique 16.09.2011, 10:17:25
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: 2.10.2025 - 08:20