php - 我的 HTTP 重定向有什么问题?

标签 php http redirect header

如果用户正确登录,我将使用以下代码重定向用户(请参阅代码中的注释)。但是我收到一个错误。我做错了什么?

<?php
   require 'inc/header.php';
   require 'inc/config.php';
   require 'inc/functions.php';
?>

<?

$login = $_POST['login'];

if($login==1)
{

    $username = mysql_escape_string(trim($_POST['username']));
    $passwd = mysql_escape_string(trim($_POST['passwd']));
            $QUERY = "
                SELECT
                    *
                FROM
                    login
                WHERE
                    username = '$username' and password='$passwd'

            ";

            $result = send_query($QUERY);

            $num_rows = mysql_num_rows($result);
            $flag=0;
            if($num_rows == 0)
            {
                //show_error('Invalid username');
                $flag=1;
            }
            else
            {

               //this is correct login so i am trying to forward but i am geting  error
                //here

               header('Location: admin_home.php');
               exit;

            }

}

?>

<div class="left">
            <div class="left_articles">

                <h2>ADMIN LOGIN</h2>
                 <p class="description"><?if($flag== 1 ) echo "invalid login" ; ?> </p>
                <p><form action="admin.php" method="POST">

                    <table border="0">

                        <tbody>
                            <tr>
                                <td>Username</td>
                                <td><input type="text" name="username" value="" /></td>
                            </tr>
                            <tr>
                                <td>Password</td>
                                <td><input type="password" name="passwd" value="" /></td>
                            </tr>
                            <tr>
                                <td></td>
                                <td><input type="submit" value="Login" /></td>
                            </tr>
                            <tr>
                                <td></td>
                                <td></td>
                            </tr>
                        </tbody>
                    </table>
                    <input type="hidden" name="login" value="1" />
                </form>
                </p>
            </div>

            <B> AFTER LOGING INTO ADMIN PANEL YOU CAN DO FOLLOWING THINGS <B>
            <p align="center">
                <ul>
                    <li>Add new Jobtype</li>
                    <li>Add new Questions</li>
                    <li>Modify Selection Cretiria</li>
                </ul>    
            </p>
        </div>

        <div id="right">
            <div class="boxtop"></div>
            <div class="box">
                <p><img src="images/image.gif" alt="Image" title="Image" class="image" /><b>Akshay ipsum dolor sit amet</b><br />consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis.<br /></p>
                <div class="buttons"><p><a href="#" class="bluebtn">Read</a> <a href="#" class="greenbtn">Mark</a></p></div>
            </div>

            <div class="boxtop"></div>
            <div class="box">
                <p><img src="images/image.gif" alt="Image" title="Image" class="image" /><b>Pako dolor sit amet</b><br />consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis.<br /></p>
                <div class="buttons"><p><a href="#" class="bluebtn">Read</a> <a href="#" class="greenbtn">Mark</a></p></div>
            </div>
        </div>    
<?  require 'inc/footer.php'  ?>

最佳答案

您需要发布一个 HTTP header 来重定向客户端:

if ($redirect == true) {
  //redirect
  header("Location: http://www.mysite.com/noauth.php"); 

  //And exit
  exit;
}

参见 PHP Manual on Headers .使用 header 时需要小心:它们必须在任何其他输出到客户端之前发送。这包括您的 PHP 脚本顶部可能存在的任何恶意空白区域,如果您尝试发出新 header ,这将引发错误。

关于php - 我的 HTTP 重定向有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281713/

相关文章:

php - 引导表在大量记录上加载时间较长

php - Laravel 将所有父类别显示为特定子类别的树

php - 而不是 php while 循环和对 mysql 的多个连接只想连接一次

php - 使用 .htaccess 选择性 URL 重定向

php - 在 PHP header 中使用 $_POST 值之前是否需要对其进行清理(用于重定向)

php - 如何在 PHP 中从 sql 表填充下拉菜单

python - 使用代理扭曲 getpage

http - Keep-alive 用于长期 HTTP session (非持久性 HTTP)

apache - Apache 日志是否取消了下载?

HTTPS 中的 Apache 重定向