Skocz do zawartości

Kodowanie panelu administratora i problem z działaniem sesji


 Udostępnij

Rekomendowane odpowiedzi

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

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

  • Ekspert

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 przez BlackIce
Odnośnik do komentarza
Udostępnij na innych stronach

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

  • Ekspert

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 przez BlackIce
Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
  • Podobna zawartość

    • Chciałbym aby okienko wyświetlało się co sesje. 
      var monster={set:function(e,t,n,r){var i=new Date,s="",o=typeof t,u="";r=r||"/",n&&(i.setTime(i.getTime()+n*24*60*60*1e3),s="; expires="+i.toGMTString());if(o==="object"&&o!=="undefined"){if(!("JSON"in window))throw"Bummer, your browser doesn't support JSON parsing.";u=JSON.stringify({v:t})}else u=escape(t);document.cookie=e+"="+u+s+"; path="+r},get:function(e){var t=e+"=",n=document.cookie.split(";"),r="",i="",s={};for(var o=0;o<n.length;o++){var u=n[o];while(u.charAt(0)==" ")u=u.substring(1,u.length);if(u.indexOf(t)===0){r=u.substring(t.length,u.length),i=r.substring(0,1);if(i=="{"){s=JSON.parse(r);if("v"in s)return s.v}return r=="undefined"?undefined:unescape(r)}}return null},remove:function(e){this.set(e,"",-1)},increment:function(e,t){var n=this.get(e)||0;this.set(e,parseInt(n,10)+1,t)},decrement:function(e,t){var n=this.get(e)||0;this.set(e,parseInt(n,10)-1,t)}}; if (monster.get('cookieinfo') === 'true') { return false; } monster.set('cookieinfo', 'true', 365); Jak dodawałem kod pierwszego skryptu to usuwało "wyślij"
      Bo rozumiem jak 365 zmienię na 1 to będzie co 24h?
    • Jak dorzucić do tego ciastka aby po zamknięciu okienka wyświetliło się dopiero przy następnej sesji lub 24h
      $(document).ready(function() { var id = '#dialog'; var maskHeight = $(document).height(); var maskWidth = $(window).width(); $('#mask').css({'width':maskWidth,'height':maskHeight}); $('#mask').fadeIn(500); $('#mask').fadeTo("slow",0.9); var winH = $(window).height(); var winW = $(window).width(); $(id).css('top', winH/2-$(id).height()/2); $(id).css('left', winW/2-$(id).width()/2); $(id).fadeIn(2000); $('.window .close').click(function (e) { e.preventDefault(); $('#mask').hide(); $('.window').hide(); }); $('#mask').click(function () { $(this).hide(); $('.window').hide(); }); });
    • Co jest nie tak?
       
      function isLogged() { global $userdata, $_SESSION; // sprawdzamy, czy mamy sesje i dane usera if ($userdata['user_id'] > 0 and isset($_SESSION['user_id'])) { return true; } else { return false; } } // funkcja na sprawdzanie czy user jest zalogowany, jeśli nie to wyświetlamy komunikat function check_login() { if(!$_SESSION['isLogged']) { echo 'To jest strefa tylko dla zalogowanych!<br /> <a href="index.php?page=login">Logowanie</a> / <a href="index.php?page=register">Rejestracja</a>'; } }  
  • Najnowsze tematy

  • Ostatnio rozwiązane

    • Grafikiem nie jestem ale może się spodoba 🙂 Dodaję też plik PSD (edycja w programie Photoshop) jakby ktoś chciał sobie zmienić napis: Ukryta zawartość Zareaguj na post lub odpowiedz w temacie aby zobaczyć ukrytą zawartość.
    • Witaj Zenon. Program jest bardzo stary, wydany po raz pierwszy w 2004 roku. Rozumiem że posiadasz jeszcze wersję 1.0 bądź 1.1?  Z tego co widzę najnowszą i ostatnią wersją która została wydana, jest wersja 2.2.2 z 2008 roku. Niestety nie wspiera ona systemu Windows 7 ani tym bardziej Windows 10. Jeżeli chodzi o błąd to mówi on że nie próba ustawienia/zapisu danych dla pola ScreenFontName się nie powiodła.  Kod programu jest stary i nie jest kompatybilny z najnowszym systemem. Najlepszym wyjściem z tej sytuacji będzie przeniesienie się na nowszy program. Jest kilka tego typu programów, jednak musisz wziąć pod uwagę że nie wszystkie są w pełni darmowe a wiele z nich posiada ograniczenia. Sprawdź proszę poniższą listę programów do tworzenia drzewa genealogicznego: Drzewo Genealogiczne II (ograniczenia, wersja testowa)  Family Tree Builder (trzeba założyć konto online, ale jest darmowy i bez ograniczeń) Brother's Keeper (wersja testowa) Drzewo przodków (wersja demo)
×