gpt4 book ai didi

PHP 重定向在服务器上不起作用

转载 作者:行者123 更新时间:2023-11-29 12:21:34 25 4
gpt4 key购买 nike

我使用 PHP 和 Mysql 构建了一个 Web 应用程序。它有一个登录部分。它工作正常,在我的本地服务器上一切正常。但是当我在实时服务器上上传这个应用程序时,重定向功能不再起作用。我的代码:

登录.php:

<form action="do_login.php" method="post">
<input name="user" type="text" id="user" size="25" placeholder="Username" />
<input name="password" type="password" id="password" size="25" placeholder="Password" />
<input name="submit" type="submit" value="Login" class="submit"/>
</form>

do_login.php:

<?php
include 'includes/dbConnect.php';

$my_user = $_POST['user'];
$my_password = $_POST['password'];

if ($my_user == '' || $my_password == '')
{
$myURL = 'error.php?eType=pass';
header('Location: '.$myURL);
exit;
}

$result = mysql_query("SELECT * FROM users where username = '$my_user' and password = '$my_password'") or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
$get_info = mysql_fetch_row($result);

if (mysql_num_rows($result) > 0)
{
session_start();
$_SESSION['login_status'] = "yes" ;
$_SESSION['email'] = $get_info['3'];
$_SESSION['full_name'] = $get_info['0'];
$myURL = 'admin.php';
header('Location: '.$myURL);
}
else
{
$myURL = 'error.php?eType=wrong';
header('Location: '.$myURL);
exit;
}
?>

当用户成功登录时,浏览器将访问 do_login.php 并显示一个空白页面,该页面不会重定向到实时服务器上的 admin.php,但在本地主机上会重定向到admin.php。当我手动转到 admin.php 时,它有限制,只有登录的用户才能访问它,我可以访问它,这意味着我已经登录并且工作正常。

哪里错了?

最佳答案

将您的 php 代码包装在 ob_*

<?php

ob_start();

//Rest of your code

ob_end_flush();
?>

更新:这就是我建议 ob_* 函数的原因。我从 brian.moonspot.net 复制的

ob_start 的工作原理

那么,ob_start 有什么帮助呢? ob_start中的ob代表输出缓冲。 ob_start 将缓冲输出(HTML),直到页面完全完成。页面完成后,将发送 header ,然后发送输出。这意味着对 setcookie 或 header 函数的任何调用都不会导致错误,并且会正确发送到浏览器。您确实需要在任何输出发生之前调用 ob_start。如果你开始输出,那就太晚了。

关于PHP 重定向在服务器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com