Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Panel logowania - lepsze rozwiązanie ...
d4ng
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 4
Dołączył: 7.03.2010

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


Witam serdecznie, na podstawie jednego z kursów php udało mi się zrobić prosty panel logowania jednak ma on swoje wady które chciałbym wyeliminować... A więc... stworzyłem plik index.php w którym mamy formularz oraz prostą instrukcje warunkową. Po jej spełnieniu przenosi mnie na content.php. Zrobiłem również plik logout który ma za zadanie przenieść mnie do index.php. Fajnie że się loguje i wylogowuje jednak do panelu można się dostać np podając w adresie /content.php... Chiałbym to jakoś zabezpieczyć tak żeby jedyną droga dostania się było podanie prawidłowego loginu i hasła oraz przydało by się jakies ograniczenie czasowe - np po 5 minutach admin sam się wylogowuje. Dodam tylko że dopiero raczkuje w php ale chętnie się uczę smile.gif Proszę Was o jakieś pomysły, przykłady, rozwiązania... Z góry dziekuje i życze wszystkim zdrowych i spokojnych świąt smile.gif


index.php
  1. <?php ob_start(); ?>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Baza klientów</title>
  7. <link rel=stylesheet href="style.css">
  8. <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300' rel='stylesheet' type='text/css'>
  9. <script src="http://code.jquery.com/jquery.min.js"></script>
  10. <!--[if lt IE 9]>
  11. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  12. <![endif]-->
  13. </head>
  14. <body>
  15. <div id="kontener_admin">
  16.  
  17. <div id="admin">
  18. <form method="POST" action="">
  19.  
  20. <fieldset>
  21.  
  22. <legend>Zaloguj się do bazy</legend><br />
  23.  
  24. <label>Login: </label><input type="text" name="username" value="" /><br />
  25. <label>Hasło: </label><input type="password" name="password" value="" /><br />
  26. <input type="submit" value="Prześlij" class="btn" />
  27.  
  28. </fieldset>
  29.  
  30. <input type="hidden" name="checker" value="1" />
  31. </form>
  32.  
  33. <?php
  34.  
  35. define("LOGIN","admin");
  36. define("PASSWORD","xsw21qaz");
  37.  
  38. if(isset($_POST['checker'])){
  39.  
  40. if(($_POST['username'] == LOGIN) && ($_POST['password'] === PASSWORD)){
  41. $_SESSION['logged'] = true;
  42. $_SESSION['login'] = $_POST['username'];
  43. header("Location: content.php", true);
  44. } else {
  45. echo "<br /><center><p style=\"color:red\">Zły login lub hasło!</p></center>";
  46. }
  47. }
  48. ?>
  49. </div>
  50. </div>
  51. </body>
  52. </html>
  53. <?php ob_end_flush(); ?>


content.php
  1. <?php session_start(); ?>
  2. <?php require_once("db.php"); ?>
  3. <?php require_once("header.php"); ?>
  4. <?php require_once("sidebar.php"); ?>
  5. <?php
  6.  
  7. ?>
  8. <div id="main">
  9. <?php
  10. $lista = "SELECT * FROM klienci";
  11. $wynik = mysql_query($lista);
  12. echo '<table cellpadding="0" border="1">';
  13. while ($row = mysql_fetch_array($wynik)) {
  14. echo '<tr><td>' . $row["id"] . '</td><td>' . $row["nazwa"] . '</td><td>' . $row["email"] . '</td><td>' . $row["telefon"] . '</td><td>' . $row["dzielnica"] . '</td><td>' . $row["ulubione"] . '</td></tr>';
  15. }
  16. echo '</table>';
  17.  
  18. ?>
  19. </div>
  20.  
  21. <?php mysql_close($sql_conn); ?>
  22.  
  23.  
  24. <?php require_once("footer.php"); ?>


logout.php
  1. <?php
  2.  
  3. if(isset($_SESSION['logged']) && (!empty($_SESSION['login']))) {
  4. header("Location: index.php", true);
  5.  
  6. } else {
  7. echo "<h1>zooonk! :)</h1>";
  8. }
  9. ?>


Ps. jeżeli widzicie jakieś rażące babole bezpieczeństwa itp to bardzo proszę o uwagi

Ten post edytował d4ng 22.12.2013, 09:47:23
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.08.2025 - 05:46