2011-06-28 5 views
2

親PHPページの外にロードされてからのhtmページが含まれてiPadのスクロールの問題、私は最近スクロールdivsとphpにすべてを変換します。防止は私がthisfile.phpではなくので、IFRAMEにthisfile.htmロードするために使用thisfile.php</p> <p>に含まれているページthisfile.htmを、持っている

私はhtmファイルがPHPの親とは独立してロードされるのを防ぐ必要があります。私がiframeを使用したとき、私はいくつかのjavascriptでこれをやっても問題ありませんでした。しかし、私はそれが私のPHPのインクルードで動作するようにすることはできません - 私はループを取得します。

これは子供である:

<script type="text/javascript"> 

if(top.location.href==self.location.href) { 

location.replace("thisfile.php"); 

} 

</script> 

これは、親である:

<div class="bigdiv"><?php include "thisfile.htm" ?></div> 

は、事前にありがとうございます。

+0

"htmファイルがPHPの親とは独立してロードされないようにする必要があります。" - どのような理由で? Javascriptチェックは簡単に回避できます。また、PHPでより確実なチェックを行うことができるはずです。たとえば、thisfile.phpに定数を定義し、htmlファイルのPHP版に同じ定数が設定されているかどうかを確認します。 –

+0

また、私はjavascriptコードがあなたが望むことをするとは思わない。効果的には、topは、通常、一番上のウィンドウを参照するフレームのコンテキストで使用され、フレームがない場合はウィンドウになります。その可能性が最も高いのは、場所を変更することで、同じJavaScriptを再度読み込むページを再読み込みすることです。これがあなたのループの出所です。 –

答えて

4

PHPでincludeを使用している場合は、ファイルを保護する最も簡単な方法は、Webルートの外側に配置することです。そうすれば、PHPはそれにアクセスすることができますが、ブラウザを実行することはできませんので、別途ロードすることはできません。あなたがこのようにするなら、あなたは子供の中にjavascriptを必要としません。

+1

+1ちょうど私が入力していたものが、私は子供との結婚の962回の再放送を見ているので、遅すぎました。 ;) – GolezTrol

+0

htmページは古い名前で、Googleのランキングが高く、クライアントはそのランクを失うことを避けたいと考えました。たぶん私は301をいくつかするしかないでしょう。 – amy

+1

このようなファイルが複数あると思いますか?他のものをしばらく利用できるようにしながら、それらのいくつかを試すことができます。その後数日後に、それらのページにどのような影響があるかを確認できます。 Googleが301を正しく取得していれば、他の301もできる。こうすることで、サイト全体でページランクが突然低下するのを防ぐことができます(おそらく一時的ですが)。 – GolezTrol

1

thisfile.htmをthisfile.phpのdivに含める場合は、includeを使用してphpに含めます。外部からthisfile.htmを呼び出す必要はありません。実際には、ドキュメントのルートの外側に置くことができます。その場合、外部からアクセスすることはできません。これはthisfile.phpにのみ含まれます。

関連する問題