Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]haslo + _POST
Forum PHP.pl > Forum > Przedszkole
pawelzdanio
Witam!

Doprzeslania loginu i formularza poczatkowo uzylem metody GET( jak na zielonego przystalo), pozniej oczywiscie zorientowalem sie, ze tak nie moze byc i przemienilem GET na POST. Niestety po zmianie na POST, strona ze strony logowania automatycznie przechodzi mi na strone po zalogowaniu. Nie wiem gdzie moglem popelnic gafe ;/ Dodam, ze strona wczesniej z GET dzialala poprawnie ( oczywiscie oprocz hasla i loginu widzianego w URL winksmiley.jpg )

Pozdrawiam i z gory dziekuje za zainteresowanie!

  1. <?php
  2.  
  3. //laduje loginy i hasla z bazy danych
  4. include('admin.php');
  5. $connection=mysql_connect($db_host, $db_username, $db_password);
  6. if (!$connection)
  7. {
  8. die ("Polaczenie z baza danych nie udane! </br>". mysql_error());
  9. }
  10. $db_select= mysql_select_db($db_database);
  11. if (!$db_select)
  12. {
  13. die ("Wybor bazy danych niemozliwy! </br>". mysql_error());
  14. }
  15. $query= "SELECT Login, Haslo From passwords";
  16. $query2="SELECT count(Login) From passwords";
  17. $result= mysql_query($query);
  18. $result2=mysql_query($query2);
  19. $result_row2=mysql_fetch_row($result2);
  20. $liczba_elemen=$result_row2[0];
  21. if(!$result)
  22. {
  23. die ("Wykonanie zapytania niemozliwe!". mysql_error());
  24. }
  25. $i=0;
  26. while ($result_row=mysql_fetch_row($result))
  27. {
  28. $login[$i][0]=$result_row[0];
  29. $haslo[$i][1]=$result_row[1];
  30. $i++;
  31. }
  32. mysql_close($connection);
  33.  
  34. ?>
  35. <html>
  36. <head>
  37. <title>Strona logowania</title>
  38. </head>
  39.  
  40.  
  41. <body>
  42. <center>
  43. </br>
  44. <form action="<?php echo(@$_SERVER['PHP_SELF']); ?>" method="POST">
  45. <label>login :
  46. <input type="text" name="login" />
  47. </label>
  48. <br>
  49. <label>
  50. haslo:
  51. <input type="password" name="haslo" />
  52. </label>
  53. </br></br>
  54. <input type="submit" value="loguj" />
  55. </form>
  56. <?php
  57. if (!isset($_SESSION['inicjuj']))
  58. {
  59. $_SESSION['inicjuj'] = true;
  60. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  61. }
  62.  
  63.  
  64. if($_SESSION['ip'] !== $_SERVER['REMOTE_ADDR'])
  65. {
  66. die('Proba przejecia sesji udaremniona!');
  67. }
  68. //include('hasla.php');
  69. $_SESSION['login']=$_POST["login"];
  70. $haslo_write=$_POST["haslo"];
  71.  
  72. //Weryfikacja loginu i hasla
  73.  
  74. for ($i=0;$i<$liczba_elemen;$i++)
  75. {
  76. if (($_POST["login"]==$login[$i][0])&&($_POST["haslo"]==$haslo[$i][1]))
  77. {
  78. $_SESSION['auth'] = 1;
  79. }
  80. }
  81. if ($_SESSION['auth'] == 1)
  82. {
  83. header("Location: index.php");
  84. }
  85. elseif (($_POST["login"]==NULL)&&($_POST["haslo"]==NULL))
  86. {
  87. echo "Zaloguj sie!";
  88. }
  89. else
  90. {
  91. echo "Login lub/i haslo niepoprawne!";
  92. }
  93. ?>
  94. </center>
  95. </body>
  96. </html>


----------------------
Do wstawiania kodu php jest
odpowiedni tag - poprawiłem : )
---
~strife
Mary$
a nie lepiej zrobić
  1. <?php
  2. $sql = "SELECT count(*) FROM passwords WHERE Login = "$login" AND Haslo = "$haslo"";
  3. ?>

będzie szybciej i ominiesz parę pętli (pomijając fakt, że z tego co wiedze to nie zakodowaleś haseł).
A odpowiedź na twoje pytanie: najwyraźniej zmienna $_SESSION['auth'] ustawiona jest na true. weź sobie zrób taką pętelkę, żeby zobaczyć co masz w tablicach superglobalnych i wszystko będzie jasne.

  1. <?php
  2. foreach($_REQUEST as $key => $val) Echo "$key => $val <br/>";
  3. ?>
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.