【发布时间】:2017-08-22 14:27:43
【问题描述】:
我正在尝试在 php 中创建一个登录站点,但我找不到错误。
虽然我没有收到错误,但它不起作用。
数据库连接有效(我试过了)。
所以在 HTML 中,我有一个带有两个输入标签和一个提交按钮的表单:
<form action="?login=1" method="post">
<input class="form-control" type="text" name="username" required="" placeholder="Name" border-radius="3px" />
<input class="form-control" type="password" name="password" required="" placeholder="Password" border-radius="3px" font-size="caption" />
<input text-align="center" type="submit" value="Login »" class="btn btn-white-outline display-4" style="border-radius: 3px !important;">
</form>
这是 php 代码:
<?php
session_start();
$pdo = new PDO('mysql:host=localhost; dbname=test_db', 'user', 'password');
if(isset($_GET['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$statement = $pdo->prepare("SELECT * FROM users WHERE username= :username");
$result = $statement->execute(array('username' => $username));
$user = $statement->fetch();
if ($user !== false && password_verify($password, $user['password'])) {
$_SESSION['name'] = $user['name'];
die('<meta http-equiv="refresh" content="0; URL=/plan.php">');
} else {
$errorMessage = "<p style='color:red;'>
Incorrect username or password.
</p><br>";
}
}
?>
你能帮帮我吗?
谢谢
【问题讨论】:
-
What不起作用? -
if 语句查找
$_GET而您$_POST表单 -
@SuperDJ
action负责处理。 -
执行在哪里停止?
-
也许您可以尝试强制 PHP 显示错误:
error_reporting( E_ALL ); ini_set( 'display_errors', '1' );将其设置在文件顶部