PHPでアクセス元によって読み込むファイルを切り替えたいと思っています。


//同一ファイルからのアクセス
if(){
include("a.php");
//別サイトからのアクセス
}else if(){
include("b.php");
}

IFにはどのようなソースを書けばよいのでしょうか?
参考サイトもご存じでしたら、教えて下さい。
(セッションやCOOKIEを使う方法以外でお願いします)

回答の条件
  • 1人2回まで
  • 登録:2008/06/05 17:03:27
  • 終了:2008/06/06 01:44:14

回答(3件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012008/06/05 17:54:45

ポイント101pt

セッションもクッキーも使わずとなれば、信頼性には欠けますがリファラで・・・。

// 自分自身のアドレスを前もって準備
$f = ($_SERVER["SERVER_PORT"] == 443 ? "https://" : "http://") . $_SERVER["HTTP_NAME"] . $_SERVER["PHP_SELF"] ;

if(isset($_SERVER["HTTP_REFERER"]){ // リファラがある場合
  if($_SERVER["HTTP_REFERER"] == $f){ // 同一の場合
        include("a.php");
    }else{ // 異なる場合
        include("b.php");
    }
}else{ // リファラが無い場合
    include("c.php");
}

(いきなり書いてますので動作確認してません。適宜修正してくださいませ)

id:k27w

上手くできました!まさに求めていたとおりです。ありがとうございました。

2008/06/06 01:43:36
id:lets_skeptic No.2

lets_skeptic回答回数13ベストアンサー獲得回数22008/06/05 18:00:55

ポイント5pt

if ($_SERVER["HTTP_REFERER"] == (サイト)) {


となると思いますが、Refererは送られてこない場合もあるので、「同一ファイルからのアクセス」の場合はGET又はPOSTパラメータでなんらかのキーを送るのが良いのではないでしょうか?

そのキーが無ければ「別サイトからのアクセス」だと判断するということで。


ただ、普通はSESSIONやCOOKIEを使います。

id:k27w

もう少し具体的に回答いただければ良かったのですが・・・

2008/06/06 01:39:34
id:kou32rr No.3

kou32rr回答回数197ベストアンサー獲得回数82008/06/05 20:22:15

ポイント10pt

$_SERVER["HTTP_REFERER"]でアクセス元を取得できるようです。

//同一ファイルからのアクセス

if($_SERVER["HTTP_REFERER"] = $_SERVER["SERVER_NAME"]){

include("a.php");

//別サイトからのアクセス

}else{

include("b.php");

}

参考:

http://nyx.pu1.net/practice/server_var/server_var2.php

id:k27w

この方法は上手く行きませんね。

2008/06/06 01:39:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません