いの防止に含まれるPHPスクリプトから変更のURL?
質問
私を含めにPHPスクリプトを変化させるURL。
// index.php
ob_start();
include "script.php";
// This script redirects using header("Location:");
$out = ob_get_clean();
// I use the $out data for calculations
echo $out;
あのポリシーを簡単にカウンターまたはこの処理を取り消すこの不要なリダイレクト?ど:
header("Location: index.php"); // redirect back to self
この原因となる無限ループのリダイレクト...そのアイデア?
またはあるので、ストリップ、ヘッダ()の呼び出しから$出しバッファを防止することものです。
解決
ただ、将来の参照のため。 PHP 5.3のよう header_remove()のと呼ばれる新しい機能がありますどのような状況に対処するのに役立ちます。
他のヒント
あなたのような、無効な値とそのヘッダフィールドを上書きしようとすることができ
header('Location: ', true);
しかし、私は、クライアントがその上でどのように反応するか分からない。
いいなだけじゃない傷を付けても良い。もちです:
- Open script.php テキストファイル、ストリップはヘッダ()コマンドをeval()の結果です。
- エコスペース前になりまscript.php そしてトラップにすることPHPの収入を行ヘッダの出力はすでに始まっている。ですかechoの空間の前に出力バッファリング.
何を(私はPHPコードとしてPHPの文字列を解析するために使用邪悪な言葉に言及しています)、file_get_contents()
と変数として最初のファイルを含む不要なヘッダを除去した後、PHPコードでそれを実行しているでしょうか?
あなたは(おそらくない)あなたの処分でPHP5.3を持っていない場合は、<のhref = "https://stackoverflow.com/questions/1091275/how-do-i-prevent-an-付属-PHPスクリプト-から変化-場所-URL / 1091286#1091286" >ガンボの答えでは動作しません、あなたはevalのを使用したくない、私は見ることができますのみ、他の選択肢であり、 ストリームでの使用。しかし、これはまた別の、より柔軟が、複雑な、のevalの形式です。 トークナイザすると組み合わせストリームと、あなたが得ることができるでしょうシンプルでその関数の呼び出しを取り除くます:
require 'no-header://script.php';
あなたはそれが出力する前に、文字列の完全なテキストを持っているので、あなたは、単純な(例えば正規表現を使用して)検索し、必要なヘッダを取り外して交換することができます。