PHP登录页面重定向不加载新页面
如果用户名和密码正确,我使用这个php脚本将用户重定向到主页的html文件。但是,当执行此代码时,html文件仅显示为新资源,而页面不会加载。我不知道在使用header函数时如何加载页面PHP登录页面重定向不加载新页面,php,html,Php,Html,如果用户名和密码正确,我使用这个php脚本将用户重定向到主页的html文件。但是,当执行此代码时,html文件仅显示为新资源,而页面不会加载。我不知道在使用header函数时如何加载页面 添加页面顶部 ob_start() 在页面底部添加 ob_end_flush() php中的头文件总是在任何输出发生之前运行。 因此,根据您的评论打开输出缓冲: 在Safari的Javascript控制台的resources选项卡下 当脚本运行但页面本身不运行时,会弹出site.html 负载我正在使用aja
添加页面顶部
ob_start()
在页面底部添加
ob_end_flush()
php中的头文件总是在任何输出发生之前运行。
因此,根据您的评论打开输出缓冲:
在Safari的Javascript控制台的resources选项卡下
当脚本运行但页面本身不运行时,会弹出site.html
负载我正在使用ajax提交数据
在ajax请求中发送时,位置头不受尊重
您应该更新提交ajax请求的代码,以便在成功验证时重定向页面
例如,您需要执行以下操作(在jQuery中):
您需要从php脚本返回身份验证状态,如下所示:
<?php
$password2 = $_POST['password1'];
$username2 = $_POST['username1'];
$connection = mysqli_connect("localhost", "root", "pass", "database") or die("Unable to connect to MySQL");
$query = mysqli_query($connection, "SELECT * FROM users where username = '$username2' AND password = '$password2'") or die(mysqli_error($connection));
$row = mysqli_fetch_array($query, MYSQLI_BOTH) or die(mysqli_error($connection));
if(!empty($row['username']) AND !empty($row['password'])) {
session_start();
$_SESSION['username'] = $username2;
http_response_code(200);
echo "Successful Login";
exit;
}
else{
http_response_code(403);
echo "The password or username you have entered is not valid";
}
mysqli_close($connection);
?>
显示为新资源是什么意思?应该使用die()代码>紧跟在标题()之后。
。您不想回显“成功登录”
由于标题旨在重定向用户,因此该行将永远看不到。在web浏览器上使用开发人员控制台时,执行php脚本时会显示site.html文件。但是,登录页面不会变为site.html页面。您所说的“site.html文件显示”是什么意思。如何加载此页面并提交数据(表单,xhr/ajax?)。在Safari的Javascript控制台的“资源”选项卡下,当脚本运行但页面本身未加载时,会弹出site.html。我正在使用ajax提交数据。
<?php
$password2 = $_POST['password1'];
$username2 = $_POST['username1'];
$connection = mysqli_connect("localhost", "root", "pass", "database") or die("Unable to connect to MySQL");
$query = mysqli_query($connection, "SELECT * FROM users where username = '$username2' AND password = '$password2'") or die(mysqli_error($connection));
$row = mysqli_fetch_array($query, MYSQLI_BOTH) or die(mysqli_error($connection));
if(!empty($row['username']) AND !empty($row['password'])) {
session_start();
$_SESSION['username'] = $username2;
http_response_code(200);
echo "Successful Login";
exit;
}
else{
http_response_code(403);
echo "The password or username you have entered is not valid";
}
mysqli_close($connection);
?>