Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][pdo] Logowanie.
PawelBah
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.02.2010

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


Witam, mam problem ze skryptem logowania.

W bazie mam użytkownika test, hasło: test. Podaje poprawne dane, ale niestety system zwraca informacje, że dane są błędne. Oto kod:

  1. <?php require_once 'header.php'; ?>
  2. <div id="container_background">
  3. <div id="container_content">
  4. <?php
  5. if((isset($_SESSION['logged'])) && logged($_SESSION['logged'], $_SESSION['browser'])){
  6. echo 'Zostałeś poprawnie zalogowany';
  7. //session_destroy();
  8. }else{?>
  9. <div id="home_logo"></div>
  10. <form id="login_form" action="login.php" method="POSt">
  11. <legend>Panel logowania</legend>
  12. <div>
  13. <label for="login">Login: </label>
  14. <input type="text" name="login"/>
  15. </div>
  16. <div>
  17. <label for="password">Hasło: </label>
  18. <input type="password" name="password"/>
  19. </div>
  20. <input type="image" src="../images/button_login.png" alt="Zaluguj się" name="login" id="login">
  21. </form>
  22. <?php } ?>
  23. </div>
  24. </div>
  25. </body>
  26. </html>


  1. <?php
  2. require 'header.php';
  3. require_once '../function.php';
  4.  
  5. if(isset($_POST['login_x'])){
  6. $_POST = array_map('trim', $_POST);
  7. $user = login($_POST['login'], $_POST['password']);
  8. if($user){
  9. $_SESSION['logged'] = true;
  10. $_SESSION['user'] = $user;
  11. $_SESSION['browser'] = $_SERVER['HTTP_USER_AGENT'];
  12. header('Location: '.$_SERVER['HTTP_REFERER']);
  13. }else{?>
  14. <p class="info">Wprowadziłeś błędne dane. Spróbuj raz jeszcze. <a href="<?php echo $_SERVER['HTTP_REFERER'];?>"><<< Wróć</a>.</p>
  15. <?php }
  16.  
  17. }
  18.  
  19. ?>


  1. function db_connect(){
  2. try{
  3. $db = new PDO('mysql:host='.DB_HOST.';db_name:'.DB_NAME, DB_USER, DB_PASS);
  4. return $db;
  5. }catch(PDOException $e){
  6. echo $e->getMessage();
  7. die();
  8. }
  9. }//db_connect
  10.  
  11. function login($login, $password){
  12. $db = db_connect();
  13. $stmt = $db->prepare('SELECT login FROM users WHERE login = :login AND password = :password');
  14. $stmt->bindValue(':login', $login);
  15. $stmt->bindValue(':password', sha1($password));
  16. $stmt->execute();
  17. $user = $stmt->fetch();
  18. if($user){
  19. return $user;
  20. }
  21. return false;
  22. }// login();
  23.  
  24. function logged($login, $browser){
  25. if($login && $browser == $_SERVER['HTTP_USER_AGENT']){
  26. return true;
  27. }
  28. return false;
  29. }


Męczę się z tym już trochę, zmieniłem na mysqli i o dziwo działało, ale chciałbym w PDO, ale niestety jest jakiś problem - jakieś sugestie?

*w pliku header znajduje się session_start()

Ten post edytował PawelBah 28.11.2010, 15:56:22
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: 23.08.2025 - 16:10