0

それは非常にばかげた問題ですが、どういうわけかそれは機能していません私はファイルを作成する機能を持っています、それがうまくいくなら私はそれがユーザーをXページにリダイレクトしたいです..この場合1.php....しかしどういうわけか動作していません:Sなぜですか?

    //Creates File, populates it and redirects the user.
if (createfile($dbFile)) { 
    header('Location: 1.php');
        }
4

4 に答える 4

4

exit()リダイレクトヘッダーを送信した後、次のことを行う必要があります。

 if (createfile($dbFile)) {
     header('Location: http://yoursite.com/path/to/1.php', true, 302);
     exit();
 }

それ以外の場合、PHPは実行を継続します。の場合exit()、クライアントは、を呼び出した直後にヘッダーを受け取りますheader()

次のPHPドキュメントページでheader()もこの警告に注意する必要があります。

HTTP / 1.1では、ロケーションへの引数として絶対URIが必要です。スキーム、ホスト名、絶対パスが含まれますが、一部のクライアントは相対URIを受け入れます。通常は$_SERVER['HTTP_HOST']$_SERVER['PHP_SELF']を使用dirname()して、相対URIから絶対URIを自分で作成できます。

<?php
/* Redirect to a different page in the current directory that was requested */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>
于 2012-08-01T08:11:32.423 に答える
2

絶対位置を使用してみましたか?

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;

ソース

于 2012-08-01T08:11:42.543 に答える
1

試す;

if (createfile($dbFile)) { 
   header("Refresh: 0; URL=1.php");
   exit();
}
于 2012-08-01T08:16:20.313 に答える
0

ヘッダーの場所の後にコードがまだ実行されているという、同様の問題が発生しました。だから私はいつもexit()をします。その後

于 2012-08-01T08:12:44.793 に答える