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
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




No ale czego nie wiesz? Jak pobrac z sesji danych aktualnego usera?
$_SESSION['user']
Dobrze by bylo, zebys zapisywac do sesji tez ID usera

Czegos innego? To napisz czego. Jak oczekujesz, ze ktos za Ciebie to zrobi, to dzial Gielda Ofert sie klania.
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: 5.10.2025 - 20:13