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