Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] logowanie, po zalogowaniu przekazywane są nadal puste zmienne!
bl4ck_b0x
post 26.01.2008, 18:27:06
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


Witam mam problem z formularzem do logowania. Oto kod:

  1. <?
  2. echo '<?xml version="1.0" encoding="UTF-8"?>'; 
  3. include('../cfg.php');
  4. include('../security.php');
  5. $login_admin=Zabezpiecz($_POST['login_admin']);
  6. $pass_admin=md5(Zabezpiecz($_POST['pass_admin']));
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  9. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  10. <html xmlns="http://www.w3.org/1999/xhtml">
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  13. <link rel="stylesheet" type="text/css" href="style.css" />
  14. <title>.</title>
  15. </head>
  16. <body>
  17. <div id="all">
  18. <div id="top">.administracja</div>
  19. <div id="content">
  20. <div id="menu">.logowanie</div>
  21. <div class="menu">
  22. <?
  23. if(!isset($_SESSION['logged'])&&(empty($_POST['login_admin']))&&(empty($_POST['pass_admin'])))
  24. {
  25. ?>
  26.  
  27. <table>
  28. <form method="POST" name="form">
  29. <tr>
  30. <td>login: </td><td><input type="text" name="login_admin"></td>
  31. </tr>
  32. <tr>
  33. <td>pass: </td><td><input type="password" name="pass_admin"></td>
  34. <tr>
  35. <td><input type="submit" value="Zaloguj"></td>
  36. </tr>
  37. </form>
  38. </table>
  39.  
  40. <?
  41. }
  42. elseif((isset($login_admin))&&(isset($pass_admin)))
  43. {
  44. $a='SELECT login,pass FROM users';
  45. $aa=mysql_query($a);
  46. $aaa=mysql_fetch_array($aa);
  47. if(($aaa[0]===$login_admin)&&($aaa[1]===$pass_admin))
  48. {
  49. $_SESSION['logged']=''.$login_admin.'';
  50. echo '<b>'.$_SESSION['logged'].'</b> zostałeś pomyślnie zalogowany';
  51. }
  52. else
  53. {
  54. echo "$login_admin : $pass_admin <br />";
  55. echo 'Login lub hasło jest nieprawidłowe';
  56. }
  57. }
  58. else
  59. {
  60. echo 'Dane wprowadzone do formularza są błędne';
  61. }
  62. ?>
  63. </div>
  64. </div>
  65. <div id="bottom">Created by bl4ck_b0x &copy; 2008</div>
  66. </div>
  67. </body>
  68. </html>
  69. <?
  70. ?>


Kod działa niby dobrze, mogę się zalogować jednak gdy wciskam jeszcze raz enter (wczytuje ponownie stronę) to pojawia mi się (dlatego tam zamiescilem aby wyswietlalo mi przekazywane zmienne z formularza) to:

  1. <?php
  2. : d41d8cd98f00b204e9800998ecf8427e
  3. Login lub hasło jest nieprawidłowe
  4. ?>


Czyli tak jakby z formularza było coś ciągle przekazywane. Bardzo proszę o pomoc ;/ siedzę nad tym od godziny i nie widzę błędu...
Go to the top of the page
+Quote Post
b_chmura
post 26.01.2008, 18:54:42
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


co robi Twoja funkcja Zabezpiecz()?
Go to the top of the page
+Quote Post
bl4ck_b0x
post 26.01.2008, 19:38:09
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


  1. <?php
  2. function Zabezpiecz($text)
  3. {
  4. return $text;
  5. }
  6. ?>
Go to the top of the page
+Quote Post
b_chmura
post 26.01.2008, 19:48:36
Post #4





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


w takim razie standardowa procedura, sprawdź co po przesłaniu formularza zawiera zmienna $_POST

  1. <?php
  2. echo '<pre>';
  3. print_r($_POST);
  4. echo '</pre>';
  5. ?>


a isset() pozamieniaj na !empty()
Go to the top of the page
+Quote Post
Kicok
post 26.01.2008, 19:55:59
Post #5





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


1. Masz skopane warunki w instrukcjach warunkowych. Zastanów się dobrze czy jak będziesz zalogowany ( czyli zmienna $_SESSION['logged'] będzie ustawiona ), to warunek w linii 25 będzie spełniony?

2. Warunek w linii 44 będzie spełniony zawsze. Zmienne te tworzysz na samym początku i nawet jeśli będą puste, to isset" title="Zobacz w manualu PHP" target="_manual i tak zwróci true.



A tak na marginesie, to jak będziesz miał w bazie danych więcej niż jednego użytkownika, to będziesz miał problemy z zalogowaniem się na większość kont ;]
Przeglądnij sobie przykłady na: mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual (chodzi mi o pętlę while), ewentualnie google -> kurs SQL -> WHERE

Ten post edytował Kicok 26.01.2008, 19:56:59


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
bl4ck_b0x
post 26.01.2008, 20:17:39
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


więc jak to zmienić? mógłbyś odpowiedni wyedytować kod tak aby działał? będę wdzięczny...

Ten post edytował bl4ck_b0x 26.01.2008, 20:19:10
Go to the top of the page
+Quote Post
1010
post 26.01.2008, 23:04:06
Post #7





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Cytat(bl4ck_b0x @ 26.01.2008, 20:17:39 ) *
więc jak to zmienić? mógłbyś odpowiedni wyedytować kod tak aby działał? będę wdzięczny...

Dziś zobaczyłem mądry cytat w podpisie mike'a...
Mianowicie: "Daj komuś rybę, a nakarmisz go na jeden dzień. Naucz go łowić ryby, a nakarmisz go na całe życie."

odnosząc się do niego

po pierwsze... nikomu nie będzie się chciało edytować twojego długiego kodu...

po drugie... jak dostaniesz gotowe rozwiązanie to niczego nowego się nie nauczysz i na następnym razem znów będziesz liczył na gotowe rozwiązanie...

po trzecie... najpierw pomyśl i spróbuj sam rozwiązać

po czwarte... z nastawieniem "ja sobie polerze a wy mi zróbcie" daleko nie zajdziesz...

Wybaczcie jeśli byłem zbyt ostry, ale mam zły dzień...


--------------------
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:35