登录和重定向有一个小问题。我正在构建一个社交网络,登录后将您发送到一个名为 user.php 的文件。
我在 user.php 上登录失败,说用户不存在或未激活!这是我的 login.php 中的一段代码
if(isset($_POST["e"])){
// GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE
$e = mysqli_real_escape_string($db_conx, $_POST['e']);
$p = $_POST['p'];
// Form data error handling
if ($e == "" && $p == ""){
echo "Login Failed";
exit();
} else {
$sql = "SELECT id, username, password FROM users WHERE email='$e' AND activated='1' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$row = mysqli_fetch_array($query, MYSQLI_ASSOC);
$db_id = $row["id"];
$db_username = $row["username"];
$db_pass_str = $row["password"];
if (password_verify('$p', $db_pass_str)){
然后我去为那个用户设置 $_SESSION 和 cookies。
否则我会回显登录失败并退出脚本。
登录后,它应该重定向到它所做的 user.php,但它会在该文件上运行它。
$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1";
$user_query = mysqli_query($db_conx, $sql);
// Now make sure that user exists in the table
$numrows = mysqli_num_rows($user_query);
if($numrows < 1){
echo "That user does not exist or is not yet activated, press back";
exit();
}
我在两个文件上都设置了 error_reporting ,但这并没有引发任何问题!
任何想法你都很棒!非常感谢!
- 菲利普
最佳答案
在您的 mysqli_query
上添加错误捕获:
$user_query = mysqli_query($db_conx, $sql) or die(mysqli_error($db_conx));
用于调试。
第2部分:
你确定你在这里建立了
$u
:$sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1";
再次添加
mysqli_error
关注 $user_query
SQL 行也是。
关于php - MySQLi重定向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022436/