PHP PDO登录返回bool(false)

时间:2015-10-26 11:58:46

标签: php pdo login

我正在登录我的网站,但是当我输入名称&传递给布尔(假)的形式。无法找出它为什么会发生。我已经在另一个网站上使用相同的代码进行了一些调整,并且它在那里工作正常。

//classDatabase.php
class Database
{
    public $pdo = null;

    public function __construct()
    {
      $db_user = '******';
      $db_pass = '*******';

      $this->pdo = new PDO( 'mysql:host=localhost;dbname=showcase_nl', $db_user, $db_pass );
    }

    public function getDb()
    {
      return $this->pdo;
    }

    public function getLogin($name, $pass)
    {
      $sql = "SELECT id, name, pass FROM users WHERE name=:name AND pass=:pass";
      $query = $this->getDb()->prepare($sql);
      $query->execute(array(':name'=>$name, ':pass'=>$pass ));
      $result = $query->fetch();
      return $result;
    }
}
?>

的login.php

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  $name = isset($_POST[ 'name' ]) ? $_POST[ 'name' ] : '';
  $pass = isset($_POST[ 'pass' ]) ? $_POST[ 'pass' ] : '';

  if ($name != '' && $pass != '')
  {
      $result = $db->getLogin($name, $pass);
      if (count($result) > 0)
      {
          $_SESSION['login'] = $result;

          var_dump($_SESSION);

          if ($_SESSION['login'])
          {
              header('Location: ?page=beheer.php');
          }
          else
          {
            echo 'Gegevens zijn onjuist';
          }
      }
      else
      {
          echo 'Onbekende gebruiker';
      }
  }
  else
  {
    echo 'Je hebt niet alle velden ingevuld';
  }
}
else
{
  echo '
  <div class="col-md-8 col-md-offset-2">
      <div class="panel-blog panel-default">
          <div class="panel-body">
              <form method="post">
              <div class="form-group">
                  <label for="name">Naam:</label>
                  <input type="name" class="form-control" name="name" id="name" placeholder="Naam">
              </div>
              <div class="form-group">
                  <label for="pass">Wachtwoord:</label>
                  <input type="password" class="form-control" name="pass" id="pass" placeholder="Wachtwoord">
              </div>
              <button type="submit" class="btn btn-default">Log in</button>
              </form>
          </div>
      </div>
  </div>';
}

还尝试使用PDOStatement :: bindParam,但仍无效。

public function getLogin($name, $pass)
{
  $sql = "SELECT * FROM users WHERE name=:name AND pass=:pass";
  $query = $this->getDb()->prepare($sql);
  $query->bindParam(':name', $name);
  $query->bindParam(':pass', $pass);
  $query->execute();
  $result = $query->fetch(PDO::FETCH_ASSOC);
  return $result;
}

0 个答案:

没有答案