我最近在尝试登录我的网站时遇到此错误。我的PHP脚本在涉及验证密码的if语句时停止。我的托管服务提供商说问题出在我身上,但是我的代码可以在我的测试服务器上运行,也可以在其他提供商的主机服务器上运行。我对为什么停止感到困惑。任何帮助都将是惊人的! 它进入login-processing.php页面,显示回显语句直至“绑定stmts”,然后停止。
控制台错误:
无法加载资源:服务器的状态为500(内部服务器错误)
PHP:
<?php
echo "before submit";
if (isset($_POST['submit']))
{
echo "submitted";
require_once 'db.php';
$uid = $_POST['username'];
$pwd = $_POST['password'];
echo $uid . " " . $pwd;
if (empty($uid) || empty($pwd))
{
echo "fail1";
exit();
}
else
{
echo "<br> <br> in query";
$sql = "SELECT * FROM users WHERE uid = ?;";
$stmt = mysqli_stmt_init($connection);
if (!mysqli_stmt_prepare($stmt, $sql))
{
echo "fail2";
exit();
}
else
{
echo "<br> <br> in final query";
mysqli_stmt_bind_param($stmt, "s", $uid);
mysqli_stmt_execute($stmt);
echo "<br> <br> binding stmts";
$result = mysqli_stmt_get_result($stmt);
if ($row = mysqli_fetch_assoc($result))
{
echo "<br> <br> verifying password";
$pwdCheck = password_verify($pwd, $row['pwd']);
if ($pwdCheck == false)
{
echo "fail3";
exit();
}
elseif ($pwdCheck == true)
{
echo "<br> <br> starting session";
session_start();
$_SESSION['id'] = $row['id'];
$_SESSION['uid'] = $row['uid'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['initiate'] = rand(0, 1000000);
header("Location: http://blog.com.au/blog.php");
exit();
}
else
{
echo "fail4";
exit();
}
}
else
{
echo "failed to verify";
exit();
}
}
}
}
else
{
echo "fail5";
exit();
}
HTML:
<form action="login-processing.php" method="post">
<label>Username</label>
<input type="text" name="username" placeholder="Username"><br>
<label>Password</label>
<input type="text" name="password" placeholder="Password"><br>
<input type="submit" value="login!" name="submit">
</form>