如何使用 PHP 重定向到另一个页面

新手上路,请多包涵

我正在构建一个包含登录页面的网站。一旦他们成功登录,我需要将用户重定向到他们的个人资料页面,但我不知道如何在 PHP 中做到这一点(这是我的第一个站点)。

我已经在互联网上搜索并被告知 header() 函数应该可以解决问题,但只有在我在使用之前没有输出任何信息时它才会起作用。

那就是问题所在。我已经输出了一堆信息(包括用于构建登录页面本身的 HTML)。

那么如何将用户从一个页面重定向到下一个页面呢?

我有什么选择?此外,在这些情况下,最佳做法是什么?


编辑:这是我的整个 login.php 页面:

 <?php

session_start();

echo "<!DOCTYPE html>
  <html>
     <head>
        <meta charset='utf-8'>
        <title>Sprout</title>
    <link rel='stylesheet' href='stylesheet.css' type='text/css'>
     </head>
 <body>
    <div class='box'>
    <form action='login.php' method='post'>
       Name<br /> <input type='text' name='username' class='form'/><br />
       Password<br /> <input type='password' name='password' class='form'/>
       <input type='submit' value='Login' class='button' />
    </form>
    </div>
 </body>
  </html>";

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $username = $_POST["username"];
    $password = $_POST["password"];

    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "root";

    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database");

    $dbname = "database";

    mysql_select_db($dbname);

    $query = "SELECT username FROM users WHERE username = '$username' AND password = '$password'";

    $result = mysql_query($query) or die ("Failed Query of " . $query);

    while($row = mysql_fetch_assoc($result))
    {
            $_SESSION["user"] = $username;
    }
}
?>

原文由 jasonaburton 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 480
2 个回答

那就是问题所在。我已经输出了一堆信息(包括用于构建登录页面本身的 HTML)。那么如何将用户从一个页面重定向到下一个页面呢?

这意味着您的应用程序设计非常糟糕。您不应该在业务逻辑运行时进行输出。使用模板引擎(如 Smarty )或使用 输出缓冲 快速修复它)。

另一种选择(虽然不是一个好选择!)将输出 JavaScript 以重定向:

 <script type="text/javascript">location.href = 'newurl';</script>

原文由 ThiefMaster 发布,翻译遵循 CC BY-SA 2.5 许可协议

<?php
include("config.php");


$id=$_GET['id'];

include("config.php");
if($insert = mysqli_query($con,"update  consumer_closeconnection set close_status='Pending' where id="$id"  "))
            {
?>
<script>
    window.location.href='ConsumerCloseConnection.php';

</script>
<?php
            }
            else
            {
?>
<script>
     window.location.href='ConsumerCloseConnection.php';
</script>
<?php
    }
?>

原文由 payal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏