Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]logowanie, +pdo
--kalis--
post 28.12.2012, 20:28:18
Post #1





Goście







Witam,

Chciałem spróbować pdo i stowrzylem sobie takie logowanie na podstawie tutoriali:

  1. <?php
  2.  
  3. function protect($string)
  4. { $string = trim(strip_tags(addslashes($string)));
  5. return $string;
  6. }
  7.  
  8. try
  9. {
  10. if($_SERVER['REQUEST_METHOD'] =='POST')
  11. {
  12. $pdo = new PDO('mysql:host=localhost;dbname=baza', "root", "", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  13. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  14.  
  15. $o_login = protect($_POST['o_login']);
  16. $o_pass = protect($_POST['o_pass']);
  17.  
  18.  
  19. $stmt = $pdo -> prepare('SELECT count(1) as WYNIK FROM lista_osob WHERE o_nazwisko= :o_login AND o_pass= :o_pass');
  20. $stmt -> bindParam(':o_login', $o_login, PDO::PARAM_STR);
  21. $stmt -> bindParam(':o_pass', $o_pass , PDO::PARAM_STR);
  22.  
  23.  
  24. $wynik = $stmt -> execute();
  25.  
  26. $stmt ->closecursor();
  27.  
  28. if ($wynik==1)
  29. {
  30. echo "Logowanie udało się";
  31. echo $wynik;
  32. }
  33.  
  34.  
  35.  
  36. }
  37. else
  38. {
  39. echo '
  40. <form method="post" action="login.php">
  41. <TABLE align="center" bgcolor="#fffaaa" border="0" width="350px" CELLPADDING="2" CELLSPACING="2">
  42. <TR>
  43. <TD>
  44. <h2>Logowanie do systemu</h2>
  45. Podaj login :<br />
  46. <input type="textbox" name="o_login" value="" size="50">
  47. </TD>
  48. </TR>
  49. <TR>
  50. <TD> Podaj hasło :<br />
  51. <input type="password" name="o_pass" value="" size="50">
  52. <input type="hidden" name="log">
  53. </TD>
  54. </TR>
  55. <TR>
  56. <TD>
  57. <br />
  58. <input class="wyslij_formularz" align="center" type="submit" name="submit" value="Zaloguj">
  59. </TD>
  60. </table>
  61. </form> ';
  62. }
  63. }
  64. catch(PDOException $e)
  65. {
  66. echo 'Błąd połączenia z bazą danych: '.$e->getMessage();
  67. }
  68. ?>


Niestety obojenie do wpisze do logowania zawsze jest Logowanie udało się i wynik=1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
skowron-line
post 28.12.2012, 20:38:39
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://php.net/manual/en/pdostatement.execute.php
zobacz co zwraca metoda execute
Cytat
Returns TRUE on success or FALSE on failure.
i chodzi tu o poprawne wykonanie zapytania a nie ilość zwróconych rekordów

Ten post edytował skowron-line 28.12.2012, 20:39:56


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
--kalis--
post 28.12.2012, 20:57:01
Post #3





Goście







no ale nie powinno zwrocic 0 jezeli wpisze dane ktora nie sa bazie ?
dopiero zaczynam te pdo i proszę o wskazanie jak to ugryzć
Go to the top of the page
+Quote Post
skowron-line
post 28.12.2012, 20:59:30
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Nie.
Tak jak napisałem wcześniej zwraca TRUE w przypadku kiedy zapytanie wykona się poprawnie nie będzie błędu, a nie w przypadku kiedy zwróci zero wyników.
http://php.net/manual/en/pdostatement.fetchall.php
+
http://pl1.php.net/manual/en/function.count.php


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
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: 14.08.2025 - 13:55