Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Panel administracyjny
bylek
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 2
Dołączył: 2.11.2010

Ostrzeżenie: (0%)
-----


Witam, tworzę prosty panel administracyjny na własne potrzeby, jednak mam pewien problem i mam nadzieję że pomożecie mi go rozwiązać.
Otóż po zalogowaniu sie do panelu admina i wejściu na dowolną podstronę w nim wyrzuca mnie do logowania. Na pewno ma tą związek z kodem który umieściłem w admin.php. Proszę również o sprawdzanie czy panel jest bezpieczny.

administrator.php
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <link rel="stylesheet" href="css/style.css" />
  3. <title>Logowanie</title>
  4. </head>
  5. <div class="logowanie">
  6. <form method="post" action="admin.php">
  7. <h1>Logowanie:</h1><br />
  8. Hasło: <input type="password" name="haslo" /><br /><br />
  9. <input type="submit" value="Loguj" />
  10. </form>
  11. <p><a href="index.php">Przejdź do strony głównej &raquo;</a></p>
  12. </div>
  13. </body>


admin.php
  1. <?php
  2. if(isset($_POST['haslo'])){
  3. if($_POST['haslo'] == 'super123'){
  4. $_SESSION['admin'] = 'ok';
  5. }
  6. }
  7. if((!isset($_POST['haslo']) || $_POST['haslo'] != 'super123') && $_GET['admin'] != 'wyloguj'){
  8. header("Location: administrator.php");
  9. }
  10.  
  11. if($_SESSION['admin'] = 'ok'){
  12. include("panel.php");
  13. }
  14. if(isset($_GET['admin']) && $_GET['admin']=='wyloguj')
  15. {
  16. $_SESSION['admin'] != 'ok';
  17. ?>
  18. <script language="JavaScript" type="text/javascript">
  19. location.href="index.php";
  20. </script>
  21. <?php
  22. }
  23. ?>


panel.php
  1. <?php
  2. if($_SESSION['admin'] == 'ok'){
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  6.  
  7. <head>
  8. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  9. <meta name="author" content=" " />
  10. <link rel="Stylesheet" type="text/css" href="css/style1.css" />
  11. <title>Stronka</title>
  12. </head>
  13.  
  14. <body>
  15. <div id="wrapper">
  16. <div id="header">
  17. <div id="top">
  18. <h1>Panel administracyjny</h1>
  19. </div>
  20. <div id="logout">
  21. <h2><a href="admin.php?admin=wyloguj">&raquo; Wyloguj mnie</a></h2>
  22. </div>
  23. </div>
  24. <div id="center">
  25. <div id="nawigacja">
  26. <h3>.nawigacja</h3>
  27. <ul id="menu">
  28. <li><a href="?id=news">&raquo; system newsów</a></li>
  29. <li><a href="?id=users">&raquo; użytkownicy</a></li>
  30. <li><a href="#">&raquo; ...</a></li>
  31. <li><a href="#">&raquo; ...</a></li>
  32. </ul>
  33. </div>
  34. <div id="intro">
  35. <h3>.panel</h3>
  36. <p>
  37. <?php
  38. switch($_GET['id']){
  39. case 'news':
  40. echo "newsy";
  41. break;
  42. case 'users':
  43. echo "users";
  44. break;
  45. default:
  46. echo "Witaj w panelu administrcyjnym!<br /><br />Wybierz pozycję z menu po lewej aby zarządzać stroną.";
  47. }
  48. ?>
  49. </p>
  50. </div>
  51. </div>
  52. </div>
  53. </body>
  54. </html>
  55. <?php
  56. }else {
  57. header("Location: administrator.php");
  58. }
  59. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
piaseq
post
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 25
Dołączył: 6.09.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Na moje oko brakuje session_start() na początku panel.php
Go to the top of the page
+Quote Post
bylek
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 2
Dołączył: 2.11.2010

Ostrzeżenie: (0%)
-----


Niestety dodanie session_start() na początku panel.php nic nie daje...
Go to the top of the page
+Quote Post
naitsabes
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 5
Dołączył: 10.09.2010

Ostrzeżenie: (0%)
-----


narazie zobaczyłem kod, bledu nie zauwazylem lecz po co robisz tak :

  1. if(isset($_POST['haslo'])){
  2. if($_POST['haslo'] == 'super123'){


nawet nie ma else, skoro nie ma hasla to takze nie jest rowne 'super123' prawda? Jezeli tak zrobisz jak robisz to daj 'Zapraszam do zalogowania' itd..

#edit

kolejny ' uszczerbek '

  1. if($_SESSION['admin'] == 'ok'){


nie lepiej zrobic sprawdzenie czy admin != 'ok' i wtedy headera wkleic ?


#edit 2


znalazłem odpowiedz otoz


  1. if((!isset($_POST['haslo']) || $_POST['haslo'] != 'super123') && $_GET['admin'] != 'wyloguj'){


zastepujesz

  1. if($_SESSION['admin']!='ok' && $_GET['admin'] != 'wyloguj'){


ale mam pytanko. po co dales

  1. && $_GET['admin'] != 'wyloguj'


prosze o wytlumaczenie..


nastepnie


  1. if($_SESSION['admin'] = 'ok'){


w ifach pamietaj dopisywac podwojne = czyli ==

wiecej wyzej dry.gif pozdrawiam naitsabes

Ten post edytował naitsabes 6.11.2010, 18:19:24
Go to the top of the page
+Quote Post
bylek
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 2
Dołączył: 2.11.2010

Ostrzeżenie: (0%)
-----


Dzięki za pomoc, jednak teraz nie musze nawet podawać hasła żeby wejść na strone. A
  1. && $_GET['admin'] != 'wyloguj'
używam dlatego, gdyż po wylogowaniu chce by mnie przekierowywało do index.php, a nie administrator.php.
Go to the top of the page
+Quote Post
naitsabes
post
Post #6





Grupa: Zarejestrowani
Postów: 65
Pomógł: 5
Dołączył: 10.09.2010

Ostrzeżenie: (0%)
-----


jest to wina ze sesja istnieje, jak ja usuniesz przy wylogowaniu - session_destroy; to zniknie...
Go to the top of the page
+Quote Post
bylek
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 2
Dołączył: 2.11.2010

Ostrzeżenie: (0%)
-----


Dzięki mistrzu smile.gif Już wszystko śmiga.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:52