Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienna $_SESSION w drugim pliku
Forum PHP.pl > Forum > Przedszkole
Aurv
Witam,
jako że to mój pierwszy post na forum, chciałbym powitać wszystkich użytkowników wink.gif

Postanowiłem stworzyć w php formularz który po zalogowaniu wyświetli komunikat o udanym zalogowaniu (po sprawdzeniu wartości dla $_SESSION['zalogowany']) w przypadku innej wartości ma wyświetlić dany komunikat, co ogólnie ma zablokować dostęp bezpośrednio z linku.

Formularz działa jak powinien, natomiast mam problem z wartością dla $_SESSION['zalogowany'] której po wykonaniu logowania przypisuje wartość "true", jednak w kolejnym pliku ta wartość to "false". Wygląda to tak jakby ta zmienna w ogóle nie została wprowadzona.
Szukałem już wiele rozwiązań jednak dalej nie mam pojęcia co z tym zrobić.


plik index.php
  1. <?php
  2.  
  3.  
  4. define("LOGIN", "jasiek");
  5. define("PASSWORD", "hasło");
  6.  
  7.  
  8.  
  9. require_once("formularz.php");
  10.  
  11. if(isset($_POST['checker'])) {
  12.  
  13.  
  14. $len = strlen($_POST['log']);
  15.  
  16.  
  17.  
  18. if(($_POST['log'] != "") && ($_POST['pass'] != "")) { //sprawdzam czy nie sa puste
  19.  
  20. if($len >= 5) { //sprawdzam czy jest 5 znakow
  21.  
  22. if(($_POST['log'] == LOGIN) && ($_POST['pass'] == PASSWORD)) { //jeżeli log i pass sie zgadzaja z podanymi stalymi
  23.  
  24. $_SESSION['zalogowany'] == true; // dopisuje do sesji true
  25.  
  26. header("Location: logon.php", true);
  27.  
  28. } else {
  29.  
  30. echo "<p style=\"color:red\">Podałeś błędny login lub hasło";
  31. }
  32.  
  33. } else { // jak jest mniej niz 5
  34.  
  35. echo "<p style=\"color:red\">Pole login musi mieć minimum 5 znaków<br />";
  36.  
  37. }
  38.  
  39. } else { //jak sa puste
  40.  
  41. echo "<p style=\"color:red\">Pole login or hasło nie mogą być puste";
  42. }
  43.  
  44. }
  45. ?>



plik fromularz.php
  1. <?php
  2.  
  3. echo <<<PL
  4. <fieldset>
  5. <form method="post" action="" >
  6. Podaj Login: <input type="text" name="log" />
  7. Podaj Hasło: <input type="password" name="pass" />
  8. <input type="submit" value="Wyślij" />
  9. <input type="hidden" name="checker" value="1" />
  10. </form>
  11. </fieldset>
  12. PL;
  13.  
  14.  
  15. ?>


plik logon.php
  1. <?php
  2.  
  3.  
  4. var_dump($_SESSION);
  5.  
  6. if((isset($_SESSION['zalogowany'])) == true) {
  7.  
  8. echo "<p style=\"color:green\">Witaj. Zostałeś zalogowany!";
  9.  
  10. } else {
  11.  
  12. echo "Dostęp tylko dla zalogowanych!";
  13. }
  14.  
  15. ?>
lobopol
  1. $_SESSION['zalogowany'] == true;

o jedno = się za dużo, w tym momencie to nie zmienia $_SESSION['zalogowany'] na true
Aurv
O rany, racja. W takim przypadku nie przypisałem wartości. 2h analizowałem gdzie jest błąd a tu jeden znaczek oj.
Wielkie dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.