• 締切済み

PHP5のWEB遷移でどこからリンクがあったか$_SERVER["HT

PHP5のWEB遷移でどこからリンクがあったか$_SERVER["HTTP_REFERE"]で内容を見たのですが IEではリンクで移動しているのにもかかわらず、空文字となります。 FireFoxでは値が入っていました。 $_SERVER["HTTP_REFERE"]以外でIE対策としてどこからリンクしてきたかわかる代替案をご存知の方、教えてください。 できればPHPで処理したいのですがダメでしたら他の方法でも構いません。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

リファラ自体簡単に偽装できるし、ユーザー環境によって挙動がことなることから考えても 信じるに値しません。 「なんとなく処理する」程度で考えておくのが妥当でしょう

全文を見る
すると、全ての回答が全文表示されます。
noname#116331
noname#116331
回答No.1
bazax
質問者

補足

すみません、windows.openのような子ウインドウの場合です。 IEは無理でした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPで携帯ページに自動遷移する処理について

    PHPのsnoopyを使って携帯ページに自動遷移するプログラムを作ったのですが、遷移した先が携帯ページではなくPCのページが表示されてしまいます。 <a>タグで同じURLリンクをクリックした時は携帯ページに遷移するのですが、自動で行うとなぜかうまくいきません。 自動とクリックだと何か違うのでしょうか? (自動だとWEBサーバ側のブラウザからリダイレクトしているから??) <ソース> $agent = $_SERVER['HTTP_USER_AGENT']; $snoopy = new Snoopy; $snoopy->agent = $agent; $url="aaaa.php"; $snoopy->submit($url); echo "<a href=".$url.">test</a>"; echo $snoopy->results; よろしくお願いいたします。

    • 締切済み
    • PHP
  • Webの遷移制御をしたいのですが。

    こんばんは。 お手数ですが、首記の件について教えていただけませんか? *** #やりたいこと# #パターン1# 変数Aの値がaの時 =>URL:xxからURL:aaにformデータをURIに送付して遷移 変数Aの値がbの時 =>URL:xxからURL:bbにformデータをURIに送付して遷移 #パターン2# URL:xxからURL:yyにformデータをURIに送付して遷移 遷移先のURL:yyにて表示データを条件制御して表示 formデータ中の変数Aの値がaの時:aaa.htmlを#includeして表示 formデータ中の変数Aの値がbの時:bbb.htmlを#includeして表示 **** 上記1,2のいずれか、(またはどちらかの趣旨ができるなら別のやり方でも構わないのですが) を実現する方法って無いでしょうか。 javascriptで#パターン1#の対応をすると、fire fox,chromeではどうにかうまくいくのですが、 IEでうまくいかずに頓挫しております。 ご助言いただけますと幸いです。 (環境:SSI,javascriptは使用可能という前提でOKです。JSPやPHPがサーバーの設定上使用できないです。Web系は素人なので初歩的な質問かもしれませんが、教えていただけますと幸いです。よろしくお願いいたします。)

    • ベストアンサー
    • HTML
  • requestmethodをPOSTにして画面遷移

    1.phpから2.phpへ遷移するためのソースを1.phpに書いていますが、IEのアドレスバーの表示が1.phpのまま更新されません。 requestmethodがGETならばheader('Location: 2.php?a=b');exit;ですが、 requestmethodをPOSTにするたに http://www.spencernetwork.org/memo/tips-3.php にあるようなソースを1.phpに書きましたが、2.phpへアクセスして返されたHTTPのレスポンスを受け取るだけで2.phpに遷移してくれません。 画面の遷移までさせるにはどのようにするとよいですか?

    • 締切済み
    • PHP
  • PHPを使ってのWebサイト構築:Submitしたときに次画面が描画されない。

    Apatch、PHP4、PostgreSQLを使ってWebサイトの開発をしています。ブラウザはIE6を使用。NNを使用するとこの事象は発生しませんでした。 ●仕様  ・A.php → B.php → C.php という遷移をFormをSubmitすることによって行います。  ・Aでは、入力フォームがあり、そこでユーザは情報を入力して、Submitボタンを押下し、Bへ遷移します。入力した値はPOSTで渡されます。  ・Bでは、Aから渡された値を画面表示するときに受け取った値を確認のために表示。同時バックグラウンドで、Input type hidden のタグに値を渡し、そのFormをSubmitすることによりCへ遷移。(受け取った値をそのままCへPOSTで渡す。)  C・では受け取った値をDBに登録し、登録終了画面を表示する。 ●不具合  BからCへ遷移するとき、画面が反映されない。 ○不具合詳細  ・BからCへのSubmitボタンを押下するとブラウザ下部のステイタスバーにはプログレスバーが延びていき、「ページが表示されました」となるにもかかわらず、画面はBの状態のままである。さらにブラウザ上部のURL入力部にはC.phpのURLが入っている。  ・DBには値が反映されている。(CのPHP処理は正常におこなわれているらしい)  処理終了後に画面のどこか(どこでもよい)を一回クリックするとぱっとCの画面が表示される。(何もしないとずっとBのままである。)  ・Bの画面のままのときに、Submitボタンをもう一度押すことが出来、二度目のアクセスにいってしまう。(当システムの場合、これを行うと一意規約違反でエラーとなる。)  ・AからBではこの現象はおきない。   ・毎回なるわけではなく、4回に1回くらいは正常な動作をする。 ●環境 サーバOS:RedHatLinux Webサーバ:Apatch DB:PostgreSQL7.1 実装言語:PHP4 ブラウザ:IE6(NNではならない) 対処法のわかるかた、いらっしゃいましたらお願いします。

    • ベストアンサー
    • PHP
  • 遷移前のページのクエリを取得したい

    PHPについての質問です。 ブラウザに、 ttp://hogehoge.com/hoge1.php?hoge=moge というページを表示している状態で、そのページ内のリンクをクリックし、そのリンク先は、 ttp://hogehoge.com/hoge2.php というページだとして、この hoge2.php で直前のページ(hoge1.php)の「hoge=moge」という情報を取得したいです。 $_SERVER["QUERY_STRING"] で現在のページのクエリを取得できますよね。 また、 $_SERVER["HTTP_REFERER"] で遷移してくる前のページのアドレスを取得できますよね。 こういう感じで、遷移してくる前のページのクエリを取得する方法はありますか? cookieとかを使うしかないのでしょうか?

    • 締切済み
    • PHP
  • Webサーバとアプリサーバの違い

    Webシステム(サーバ-クライアントモデルではないほう)の 三階層モデルについて教えてください。 このモデルではWebサーバ、アプリサーバ、DBサーバの三階層構成をとられていますが PHP、perlといった動的言語の処理はWebサーバ、アプリサーバどちらで 行われるのでしょうか? はじめ、私はアプリサーバ側かと思っていたのですが、こっちは「Javaプラットフォームを 動かすためのサーバ」と書かれているソースが多く、PHP、Perlについては Webサーバ側と書かれてたりアプリサーバ側と書かれてたりしていて判断に悩んでいます。 単純に「動的な処理を行う」という基準で考えればPHP、Perlの処理はアプリサーバ側だと 思うのですが、いかがでしょうか ご回答よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで違うサーバーのスクリプトでクッキーを読めますか?

    サーバーAで次のようにクッキーを設定しました。 test.php <? setcookie("TEST","値"); ?> サーバーBで次のようにクッキーを読み込み ました。 test2.php <? $kekka=$HTTP_COOKIE_VARS["TEST"]; print $kekka; ?> 構想は、「値」と表示させることなのですが、 何も表示されませんでした。 上記は、何が間違えているでしょうか? どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • Webサーバからの「file://」リンクについて

    社内設置のファイルサーバのフォルダを開くためのリンクを記載したHTML(下記、test.html)を 社内Webサーバに設置していましたが、2~3週間程前からリンクをクリックしても 無反応状態となりました。 Windows Updateなどで何かセキュリティが強化されフォルダが開けなくなったのでしょうか? なぜリンクが開かなくなったのか不明です。 対処方法をご存知の方がいらっしゃいましたら、ご教授ください。 ■状況の確認 ・すべての社内PCで同様の現象が発生するようになった。 ・リンク先のファイルサーバのアクセス権は、社内すべてのPCにアクセス権限がある状態です。 ・Webサーバ(Apache)の設定は、変更は行っていません。 ・「test.html」をローカル(C:\test.html)に保存し、このファイルを直接ブラウザで  表示・閲覧するとリンクは正常に反応し、ファイルサーバのフォルダが開きます。 ・エクスプローラのアドレスにHTMLに記載のリンク「file://fileserver/file_link」を入力し  アクセスすることはできます。 ■使用PC  ユーザのPC:Windows 7、WindowsXP  Webサーバ :Apache(Windows2003 Server)   ■ユーザPCのブラウザ  ・InternetExplorer 8  ・InternetExplorer 9  ・Firefox 6.0 ============================================================================ ■test.html ---------------------------------------------------------------------------- <html> <head> <title>フォルダリンクテスト</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <a href="file://fileserver/file_link">フォルダリンク</a> </body> </html> ============================================================================

  • 【PHP】ひとつ前のURLを常時得る方法は?

    レンタルのPHP5使用者です。 自分が作ったサイト内リンクだけでの話なのですが、ひとつ前に見たページが何かによって処理を分岐させたいことがあります。 はじめは $_SERVER[HTTP_REFERER] を見ればOK!と考えていたのですが、リダイレクト遷移の場合は取得不可能なことがわかりました。 では一体どうすれば… 3時間ほど考えた結果は以下の通りです。 $_GET[ ] 使用 → 値を容易に改ざんされるので×。 $_POST[ ] 使用 → $_SERVER[HTTP_REFERER]同様リダイレクト時に無理。 SESSION 使用 → 直前のURLとは限らない(直前が、静的ページ/リダイレクト/ブックマーク の場合さらに古いURLを得てしまう) Cookie  使用 → 同上 <条件> *停止させている方も多いため、勝手ながら今回javascriptは使わないことを前提にさせてください。 *直前が静的ページ/ブックマーク等なら値なしでOKです。 一見簡単そうに見えた問題があまりに難しいので悩みました。「あきらめろ」という回答でもOKです。よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPで、エラーがない場合のみ画面遷移させたい

    PHPのプログラムを作成しています。 動きとしては、 1.ユーザに値を入力させる 2.ユーザが入力した値をエラーチェックする 3.エラーチェック結果、もしエラーがなければ次の画面へ遷移し、エラーがあればメッセージを画面表示 という動きです。 (教えて!gooのような動きをさせたいのですが・・・) 2まではできていますが、3で困っています。 エラーがあればメッセージを画面表示するのはできましたが、エラーがない場合に次の画面へ移動する、というのはどのように実装すれば可能でしょう。 現在のソースは以下のような流れです。 ---------------------------------------------------------- <?php  $getChar = $_POST["char"] /*--- エラーチェック ---*/  if( isset( $_POST["send"] ) ) {   if( strcmp( $getChar, "" ) == 0 ) { // 空の場合はエラー   $strErr = "エラーメッセージ";   }   echo $strErr;  // ★  } ?> <form method="POST" action="#" name="form">  名前:<input type="text" name="char">  <input type="submit" name="send" value=\"送信\"> </form> ---------------------------------------------------------- 現在は上のような流れで処理を行っています。 今はエラーがある場合はエラーメッセージを表示(★部)し、ない場合はエラーメッセージを表示せず、画面遷移も行いません。 本当はエラーがない場合は次の画面へ遷移をさせたいのですが、どのように指定をさせたら良いのでしょうか。 すみませんが、ご回答よろしくお願いいたします。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • MFC-J6983CDWを使用している際に、プリンターとの接続が頻繁に切れる問題が発生しています。iPhoneのiPrint&Scanアプリではプリンターがオフラインと表示されていますが、実際にはプリンターは正常に接続されています。以前にルーターの電源を再起動すると問題が解消されたことがありますが、すぐに再度切断されます。
  • 同じwifiに接続しているにもかかわらず、MFC-J6983CDWとの接続が継続しない問題が発生しています。特にiPhoneのiPrint&Scanアプリではプリンターがオフラインと表示され、再接続の試みも成功しない状況です。以前にルーターの電源を再起動することで一時的に問題が解消されましたが、繰り返し切断されることがあります。
  • MFC-J6983CDWのプリンター接続に関する問題があります。全て同じwifiに接続しているにもかかわらず、プリンターとの接続が頻繁に切れてしまい、iPhoneのiPrint&Scanアプリではプリンターがオフラインと表示されます。ルーターの電源を再起動することで一時的に問題が解消されますが、すぐに再度切断される状況です。どのように解決すれば良いか教えてください。
回答を見る

専門家に質問してみよう