Mvrosking 29 Lipca 2018 29 Lipca 2018 Cześć, mam problem ponieważ koduje panel administratora i mam problem z działaniem sesji. Mianowicie mimo tego że się nie zalogowałem można wejść do strony z całym panelem administratora, mimo że jest dodane, żeby sprawdzało czy sesja nie jest pusta. Oto kod: session_start(); if(empty($_SESSION['admin_access'])) { header ('index.php'); } Próbowałem zapisać jakąś sesje i ją wyświetlić i działa, natomiast z tą mam problem... Z góry dziękuje za pomoc! P.S. Sprawdzanie czy sesja istnieje jest w pliku gdzie dodaje wszystkie pliki css itp, natomiast on jest podpięty do innych stron.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 29 Lipca 2018 29 Lipca 2018 A przy wylogowaniu usuwasz sesję? Pokaż kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mvrosking 29 Lipca 2018 Autor 29 Lipca 2018 16 minut temu, BlackIce napisał: A przy wylogowaniu usuwasz sesję? Pokaż kod. Jeszcze nie napisałem wylogowywania, ale najgorsze jest to że ja w kodzie od logowania nawet nie zdeklarowałem tej zmiennej sesji, więc mimo wszystko mnie powinno nie przekierowywać do panelu bo sesja nawet nie istnieje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 29 Lipca 2018 29 Lipca 2018 (edytowane) Musisz ją gdzieś tworzyć, skoro działa przekierowanie. Przeszukaj pliki. //edit. Ale czekaj. Sprawdzasz czy wartość klucza tablicy jest pusta - a to zwraca true nawet jak podany klucz nie istnieje. Zmień kod na taki: <?php if(isset($_SESSION['admin_access']) and !empty($_SESSION['admin_access'])) { //zalogowany } Edytowane 29 Lipca 2018 przez BlackIce Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mvrosking 29 Lipca 2018 Autor 29 Lipca 2018 39 minut temu, BlackIce napisał: Musisz ją gdzieś tworzyć, skoro działa przekierowanie. Przeszukaj pliki. //edit. Ale czekaj. Sprawdzasz czy wartość klucza tablicy jest pusta - a to zwraca true nawet jak podany klucz nie istnieje. Zmień kod na taki: <?php if(isset($_SESSION['admin_access']) and !empty($_SESSION['admin_access'])) { //zalogowany } Nadal nic nie działa. Tak wygląda kod logowania: <?php include 'templates/global/header_include.template.php'; $info = ''; if(isset($_POST['login_button'])) { $admin_login = stripslashes($_POST['login_admin']); $admin_password = stripslashes($_POST['password_admin']); if(empty($admin_login) && empty($admin_password)) { $info = '<div class="alert alert-danger">Musisz wypełnić wszystkie pola, aby się zalogować!</div>'; } $admin_database = $database->query("SELECT * FROM `admin_user` WHERE admin_login='$admin_login' and admin_password='$admin_password'"); if($admin_database->num_rows == 1) { $info = '<div class="alert alert-success">Zalogowano poprawnie! Zaraza nastąpi przekierowanie do panelu administratora.</div>'; echo '<meta http-equiv="refresh" content="5; URL=dashboard.php">'; } else { $info = '<div class="alert alert-danger">Podany administrator nie istnieje!</div>'; } } ?> Strona na pewno nie ma nigdzie zdeklarowanej sesji itp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 29 Lipca 2018 29 Lipca 2018 (edytowane) index.php <?php session_start(); include 'templates/global/header_include.template.php'; $info = ''; if(isset($_POST['login_button'])) { $admin_login = stripslashes($_POST['login_admin']); $admin_password = stripslashes($_POST['password_admin']); if(empty($admin_login) && empty($admin_password)) { $info = '<div class="alert alert-danger">Musisz wypełnić wszystkie pola, aby się zalogować!</div>'; } $admin_database = $database->query("SELECT `uid` FROM `admin_user` WHERE admin_login='$admin_login' and admin_password='$admin_password'"); if($admin_database->num_rows == 1) { $_SESSION['admin_access'] = $admin_database->fetch_object()->uid; $info = '<div class="alert alert-success">Zalogowano poprawnie! Zaraza nastąpi przekierowanie do panelu administratora.</div>'; echo '<meta http-equiv="refresh" content="5; URL=dashboard.php">'; } else { $info = '<div class="alert alert-danger">Podany administrator nie istnieje!</div>'; } } dashboard.php <?php session_start(); if(!isset($_SESSION['admin_access']) or empty($_SESSION['admin_access'])) { die('You don\'t have access to view this page!'); } Edytowane 29 Lipca 2018 przez BlackIce Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mvrosking 29 Lipca 2018 Autor 29 Lipca 2018 Dobra działa, tylko ja chciałem po prostu umieścić sprawdzanie sesji w pliku header_include. Nie da się tego właśnie tak zrobić? Bo teraz to będę musiał w każdym pliku umieszczać osobno to sprawdzanie sesji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
-n3veR 29 Lipca 2018 29 Lipca 2018 No to OK. Wrzuć ten kod co podałem z dashboard do header_include i powinno być dobrze. Ważne jednak, żebyś tą linijkę umieścił w index: <?php $_SESSION['admin_access'] = $admin_database->fetch_object()->uid; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kontynuuj dyskusję
Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.