Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP登录页面重定向不加载新页面_Php_Html - Fatal编程技术网

PHP登录页面重定向不加载新页面

PHP登录页面重定向不加载新页面,php,html,Php,Html,如果用户名和密码正确,我使用这个php脚本将用户重定向到主页的html文件。但是,当执行此代码时,html文件仅显示为新资源,而页面不会加载。我不知道在使用header函数时如何加载页面 添加页面顶部 ob_start() 在页面底部添加 ob_end_flush() php中的头文件总是在任何输出发生之前运行。 因此,根据您的评论打开输出缓冲: 在Safari的Javascript控制台的resources选项卡下 当脚本运行但页面本身不运行时,会弹出site.html 负载我正在使用aja

如果用户名和密码正确,我使用这个php脚本将用户重定向到主页的html文件。但是,当执行此代码时,html文件仅显示为新资源,而页面不会加载。我不知道在使用header函数时如何加载页面


添加页面顶部

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);

?>