PHP登录页面返回错误500
我已经写了一个允许用户登录的页面。但它返回错误500。如果我注释掉$resultCheck变量,它至少会传递指定的错误消息。我的$resultCheck有什么问题?我使用$conn作为注册页面,所以我知道这是可行的。我还知道$sql是正确的,因为我通过MariaDB运行了相同的命令,并且它工作正常。我有一个正常工作的注册表单,所以PHP与MariaDB交互没有问题。我还有0个语法错误。到底为什么它会给我一个错误500PHP登录页面返回错误500,php,sql,web,mariadb,Php,Sql,Web,Mariadb,我已经写了一个允许用户登录的页面。但它返回错误500。如果我注释掉$resultCheck变量,它至少会传递指定的错误消息。我的$resultCheck有什么问题?我使用$conn作为注册页面,所以我知道这是可行的。我还知道$sql是正确的,因为我通过MariaDB运行了相同的命令,并且它工作正常。我有一个正常工作的注册表单,所以PHP与MariaDB交互没有问题。我还有0个语法错误。到底为什么它会给我一个错误500 <?php session_start(); if (isset($
<?php
session_start();
if (isset($_POST['submit']))
{
include 'serv.db.php';
$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
//check if inputs are empty
if (empty($uid) || empty($pwd))
{
header("Location: signin.php?login=empty");
exit();
}
else
{
$sql = "SELECT * FROM users WHERE user_uid='$uid';";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck < 1)
{
header("Location: signin.php?login=error");
exit();
}
else
{
if ($row = mysql_fetch_assoc($result))
{
//echo $row['user_uid'];
//de-hash password
$hashedPwdCheck = password_verify($pwd, $row['user_pwd']);
if ($hashedPwdCheck == false)
{
header("Location: signin.php?login=error");
exit();
}
elseif ($hashedPwdCheck == true)
{
//Sucessfully create user here.
$_SESSION['u_id'] = $row['user_id'];
$_SESSION['u_first'] = $row['user_first'];
$_SESSION['u_last'] = $row['user_last'];
$_SESSION['u_email'] = $row['user_email'];
$_SESSION['u_uid'] = $row['user_iid'];
header("Location: signin.php?login=success");
exit();
}
}
}
}
}
else
{
header("Location: signin.php?");
exit();
}
500内部服务器错误是一个非常通用的HTTP状态代码,这意味着网站服务器出现了问题,但服务器无法更具体地说明具体问题是什么。
权限错误。在大多数情况下,500内部服务器错误是由于对一个或多个文件或文件夹的权限不正确造成的。在大多数情况下,PHP脚本的权限不正确是罪魁祸首
PHP超时。如果脚本连接到外部资源并且这些资源超时,则可能会发生HTTP 500错误。如果这是500错误的原因,超时规则或脚本中更好的错误处理应该会有所帮助。
.htaccess中的编码错误。虽然不常见,但一定要检查站点的.htaccess文件的结构是否正确。Error 500建议您检查服务器错误日志以了解真正的错误。或者打开。我正在与fedora 28一起使用httpd。我应该检查什么日志?我不熟悉这一点,这取决于您在站点配置中设置了什么,但是假设您的httpd实际上是apache,您可能应该在/var/log/apache中查找,或者类似的内容……如果是现代版本的PHP,您不能将mysql.*
函数与mysqli
一起使用,您可能根本无法使用mysql_*函数,更不用说将它们与mysqli混合使用了。我相信它们已经从PHPVersion7中删除,并且在那之前很长一段时间被标记为不推荐使用。。。