Adres strony: klik
Użytkownik testowy:
Login: test
Hasło: test
mam taki problem:
Gdy zaloguję się na jakiejkolwiek podstronie i przejdę na stronę główną to wszystko jest ok, ale kiedy wejdę na inną np. /serwery.php To bierze mnie za niezalogowanego. Panel logowania zrobiłem w panelu bocznym.
include/logowanie.php
<?php /** * SKRYPT LOGOWANIA */ // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection if ($_POST['send'] == 1) { // Sprawdź, czy wszystkie pola zostały uzupełnione } } $pass = user::passSalter($pass); // Posól i zahashuj hasło // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'")); if ($userExists[0] == 0) { // Użytkownik nie istnieje w bazie } else { // Użytkownik istnieje $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user // Przypisz pobrane dane do sesji $_SESSION['login'] = $login; $_SESSION['pass'] = $pass; echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>'; } } ?> <form method="post" action=""> <input type="text" name="login" maxlength="32" id="login" value="Login" /> <input type="password" name="pass" maxlength="32" id="pass" value="Hasło" /><br /> <input type="hidden" name="send" value="1" /> <input type="submit" value="Zaloguj" class="btn" /> </form>
user.class.php
<?php /** * Klasa wykonująca wszystkie podstawowe operacje * @author Sobak * @package User System */ class user { /** * Zwraca tablicę ze wszystkimi danymi o użytkowniku. * Indeksy tablicy odpowiadają nazwom pól w bazie danych (login, pass etc...) * @param string $login * @param string $pass * @return array */ public function getData ($login, $pass) { if ($login == '') $login = $_SESSION['login']; if ($pass == '') $pass = $_SESSION['pass']; self::$user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE login='$login' AND pass='$pass' LIMIT 1;")); return self::$user; } /** * Zwraca tablicę ze wszystkimi danymi o użytkowniku, tak jak powyższa metoda klasy, * ale rozpoznaje użytkownika nie po podaniu loginu i hasła tylko po podaniu ID. * Używana np. do wyświetlania strony profilu. * @param int $id * @return array */ public function getDataById ($id) { return $user; } /** * Jeśli użytkownik jest zalogowany - zwraca true, w przeciwnym wypadku - false * @return bool */ public function isLogged () { return false; } else { return true; } } /** * "Soli" hasło przed jego zahashowaniem funkcją md5() * @param string $pass * @return string */ public function passSalter ($pass) { $pass = '$@@#$#@$'.$pass.'q2#$3$%##@'; } } ?>
Panel boczny (include/boczny.php)
<?php require_once "include/user.class.php"; ?> <div id="boczny"> <div class="boczlog"> <?php if (user::isLogged()) { // Widok dla użytkownika zalogowanego // Pobierz dane o użytkowniku i zapisz je do zmiennej $user $user = user::getData('', ''); echo '<p><a href="mysieci.php">Moje sieci</a><br><a href="myserwery.php">Moje serwery</a><br><a href="reklama.php">Reklama</a></p>'; } else { // Widok dla użytkownika niezalogowanego # logowanie require_once "include/logowanie.php"; } ?> </div> </div>
Jeżeli o czymś zapomiałem, to proszę napisać
Proszę o pomoc