[PHP] niechciane automatyczne wylogowywanie z panelu adminis


(Mathew) #1

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] [b]meta.php[/b]

 ?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](?s=wyloguj)
 Strona
- 
- [Podstrony](index.php?s=podstrony)
- [Aktualności](index.php?s=aktualnosci)
- [Meta Tagi](index.php?s=metatagi)
- [Reklamy](index.php?s=reklamy)
 mateo CMS v. beta
- 
- [Konfiguracja](index.php?s=konfiguracja)
- [Strona projektu](http://cms.mateuszsurma.pl)
- [Kontakt z pomocą techniczną](index.php?s=kontakt)
 ?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(); } ?

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.


(matiit) #2

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)


(Mathew) #3

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


(matiit) #4

A czemu nie uźyjesz $_SESSION?


(Mathew) #5

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] [b]panel.php[/b]
[code]

Witaj w Panelu Administracyjnym mateo CMS v. beta Wyloguj

Strona
-
- Podstrony
- Aktualności
- Meta Tagi
- Reklamy
mateo CMS v. beta
-
- Konfiguracja
- Strona projektu
- Kontakt z pomocą techniczną

?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();

}

?

(Kubarek) #6

Zobacz na plik panel.php.

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


(Asterisk) #7


(Mathew) #8

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:


(matiit) #9

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


(Mathew) #10

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