Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z panelem administracyjnym
Forum PHP.pl > Forum > PHP
mateo92pl
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 sad.gif.

I kody:
index.php
  1. <?php
  2. include ('include/meta.php');
  3.  
  4. $zapytanie=sql_select("
  5. SELECT cmsadmin_login, cmsadmin_haslo, cmsadmin_moderacja FROM _mateo_admin
  6. ");
  7.  
  8. if ($_GET['s'] == 'wyloguj'){
  9. session_unregister($nazwa_sesji);
  10. include ('include/logowanie.php');
  11. }
  12.  
  13. elseif (session_is_registered($nazwa_sesji)){
  14. include ('include/panel.php');
  15. }
  16.  
  17. elseif ((!empty($_POST['login'])) && (!empty($_POST['haslo']))){
  18. if (($_POST['login'] == $zapytanie[1][0]) && (md5($_POST['haslo']) == $zapytanie[1][1])){
  19. session_register($nazwa_sesji);
  20. include ('include/panel.php');
  21. }
  22. else {
  23. ?>
  24. <br />
  25. <br />
  26. <p align="center"><img src="images/logo.jpg" border="0" alt="" /></p>
  27. <table class="logowanie">
  28. <tbody>
  29. <tr>
  30. <td colspan="2">Panel Administracyjny</td>
  31. </tr>
  32. <tr>
  33. <td>Podano nieprawidłowe dane, <a href="java script:history.back()">spróbuj ponownie...</a></td>
  34. </tr>
  35. </tbody>
  36. </table>
  37. </form>
  38. <br />
  39. <br />
  40. <div class="logowanie"><a href="http://" target="_blank">mateo</a> CMS v. beta</div>
  41.  
  42. <?php
  43. }
  44. }
  45.  
  46. else {
  47. include ("include/logowanie.php");
  48. }
  49.  
  50. include ("include/footer.php");
  51. ?>


meta.php
  1. <?php
  2. require ("include/function.php");
  3. include ("include/config_page_admin.php");
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  6. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <title>Panel Administracyjny - mateo CMS v. beta</title>
  10. <meta http-equiv="content-language" content="pl" />
  11. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  12. <meta name="description" content="opis">
  13. <meta name="keywords" content="słowa kluczowe">
  14. <link href="../css/style_admin.css" rel="stylesheet" type="text/css" />
  15. <script type='text/javascript' src='../js/addtext.js'></script>
  16. </head>
  17. <body>


panel.php
  1. <div class="menu">
  2. <div class="hello">Witaj w Panelu Administracyjnym mateo CMS v. beta <a href="?s=wyloguj">Wyloguj</a></div>
  3. <div class="panel">
  4. <div class="lewa">
  5. <div class="lista">
  6. Strona
  7. <ul>
  8. <li><a href='index.php?s=podstrony'>Podstrony</a></li>
  9. <li><a href='index.php?s=aktualnosci'>Aktualności</a></li>
  10. <li><a href='index.php?s=metatagi'>Meta Tagi</a></li>
  11. <li><a href='index.php?s=reklamy'>Reklamy</a></li>
  12. </ul><br />
  13. mateo CMS v. beta
  14. <ul>
  15. <li><a href='index.php?s=konfiguracja'>Konfiguracja</a></li>
  16. <li><a href='http://cms.mateuszsurma.pl' target='_blank'>Strona projektu</a></li>
  17. <li><a href='index.php?s=kontakt'>Kontakt z pomocą techniczną</a></li>
  18. </ul>
  19. </div>
  20. </div>
  21. <div class="prawa">
  22. <div class="tekst">
  23. <?php
  24. if(session_is_registered($nazwa_sesji)){
  25. if (empty($_GET['s']))
  26. include ('include/pierwsza.php');
  27. else
  28. include ('include/'.$_GET['s'].'.php');
  29. }
  30. else{
  31. echo'Brak dostepu!';
  32. exit();
  33. }
  34. ?>
  35. </div>
  36. </div>
  37.  
  38. </div>
  39. </div>
  40.  


podstrony.php
  1. <?php
  2. if(session_is_registered($nazwa_sesji)){
  3.  
  4. $zapytanie=sql_select("
  5. SELECT * FROM _mateo_podstrony
  6. ");
  7.  
  8. ?>
  9.  
  10. tu znajduje się HTML
  11.  
  12. <?php
  13. }
  14. else{
  15. echo'Brak dostepu!';
  16. exit();
  17. }
  18. ?>


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.
bogdan89
session_start powinieneś mieć na każdej podstronie

zamiast session_unregister możesz użyć po prostu unset, a zamiast session_is_registered po prostu isset.
wtedy będzie chyba i wygodniej i poprawnie snitch.gif
phpion
~bogdan89 ma rację. Wystarczyło zajrzeć do manuala:
http://pl.php.net/manual/en/function.sessi...-registered.php
http://pl.php.net/manual/en/function.session-unregister.php
Cytat
Caution

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().
mateo92pl
No tak, ale przecież session_start() jest includowane z meta.php, a i tak po dodaniu do każdej podstrony nic nie pomaga.
bogdan89
a co dokładnie przypisujesz do zmiennej $nazwa_sesji?
wiesz, że sesja powinna mieć format $sesja = $_SESSION['nazwa'];?
ja radziłbym wszędzie na sztywno używać $_SESSION['nazwa'], możesz mieć problem z zasięgiem zmiennych.

najlepiej to napisz jaki error lub warning się pokazuje, jeśli się nic nie pokazuje to daj na początku swoich skryptów:
Kod
error_reporting(E_ALL);
mateo92pl
Doszedłem o krok dalej. Teraz w PA wyskakuje informacja "Brak dostepu!". Ale chociaż przerzuca podstrony tongue.gif

index.php
  1. <?php
  2. include ('include/meta.php');
  3. $logowanie==$_SESSION['logowanie'];
  4.  
  5. $zapytanie=sql_select("
  6. SELECT cmsadmin_login, cmsadmin_haslo, cmsadmin_moderacja FROM _mateo_admin
  7. ");
  8.  
  9. if ($_GET['s'] == 'wyloguj'){
  10. unset($_SESSION['logowanie']);
  11. include ('include/logowanie.php');
  12. }
  13.  
  14. elseif ($logowanie ='zalogowany'){
  15. include ('include/panel.php');
  16. }
  17.  
  18. elseif ((!empty($_POST['login'])) && (!empty($_POST['haslo']))){
  19. if (($_POST['login'] == $zapytanie[1][0]) && (md5($_POST['haslo']) == $zapytanie[1][1])){
  20. $_SESSION['logowanie']='zalogowany';
  21. include ('include/panel.php');
  22. }
  23. else {
  24. ?>
  25. <br />
  26. <br />
  27. <p align="center"><img src="images/logo.jpg" border="0" alt="" /></p>
  28. <table class="logowanie">
  29. <tbody>
  30. <tr>
  31. <td colspan="2">Panel Administracyjny</td>
  32. </tr>
  33. <tr>
  34. <td>Podano nieprawidłowe dane, <a href="java script:history.back()">spróbuj ponownie...</a></td>
  35. </tr>
  36. </tbody>
  37. </table>
  38. </form>
  39. <br />
  40. <br />
  41. <div class="logowanie"><a href="htpp://" target="_blank">mateo</a> CMS v. beta</div>
  42.  
  43. <?php
  44. }
  45. }
  46.  
  47. else {
  48. include ("include/logowanie.php");
  49. }
  50.  
  51. include ("include/footer.php");
  52. ?>
  53.  


panel.php
  1. <div class="menu">
  2. <div class="hello">Witaj w Panelu Administracyjnym mateo CMS v. beta <a href="?s=wyloguj">Wyloguj</a></div>
  3. <div class="panel">
  4. <div class="lewa">
  5. <div class="lista">
  6. Strona
  7. <ul>
  8. <li><a href='index.php?s=podstrony'>Podstrony</a></li>
  9. <li><a href='index.php?s=aktualnosci'>Aktualności</a></li>
  10. <li><a href='index.php?s=metatagi'>Meta Tagi</a></li>
  11. <li><a href='index.php?s=reklamy'>Reklamy</a></li>
  12. </ul><br />
  13. mateo CMS v. beta
  14. <ul>
  15. <li><a href='index.php?s=konfiguracja'>Konfiguracja</a></li>
  16. <li><a href='http://cms.mateuszsurma.pl' target='_blank'>Strona projektu</a></li>
  17. <li><a href='index.php?s=kontakt'>Kontakt z pomocą techniczną</a></li>
  18. </ul>
  19. </div>
  20. </div>
  21. <div class="prawa">
  22. <div class="tekst">
  23. <?php
  24. $logowanie=$_SESSION['logowanie'];
  25. if($logowanie =='zalogowany'){
  26. if (empty($_GET['s']))
  27. include ('include/pierwsza.php');
  28. else
  29. include ('include/'.$_GET['s'].'.php');
  30. }
  31. else{
  32. echo'Brak dostepu!';
  33. exit();
  34. }
  35. ?>
  36. </div>
  37. </div>
  38.  
  39. </div>
  40. </div>
  41.  


pierwsza.php
  1. <?php
  2. $logowanie=$_SESSION['logowanie'];
  3. if($logowanie =='zalogowany'){
  4. ?>
  5. Witam w Panelu administracyjnym mateo CMS v. beta. Mam nadzieję, że łatwość obsługi tego CMS, pomoże Tobie w edycji strony www.
  6. Skorzystaj z menu dostępnego po lewej stronie aby przejść do edycji Twojej strony.
  7. <?php
  8. }
  9. else{
  10. echo'Brak dostepu!';
  11. exit();
  12. }
  13. ?>


podstrony.php
  1. <?php
  2. $logowanie=$_SESSION['logowanie'];
  3. if($logowanie =='zalogowany'){
  4.  
  5. $zapytanie=sql_select("
  6. SELECT * FROM _mateo_podstrony
  7. ");
  8.  
  9. ?>
  10.  
  11. html
  12.  
  13. <?php
  14. }
  15. else{
  16. echo'Brak dostepu!';
  17. exit();
  18. }
  19. ?>
bogdan89
w powyższych skryptach, w przypadku pliku index.php widzę błędy:

w linii 3:
Kod
$logowanie==$_SESSION['logowanie'];
przypisanie wartości do zmiennej to jeden znak '='.

w linii 14:
Kod
elseif ($logowanie ='zalogowany'){
przyrównanie to dwa znaki '==', a Ty masz jeden.

no i jeszcze dwie uwagi:
- w twoim przypadku nie musisz przypisywać zmiennej sesyjnej do innej zmiennej. możesz bez problemów operować na $_SESSION['logowanie'] i korzystać z niej w każdej instrukcji warunkowej. Bez zbędnej linii kodu.
- pamiętaj o session_start na każdej podstronie smile.gif
mateo92pl
yahoo.gif działa smile.gif dziękuje smile.gif

EDIT
I znowu to samo. Wczoraj wszystko działało a dziś rano znów leży, chodzi o wylogowywanie.
Po edycji mam takie kody:

index.php
  1. <?php
  2. include ('include/meta.php');
  3. $zapytanie=sql_select("
  4. SELECT cmsadmin_login, cmsadmin_haslo, cmsadmin_moderacja FROM _mateo_admin
  5. ");
  6.  
  7. if ($_GET['s'] == 'wyloguj'){
  8. unset($_SESSION['logowanie']);
  9. include ('include/logowanie.php');
  10. }
  11.  
  12. elseif ($_SESSION['logowanie'] == 'zalogowany'){
  13. include ('include/panel.php');
  14. }
  15.  
  16. elseif ((!empty($_POST['login'])) && (!empty($_POST['haslo']))){
  17. if (($_POST['login'] == $zapytanie[1][0]) && (md5($_POST['haslo']) == $zapytanie[1][1])){
  18. $_SESSION['logowanie'] = 'zalogowany';
  19. include ('include/panel.php');
  20. }
  21. else {
  22. ?>
  23. <br />
  24. <br />
  25. <p align="center"><img src="images/logo.jpg" border="0" alt="" /></p>
  26. <table class="logowanie">
  27. <tbody>
  28. <tr>
  29. <td colspan="2">Panel Administracyjny</td>
  30. </tr>
  31. <tr>
  32. <td>Podano nieprawidłowe dane, <a href="java script:history.back()">spróbuj ponownie...</a></td>
  33. </tr>
  34. </tbody>
  35. </table>
  36. </form>
  37. <br />
  38. <br />
  39. <div class="logowanie"><a href="http://cms.mateuszsurma.pl" target="_blank">mateo</a> CMS v. beta</div>
  40.  
  41. <?php
  42. }
  43. }
  44.  
  45. else {
  46. include ("include/logowanie.php");
  47. }
  48.  
  49. include ("include/footer.php");
  50. ?>
  51.  


panel.php
  1. <div class="menu">
  2. <div class="hello">Witaj w Panelu Administracyjnym mateo CMS v. beta <a href="?s=wyloguj">Wyloguj</a></div>
  3. <div class="panel">
  4. <div class="lewa">
  5. <div class="lista">
  6. Strona
  7. <ul>
  8. <li><a href='index.php?s=podstrony'>Podstrony</a></li>
  9. <li><a href='index.php?s=aktualnosci'>Aktualności</a></li>
  10. <li><a href='index.php?s=metatagi'>Meta Tagi</a></li>
  11. <li><a href='index.php?s=reklamy'>Reklamy</a></li>
  12. </ul><br />
  13. mateo CMS v. beta
  14. <ul>
  15. <li><a href='index.php?s=konfiguracja'>Konfiguracja</a></li>
  16. <li><a href='http://cms.mateuszsurma.pl' target='_blank'>Strona projektu</a></li>
  17. <li><a href='index.php?s=kontakt'>Kontakt z pomocą techniczną</a></li>
  18. </ul>
  19. </div>
  20. </div>
  21. <div class="prawa">
  22. <div class="tekst">
  23. <?php
  24. if($_SESSION['logowanie'] == 'zalogowany'){
  25. if (empty($_GET['s']))
  26. include ('include/pierwsza.php');
  27. else
  28. include ('include/'.$_GET['s'].'.php');
  29. }
  30. else{
  31. echo'Brak dostepu!';
  32. exit();
  33. }
  34. ?>
  35. </div>
  36. </div>
  37.  
  38. </div>
  39. </div>
  40.  


podstrony.php
  1. <?php
  2. if($_SESSION['logowanie'] == 'zalogowany'){
  3.  
  4. $zapytanie=sql_select("
  5. SELECT * FROM _mateo_podstrony
  6. ");
  7.  
  8. ?>
  9.  
  10.  
  11. html
  12.  
  13. <?php
  14. }
  15. else{
  16. echo'Brak dostepu!';
  17. exit();
  18. }
  19. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.