Mam problem z utrzymaniem wartości zmiennych w sesji.
Kod wygląda następująco:
index.php
<? $_SESSION['authuser'] = 0; //określa, czy użytkownik jest zalogowany $nonauth = ""; $reg = ""; $wylogowany = ""; if (($auth = $_GET['auth']) == 'none') $nonauth = " podałeś błędny login lub hasło"; if (($auth = $_GET['auth']) == 'empty') $nonauth = " podaj login i hasło"; if (($auth = $_GET['auth']) == 'end') $wylogowany = "wylogowałeś się z serwisu"; if (($regis = $_GET['register']) == 'true') $reg = " "." rejestracja przebiegła pomyślnie<br>możesz się teraz zalogować"; ?> . . <body> <? $reg = ""; ?> <form method="post" action="doit.php"> <p>login: <input type="text" name="user" /> <p>haslo: <input type="password" name="pass" /></p> <p><input type="submit" name="submit" value="zaloguj" /></p> </form> . . </body>
doit.php
<? $_SESSION['username'] = $user = $_POST['user']; $pass = $_POST['pass']; $_SESSION['authuser'] = 0; if ($user == NULL or $pass == NULL) { //sprawdza czy wypełniono pola formularza header('Location: <a href="http://www.piromant.webd.pl/piromantrum/cms/index.php?auth=empty');" target="_blank">http://www.piromant.webd.pl/piromantrum/cm...th=empty');</a> exit; } //sprawdza czy podany login pasuje do hasla z bazy include ('polaczenie.php'); $zapytanie = "SELECT pass FROM osoby WHERE login ='".$user."'"; $odp = mysql_query($zapytanie); while ($row = mysql_fetch_row($odp)) { $pass_db = $row[0]; } //sprawdzenie poprawności hasla if($pass_db == $pass) { $_SESSION['authuser'] = '1'; header('Location: <a href="http://www.piromant.webd.pl/piromantrum/cms/cms.php');" target="_blank">http://www.piromant.webd.pl/piromantrum/cms/cms.php');</a> exit; } else { header('Location: <a href="http://www.piromant.webd.pl/piromantrum/cms/index.php?auth=none');" target="_blank">http://www.piromant.webd.pl/piromantrum/cm...uth=none');</a> exit; } ?>
cms.php - i tu jest właśnie problem...
<? ($_SESSION['authuser'] != 1) { header('Location: <a href="http://www.piromant.webd.pl/piromantrum/cms/denied.php');" target="_blank">http://www.piromant.webd.pl/piromantrum/cm...nied.php');</a> exit; } ?>
problem występuje przy odwołaniu się do zmiennej sesyjnej $_SESSION['authuser'] z poziomu pliku cms.php .Jeśli gdziekolwiek indziej sprawdzę wartość to jest ona ustawiona (ma przypisaną wartość 0 lub 1, ale zawsze istnieje), natomiast gdy próbuję przyrównać ją w pliku cms.php do innej wartości okazuje się, że $_SESSION['authuser'] == NULL.
Jak to jest możliwe? Przetrzepałem kod na lewo i prawo i nie mam pojęcia.
Co najciekawsze:
Jeśli np: źle się zaloguję, lub nie podam wartości w index.php wszystko zaczyna działać poprawnie...
Jestem bardzo początkujący w temacie php ale zagadnienie wydaje się raczej trywialne

Doradźcie proszę