[PHP] niechciane automatyczne wylogowywanie z panelu adminis

Witam,

piszę właśnie panel administracyjny i napotkałem na pewien problem. Loguje się do panelu admina i wczytuje się pierwsza strona (panel.php a w nim podstrona pierwsza.php), jednak jak wybiorę jedną z podstron przerzuca do strony z logowaniem. Wiem, że jest to wina sesji tylko nie wiem gdzie tkwi problem, ma to miejsce po zalogowaniu a przed wczytaniem podstrony. Siedzę nad tym od rana :(.

I kody:

index.php

<?php

include ('include/meta.php');  


$zapytanie=sql_select("

SELECT cmsadmin_login, cmsadmin_haslo, cmsadmin_moderacja FROM _mateo_admin

");


if ($_GET['s'] == 'wyloguj'){

  session_unregister($nazwa_sesji);

  include ('include/logowanie.php');

}


elseif (session_is_registered($nazwa_sesji)){

  include ('include/panel.php');    

}


elseif ((!empty($_POST['login'])) && (!empty($_POST['haslo']))){

  if (($_POST['login'] == $zapytanie[1][0]) && (md5($_POST['haslo']) == $zapytanie[1][1])){

    session_register($nazwa_sesji);

    include ('include/panel.php');

  }

  else {

    ?>

logo.jpg

| Panel Administracyjny |
| Podano nieprawidłowe dane, spróbuj ponownie… |

mateo CMS v. beta
?php } } else { include (“include/logowanie.php”); } include (“include/footer.php”); ? [/code] meta.php

[code] ?php session_start(); require (“include/function.php”); include (“include/config_page_admin.php”); ? br / “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd” Panel Administracyjny - mateo CMS v. beta
panel.php

Witaj w Panelu Administracyjnym mateo CMS v. beta Wyloguj

Strona

?php if(session_is_registered($nazwa_sesji)){ if (empty($_GET[‘s’])) include (‘include/pierwsza.php’); else include (‘include/’.$_GET[‘s’].’.php’); } else{ echo’Brak dostepu!’; exit(); } ?

[/code] podstrony.php

[code] ?php if(session_is_registered($nazwa_sesji)){ $zapytanie=sql_select(" SELECT * FROM _mateo_podstrony "); ? tu znajduje się HTML ?php } else{ echo’Brak dostepu!’; exit(); } ?

W pliku function.php znajduje się zmienna $nazwa_sesji

Proszę o pomoc albo albo zamiast “ryby”, o “wędkę”.

PS. wiem, że używanie “session_register” jest przestarzałe, ale mi ono odpowiada.

Lepiej się używa tablucy $_SESSION, poza tym sesje musisz mieć wystartowaną… session_start() wszędzie tam gdzie chcesz jej używać (tzn w pliku)

no tak ale session_start() jest w zaincludowanym meta.php, powstawiałem do każdego pliku i to samo :frowning:

A czemu nie uźyjesz $_SESSION?

A więc tak zamieniłem na $_SESSION i działało przez jeden dzień. Rano wstałem i znowu wszystko leżało :frowning: ocb?

index.php

<?php

session_start();

include ('include/meta.php');

$zapytanie=sql_select("

SELECT cmsadmin_login, cmsadmin_haslo, cmsadmin_moderacja FROM _mateo_admin

");


if ($_GET['s'] == 'wyloguj'){

  unset($_SESSION['logowanie']);

  include ('include/logowanie.php');

}


elseif ($_SESSION['logowanie'] == 'zalogowany'){

  include ('include/panel.php');    

}


elseif ((!empty($_POST['login'])) && (!empty($_POST['haslo']))){

  if (($_POST['login'] == $zapytanie[1][0]) && (md5($_POST['haslo']) == $zapytanie[1][1])){

    $_SESSION['logowanie'] = 'zalogowany';

    include ('include/panel.php');

  }

  else {

    ?>

logo.jpg

| Panel Administracyjny |
| Podano nieprawidłowe dane, spróbuj ponownie… |

mateo CMS v. beta
?php } } else { include (“include/logowanie.php”); } include (“include/footer.php”); ? [/code] panel.php

[code]

Witaj w Panelu Administracyjnym mateo CMS v. beta Wyloguj

Strona

?php session_start(); if($_SESSION[‘logowanie’] == ‘zalogowany’){ if (empty($_GET[‘s’])) include (‘include/pierwsza.php’); else include (‘include/’.$_GET[‘s’].’.php’); } else{ echo’Brak dostepu!’; exit(); } ?

podstrony.php

?php

session_start();

if($_SESSION['logowanie'] == 'zalogowany'){


$zapytanie=sql_select("

SELECT * FROM _mateo_podstrony

");


?



html


?php

}

else{

  echo'Brak dostepu!';

  exit();

}

?

Zobacz na plik panel.php.

Funkcja session_start musi występować na początku pliku, a u Ciebie jest gdzieś w środku :wink:

No tak, ale wcześniej nie są wykonywane żadne polecenia. I tak po przeniesieniu na górę nic nie daje :frowning:

@asterisk , mam nadzieję, że taki może być?

EDIT

haha pomogło formatowanie na UTF bez BOM :slight_smile: mam nadzieję, że jutro też będzie działać :stuck_out_tongue:

No dokładnie. Jak w notatniku nie otworzysz i nie zapiszesz to będzie działać (;

Używam Notatnika++ i wystarczyło zmienić formatowanie z UTF-8 na UTF-8 bez BOM :slight_smile: