如何在PHP中正确使用header()

roejwanj  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(143)

我遇到的问题是header('location:“)在php中。我试图将其插入到if语句中,但不起作用。
我希望被重定向到example.com,但它返回404错误。我已经考虑过使用其他选项,但我真的想尝试与头部第一。

<?php
include('login/dbcon.php');
include('login/session.php'); 

$result = mysqli_query($con, "SELECT * FROM users WHERE user_id='$session_id'") or die('Error In Session');
$row = mysqli_fetch_array($result);

if ($row) {

    if ($_SERVER["REQUEST_METHOD"] === "POST") {
        $newRedirectUrl = $_POST["redirectUrl"];
        file_put_contents("customRedirect.txt", $newRedirectUrl);
        echo "Redirect URL updated successfully!";
    }

    echo "
        <h1>Change Redirect URL</h1>
        <form method='POST'>
            <label for='redirectUrl'>New Redirect URL:</label><br>
            <input type='text' name='redirectUrl' id='redirectUrl'><br><br>
            <input type='submit' value='Update'>
        </form>
    ";
} else {
    $redirectUrl = "https://example.com";

    if (file_exists("customRedirect.txt")) {
        $redirectUrl = file_get_contents("customRedirect.txt");
    }
    header("Location: $redirectUrl");
    exit;
}
?>
inn6fuwd

inn6fuwd1#

根据PHP documentation on header function上的注解,你应该注意在头调用之前不要在输出中发送任何东西。
您可以简单地缓冲输出以避免:

...
// your if code 
...
$redirectUrl = "https://example.com";
ob_start();
header("Location: $redirectUrl");
ob_end_flush();
exit;

相关问题