6

javascriptをエコーし​​て別のページに移動する関数があります。ナビゲーションが発生している間、

echo 'window.location.href="'.$url.'";'; 

動作せず、単に画面に印刷します。

"window.location.href="./index.php";

私は自分の関数を次のように使用します。redirect("./index.php");

私のphp関数は次のとおりです

  function redirect($url)
   {    
    if (!headers_sent())
    {    
      header('Location: '.$url);
      exit;
    }
   else
    {      
      echo '<script type="text/javascript">';
      echo 'window.location.href="'.$url.'";';
      echo '</script>';
      echo '<noscript>';
      echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
      echo '</noscript>'; exit;
   }
} 
4

3 に答える 3

4

ブラウザは応答をプレーンテキストとして扱います。

応答の前にContent-Type: text/html\nを追加し、コンテンツを<html></html>タグで囲みます。

于 2012-04-11T18:52:34.167 に答える
3

この方法を試してください。

<?php
$yourURL="http://www.stackoverflow.com";
echo ("<script>location.href='$yourURL'</script>");
?>
于 2012-04-11T18:53:34.260 に答える
1

出力バッファリングを使用して、JavaScript やメタ リダイレクトをまったく処理する必要がないのはなぜですか?

<?php
// Top of your page
ob_start();

// Code goes here

// Redirect
if ($redirect_is_necessary)
{
    header('Location: '.$url);
    exit;
}

// Rest of page goes here

// Bottom of page
ob_end_flush();
?>
于 2012-04-11T19:02:45.830 に答える