Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze skryptem panelu administracyjnego
Forum PHP.pl > Forum > PHP
paffcio87
Witam Was ponownie chciałbym się zwrócić do Was wyjadaków w dziedzinie programowania w PHP z prośbą ;-)
A więc przejdę od razu do rzeczy.
Mam takie o to sobie 2 skrypty:
formularz do logowania do panelu administracyjnego:
  1. <?php
  2. if ($_SESSION['logowanie']== 'pawel') {
  3. if (isset($_SESSION['admin'])) {
  4. header("Location: admin.php"); }
  5. ?>
  6. <?php
  7. echo $_SESSION['da'];
  8. unset ($_SESSION['da']);
  9. ?>
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  11. <HTML>
  12. <head>
  13. <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
  14. <meta name="generator" content="Bluefish 1.0.7">
  15. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  16. <TITLE>
  17. Logowanie do Panelu Administracyjnego
  18. </TITLE>
  19. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  20.  <body>
  21.  
  22. <?php
  23. ?>
  24. <div id="menu">
  25. <?php 
  26. include('./menu.inc');
  27. ?>
  28. </div>
  29. <div id="top">
  30.  <form action= "admin.php" method="POST">
  31. <legend>
  32. <h2>Podaj hasło aby zalogować się do panelu administratora</h2>
  33. </legend>  
  34. <center><p><h6>Hasło: <input type= "password" name="haslo" maxlength="10" size="8"></h6></p>
  35. <input type="submit" name="submit" value="wejdz do panelu"></center>
  36. <?php
  37.  
  38. } else {
  39. include('./ostrzezenie.php');
  40.  }
  41.  ?>
  42.  </div>
  43. </body>
  44. </html>

oraz skrypt samego panelu:
  1. <?php
  2. if ($_SESSION['logowanie']== 'pawel') {
  3. $_SESSION['admin']= 'aktywny';
  4. if (!isset($_SESSION['admin'])) {
  5. echo 'ljgxngdfg;ouk.hvcmhtfrjy'; 
  6. } else {
  7. ?>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  9. <HTML>
  10. <head>
  11. <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
  12. <meta name="generator" content="Bluefish 1.0.7">
  13. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  14. <TITLE>
  15.  Panel Administratora
  16. </TITLE>
  17. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  18.  <body>
  19.  <?php
  20. $info= NULL;
  21. $haslo= $_POST['haslo'];
  22. if (isset($_POST['submit'])) {
  23. if(!empty($_POST['haslo'])) {
  24. if(md5($haslo)== '098f6bcd4621d373cade4e832627b4f6') {
  25.  
  26. ?>
  27. <?php
  28.  include('./menu.inc');
  29.  ?>
  30.  <?php
  31. echo'<center><div style= "margin-top: -15px; font-size: 13px; text-decoration: none;"><a href="wylogowanie.php">wyloguj '; echo "<b><i>"; echo $_SESSION['logowanie']; echo "</i></b>"; echo '</a></div><br /><br /></center>';
  32.  ?>
  33.  
  34.  <?php  
  35. include("./config.php");
  36. mysql_connect($dbhost, $dbuser, $dbpass);
  37. mysql_select_db($dbname) or Die ("Nie udało się połączyć z bazą danych:-(");
  38. $query= "SELECT CONCAT(nazwisko, ' ', imie) AS name, (Gadu) AS dr, (klasa)AS dr, (nick)AS dr, (data_rejestracji) AS dr FROM userzy ORDER BY nazwisko ASC";
  39. $result= @mysql_query ($query);
  40. if ($result) {
  41.  echo '<center>Witaj '; echo $_SESSION['logowanie']; echo'</center><br />';
  42.  echo '<center><b><font color="blue"><font size="2">W tym panelu masz możliwość edytowania kont użytkowników, jeśli chcesz aby da
    ny żytkownik był aktywny zaznacz opcję "Tak"</font></font></b></center><br />
  43.  <table align="center" cellspacing="2" cellpadding="2"> 
  44.  <tr><td align="left"><font color= "#000"><b>Nazwisko i Imę |</b></font></td><td align="left"><font color="#000"><b>Gadu-Gadu |</b></font></td><td align="left"><font color="#000"><b>Klasa |</b></font></td><td align="left"><font color="#000"><b>Pseudonim |</b></font></td><td><font color="#000"><b>Data rejestracji |</b></font></td><td><font color="#000"><b>Aktywny |</b></font></td></tr>';
  45.  while($row=mysql_fetch_array($result, MYSQL_NUM)) {
  46. echo "<tr><td align=\"left\">".
  47. stripslashes($row[0]) . "</td></td><td align=\"center\">$row[1]</td><td align=\"center\">$row[2]</td><td align=\"center\">$row[3]</td><td align=\"center\">$row[4]"; echo'<td align="center">'; include('./wybor.inc'); echo '</td></tr>';
  48.  }
  49.  echo "</table>";
  50.  mysql_free_result ($result);
  51.  } else {//jesli nie udalo sie wykonac zapytanka
  52.  echo '<p>Niestety...nie można wyświetlić listy użytkowników spowodu awarii systemu</p><p> '.
  53.  mysql_error() .'</p>';
  54.  }
  55.  ?>
  56.  <br />
  57.  <center><form action="admin.php" method="POST"><input type="submit" name="wyslij" value="Wprowadź zmiany"></center></form>
  58. <?php
  59.  $aktywny= $_POST['aktywny'];
  60. if (isset($_POST['wyslij'])) { 
  61.  require_once('./config.php');
  62.  mysql_connect($dbhost, $dbuser, $dbpass);
  63.  mysql_select_db ($dbname) or Die ('Połączenie z bazą nie udało się');
  64.  
  65.  $query=("UPDATE userzy SET aktywny= '".$aktywny."' ");
  66.  $result= @mysql_query ($query);
  67.  if ($result) {
  68.  echo 'Zmiany zostały wprowadzone';
  69. } else {
  70. echo 'Nie udało się wprowadzić zmian';
  71.  }
  72. }
  73. } else {
  74. $info .='<h6>Podane hasło jest nieprawidłowe!</h6>';
  75. $_SESSION['da']= $info;
  76. header("Location: panel.php");
  77.  } 
  78.  } else {
  79.  $info .='<h6>Podaj hasło, aby wejść do panelu!</h6>';
  80.  $_SESSION['da']= $info;
  81. header("Location: panel.php");
  82.  }
  83. }
  84. ?>
  85. <?php
  86. }
  87. ?>
  88. <?php
  89.  } else {
  90.  include('./ostrzezenie.php'); }
  91.  ?>
  92. </body>
  93. </html>

Ogólnie wygląda na to, że wszystko jest OK, ale mój problem polega na tym, że chcem zrobić coś takiego, żeby po zalogowaniu sue za pierwszym razem do panelu nie musiał już podawać hasła jeśli z niego wyjdę i będę chciał wejść ponownie (stąd też nawalone tyle sesji ;-)) morduję się z tym już dluższy czas i co bym nie zrobił nie chce działać tak jakbym tego chciał sad.gif . Mam nadzieję, że mi pomożcie będę wdzieczny. Jeśli macie jakieś wątpliwości co to moich wypocin pytajcie postaram się wytłumaczyć smile.gif
piotrooo89
nie bardzo wiem po co tyle razy włączasz tryb php?

  1. <?php
  2. $info= NULL;
  3. $haslo= $_POST['haslo'];
  4. if (isset($_POST['submit'])) {
  5. if(!empty($_POST['haslo'])) {
  6. if(md5($haslo)== '098f6bcd4621d373cade4e832627b4f6') {
  7.  
  8. ?>
  9. <?php
  10.  include('./menu.inc');
  11.  ?>
paffcio87
Fakt...też się złapałem na tym otwieraniu i zamykaniu php,ale tak jest mi się łatwiej odnaleźć później w warunkach ;-)
A co o manuala to chyba będę się go musiał poduczyć bo szczerze mówiąc jeszcze sie za to nie brałem
piotrooo89
manual to podstawa...

tu masz moj system logowania... sam pisałem może nie jest super ale moje założenia narazie spełnia.

plik login.php
  1. <?php
  2.  
  3. $login = $_POST['loguj'];
  4. if($login)
  5. {
  6. $user = $_POST['login'];
  7. $haslo = $_POST['pass'];
  8.  
  9. include('mysql.inc');
  10.  
  11. $sql = mysql_query("SELECT * FROM admin WHERE login='$user' AND pass='$haslo'");
  12.  
  13. if(@mysql_num_rows($sql))
  14. {
  15. session_register("uzytkownik");
  16. header("Location: admin.php");
  17. }
  18. else 
  19. {
  20. $message="Nieprawidłowa nazwa użytkownika lub hasło.";
  21. }
  22. }
  23. ?>
  24. <html>
  25. <head>
  26. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  27. <title></title>
  28. </head>
  29. <body>
  30. <form name="login" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
  31. <table>
  32. <tr>
  33. <td>Login:</td><td><input type="text" name="login" id="login" /></td>
  34. </tr>
  35. <tr>
  36. <td>Pass:</td><td><input type="password" name="pass" id="pass" /></td>
  37. </tr>
  38. </table>
  39. <input type="submit" name="loguj" value="Loguj" />
  40. </form>
  41. </body>
  42. </html>


i plik w którym jest zalogowany user (w moim wypadku admin.php)
  1. <?php
  2.  
  3. if(!session_is_registered("uzytkownik"))
  4. {
  5. header("location:login.php");
  6. }
  7. ?>
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11. <title></title>
  12. </head>
  13. <body>
  14. Witaj Adminie <? echo $_SESSION[&#8216;uzytkownik’]; ?>! Jestes zalogowany.
  15. <a href="logout.php">Wyloguj</a>
  16. </body>
  17. </html>
paffcio87
piotrooo89 dzieki za pomoc, ale logowanie do panelu i wszystko dziala jak nalezy chodzi mi tylko o to jak zrobic, zebym nie musial podawac hasla za kazdym razem jak chcem wejsc do tego panelu smile.gif
merk
Jeżeli chcesz być zalogowany od razu po wejściu na stronę panelu możesz:

a. ustawić długi czas życia sesji np na tydzień ini_set("session.gc_maxlifetime",60*60*24*7); nie korzystaj z opcji wyloguj wtedy smile.gif

b. Zapisywać login i hasło po zalogowaniu w $_COOKIES
  1. <?php
  2. if(!empty($_REQUEST['login']) && !empty($_REQUEST['pass']))
  3. {
  4. $user = $_REQUEST['login'];
  5. $haslo = $_REQUEST['pass'];
  6.  
  7. setcookie("login", $user , 60*60*24*7); // ustawienie ciasteczek na tydzien
  8. setcookie("pass", $haslo 60*60*24*7);
  9. }
  10. ?>


Chociaż zapisywanie loginu i hasła w cookie nie jest najlepszym pomysłem, z uwagi na bezpieczeństwo smile.gif
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.