Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Panel klientów
lukas123
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.01.2014
Skąd: Kraków

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


Witam!

Szukam rozwiązania mojego problemu.
Otóż chciałbym, aby klient po zalogowaniu miał dostęp do swojego panelu pod adersem np. http://nazwa.pl/panel.php?user=login ale inny użytkownik, z panelem pod adresem np. http://nazwa.pl/panel.php?user=nick już nie miał dostępu do jego panelu. Strona http://nazwa.pl/panel.php?user=login miała byb być generowana automatycznie przy logowaniu. Każdy inny panel miałby inną treść.

Moje skrypty:

Baza danych
  1. CREATE TABLE IF NOT EXISTS `user` (
  2. `id_user` smallint(6) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  4. `password` varchar(128) COLLATE utf8_polish_ci NOT NULL,
  5. PRIMARY KEY (`id_user`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;
  7.  
  8. INSERT INTO `user` (`id_user`, `login`, `password`) VALUES
  9. (1, 'admin', '21232f297a57a5a743894a0e4a801fc3');


Plik index.php
  1. <?php session_start();
  2. require_once('db.php');
  3. ?>
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <link href="css/style.css" rel="stylesheet" type="text/css" />
  8. <title>Panel klienta</title>
  9. </head>
  10.  
  11. <body>
  12.  
  13. <?php
  14. /* jeżeli nie wypełniono formularza - to znaczy nie istnieje zmienna login, hasło i sesja auth
  15.   * to wyświetl formularz logowania
  16.   */
  17. if (!isset($_POST['login']) && !isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
  18. ?>
  19.  
  20. <form name="form-logowanie" action="index.php" method="post">
  21. Login: <input type="text" name="login" /><br />
  22. Hasło: <input type="password" name="password" />
  23. <input type="submit" name="zaloguj" value="Zaloguj" />
  24. </form>
  25.  
  26. <?php
  27. }
  28. /* jeżeli istnieje zmienna login oraz password i sesja z autoryzacją użytkownika jest FALSE to wykonaj
  29.   * skrypt logowania
  30.   */
  31. elseif (isset($_POST['login']) && isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
  32.  
  33. // jeżeli pole z loginem i hasłem nie jest puste
  34. if (!empty($_POST['login']) && !empty($_POST['password'])) {
  35.  
  36. // dodaje znaki unikowe dla potrzeb poleceń SQL
  37. $login = mysql_real_escape_string($_POST['login']);
  38. $password = mysql_real_escape_string($_POST['password']);
  39.  
  40. // szyfruję wpisane hasło za pomocą funkcji md5()
  41. $password = md5($password);
  42.  
  43. /* zapytanie do bazy danych
  44.   * mysql_num_rows - sprawdzam ile wierszy odpowiada zapytaniu mysql_query
  45.   * mysql_query - pobierz wszystkie dane z tabeli user gdzie login i hasło odpowiadają wpisanym danym
  46.   */
  47. $sql = mysql_num_rows(mysql_query("SELECT * FROM `user` WHERE `login` = '$login' AND `password` = '$password'"));
  48.  
  49. // jeżeli powyższe zapytanie zwraca 1, to znaczy, że dane zostały wpisane poprawnie i rejestruję sesję
  50. if ($sql == 1) {
  51.  
  52. // zmienne sesysje user (z loginem zalogowanego użytkownika) oraz sesja autoryzacyjna ustawiona na TRUE
  53. $_SESSION['user'] = $login;
  54. $_SESSION['auth'] = TRUE;
  55.  
  56. // przekierwuję użytkownika na stronę z ukrytymi informacjami
  57. echo '<meta http-equiv="refresh" content="1; URL=hide.php">';
  58. echo '<p style="padding-top:10px";><strong>Proszę czekać...</strong><br />Trwa logowanie i wczytywanie danych</p>';
  59. }
  60.  
  61. // jeżeli zapytanie nie zwróci 1, to wyświetlam komunikat o błędzie podczas logowania
  62. else {
  63. echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />';
  64. echo '<a href="index.php">Wróć do formularza</a></p>';
  65. }
  66. }
  67.  
  68. // jeżeli pole login lub hasło nie zostało uzupełnione wyświetlam błąd
  69. else {
  70. echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />';
  71. echo '<a href="index.php">Wróć do formularza</a></p>';
  72. }
  73. }
  74.  
  75. // jeżeli sesja auth jest TRUE to przekieruj na ukrytą podstronę
  76. elseif ($_SESSION['auth'] == TRUE && !isset($_GET['logout'])) {
  77. echo '<meta http-equiv="refresh" content="1; URL=panel.php">';
  78. echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />Trwa wczytywanie danych</p>';
  79. }
  80.  
  81. // wyloguj się
  82. elseif ($_SESSION['auth'] == TRUE && isset($_GET['logout'])) {
  83. $_SESSION['user'] = '';
  84. $_SESSION['auth'] = FALSE;
  85. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  86. echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />Trwa wylogowywanie</p>';
  87. }
  88. ?>
  89.  
  90. </body>
  91.  
  92. </html>


plik db.php
  1. <?php
  2. /*Połączenie z bazą danych*/
  3. $dbhost = 'localhost';
  4. $dblogin = 'root';
  5. $dbpass = '';
  6. $dbselect = 'baza';
  7. mysql_connect($dbhost,$dblogin,$dbpass);
  8. mysql_select_db($dbselect) or die("Błąd przy wyborze bazy danych");
  9. mysql_query("SET CHARACTER SET UTF8");
  10. ?>


i plik panel.php
  1. <?php session_start();
  2. require_once('db.php');
  3. ?>
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <link href="css/style.css" rel="stylesheet" type="text/css" />
  8. <title>Panel klienta</title>
  9.  
  10. </head>
  11.  
  12. <body>
  13.  
  14. <?php if ($_SESSION['auth'] == TRUE) {
  15. echo 'UKRYTA TREŚĆ!<br />';
  16. echo '<a href="index.php?logout">Wyloguj się</a>';
  17. }
  18. else {
  19. echo '<meta http-equiv="refresh" content="0; URL=index.php">';
  20. echo '<p style="padding-top:10px;color:#ff0";><strong>Próba nieautoryzowanego dostępu...</strong><br />Trwa przenoszenie do strony głównej</p>';
  21. }
  22. ?>
  23.  
  24. </body>
  25.  
  26. </html>


Proszę o pilną pomoc!
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 2.10.2025 - 22:25