人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です。

複数のページからなるサイトで、あるページから他のPHPファイルで
一律の処理をしたあと、またもとのページに戻る処理をしたいと
思います。下記方法で実現はできないのでしょうか。

A.php
---------
<?
!!do something!!
$referer = $_SERVER[’HTTP_REFERER’];
if referer = "" {
header("Location: (TOPのURL)");
} else {
header("Location: $referer");
?>
-------

あるいは、元のページのリンクを
<a href="A.php?url=back.php>
みたいにして、
header("Location: $url");
するとか・・・(ページが100ページぐらいあるので
back.phpの名前はPHPで自動的にとらないと難しいですが。)

そんなことは実現できますでしょうか?
PHPのソースも教えてもらえると助かります。

※そのPHPは外部ファイルにする必要があります。

●質問者: kanshizm
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTTP_REFERER PHP referer TOP URL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ヨネちゃん
●35ポイント

PHPで取得できるリファラは1ページ前だけなので、

処理を終えた先のページから見ると2つ前になってしまい取得でないと思います。

処理をするページ(以下ではregister.php)にてリファラを取得し、

form タグ内に hidden フィールドを設けて戻るURLを受け渡すというのはどうでしょうか。


register.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>ここで何らかの処理をします</p>
<?php
$ref = $_SERVER['HTTP_REFERER'];
?>
<p>リファラである <?= $ref ?> も変数として同時に送信します</p>
<form method="post" action="refresh.php">
<input name="ref" type="hidden" value="<?= $ref ?>">
<input type="submit" value="送信">
</form>
</body>
</html>

refresh.php

<html>
<head><meta http-equiv="refresh" content="1;URL=<?= $ref ?>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
もとのファイル <a href="<?= $ref ?>"><?= $ref ?></a> へ1秒後にジャンプします
</body>
</html>

という2つのファイルを同じディレクトリに配置し、

任意のURLから register.php にリンクを張ってアクセスしたあと、

「送信」ボタンを押すともとのURLにリダイレクトされます。

このような方法ではいかがでしょうか。

◎質問者からの返答

すいません。実は下のコメントにあるように解決しています。

ただ、普通は

$ref = $_SERVER['HTTP_REFERER'];

でリファラ取得できますよね。。私の場合はできなかったものですから・・・。

ウィルスソフトも切って実験してみたのですが、だめでした。

ちなみに質問文の!!DO SOMETHING!!ですが、クッキー関係の処理

なので、何かを出力することはありませんので、上記だとregiresh.phpを

使うことなく実現できるような気がしています。

いずれにしても他の人も見ているようですので、新たな考えを

ありがとうございました。<(m_m)>

引き続きb-windさんの回答お待ちしています。


2 ● so-asano
●35ポイント

> refererの方はうまくどうしてもうまくいかなかったので

php.ini の設定、php のバージョンによって異なるけど、いちばんありがちなのは $_ENV['HTTP_REFERER'] じゃないかなぁ。getEnv("HTTP_REFERER") なら確実かも。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ