4

PHP を使用して、ページが iframe に読み込まれているかどうかを確認したいと思います。できれば必要ではありませんが、該当する場合は親の URL を取得したいと思います。ありがとうございました。

4

4 に答える 4

11

Php は、リクエストが行われたコンテキストを知ることができません。渡されてサーバー変数として利用できるもの以外は何も知りません。ページを iframe に配置するときに使用する URL に独自の get パラメータを追加することもできますが、そうしないとうまくいきません。

于 2012-09-24T23:11:12.303 に答える
5

JavaScriptこれには必須です。PHP が確実に知る方法はまったくありません。JavaScriptでは、使用できます

window.top === window.self;
于 2012-09-24T23:15:33.350 に答える
0

PHPグローバル変数$_SEVER["HTTP_REFERER"]でiframeを検出する可能性はあると思います。この変数には、親ウィンドウの URL があります。

于 2014-05-28T10:04:36.320 に答える
0

はい、2021年にPHPの関数URLでiframeに埋め込むかどうかを確認できるようget_headerになりました。これを以下の関数にしました:

public function allowEmbed($url = 'https://stackoverflow.com/') {

        try {
            $headers = get_headers($url);
        } catch (\Exception $e) {
            $headers = [];
        }

        $blackList = [
            'x-frame-options: sameorigin',
            'x-frame-options: allow-from',
            'x-frame-options: deny',
        ];

        $headers = array_map('strtolower', $headers);

        $check = array_intersect($blackList, $headers);

        if(!$check) {
            return ['status' => 1, 'message' => 'Passed'];
        } else {
            return ['status' => 0, 'message' => 'Fail'];
        }   
}
于 2021-08-11T09:18:25.620 に答える