質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2248閲覧

最初に取得したrefererを保持し続けるには?

yukina00235

総合スコア63

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/06/04 08:06

編集2020/06/04 08:11

外部からのアクセスを取得したく、refererを取得してsessionに入れてみたのですが、ページ遷移の度に中身が変わってしまいます…。

php

1<?php 2session_start(); 3$referer = $_SERVER['HTTP_REFERER']; 4$_SESSION['rurl'] = $referer;

初回に取得したrefererを最後まで保持し続けるには、
どのようにしたらよいでしょうか?宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/06/04 09:58

使用目的は何でしょう。 それなりにWebをやってきて長いですが、それが必要な要件に出会ったことがないです
yukina00235

2020/06/04 12:33

有難うございます。mm 目的はサイトにアクセスした、アクセス元を知りたいのです。 どこからこのサイトにアクセスがあったかを知りたいです。そもそも、これを解決するためにはsession云々は関係が無いのかもしれませんが、私の知識では、sessionを使ってみて…という判断に至っただけですので。 なので、知りたいことは、外部からのアクセス情報(アクセス元のページURL)を知りたいに引かなりません。 とても面倒な内容になっているかもしれませんがよろしくお願いいたします。
m.ts10806

2020/06/04 21:20

リファラの取得という時点でアクセスもとをしりたいというのは分かるのですけど、それをもち回ってなにをしたいのか何を達成したいのか というのを知りたいのです。 始めにアクセスしたページで分かれば十分と思います。
yukina00235

2020/06/04 22:37 編集

有難うございます。 特定のページの申し込み完了画面とかでパラメータで表示できれば外部からの申し込み数がわかるのと、アクセス解析でもパラメータ付きのURLが確認できるというのが目的です。 アクセス時点でリファラがわかっても申し込みとの関係性が把握できないので…。 宜しくお願いします。
m.ts10806

2020/06/04 22:36

hiddenに埋め込んでgetで渡しては。
yukina00235

2020/06/04 23:53

有難うございます、ダイレクトにフォームに行けばよいのですが様々なページを経由後されてしまうと難しいかと思います…。 またすべてのページにhiddenで渡し続けるのは厳しそうです。 何か良い方法はないでしょうか?
m.ts10806

2020/06/05 00:00

それはセッションも同じですよ。 いずれにしてもリファラ取得をGETでアクセス可能なページ全てに仕掛け、自サイトかどうかのチェックをしていく必要があります。
yukina00235

2020/06/05 00:10

有難うございます、formを使わずにhiddenで次のページ次のページへと渡すことはできますか? 出来るのであれば一度試してみたいと思います、ご教授頂けないでしょうか。mm
m.ts10806

2020/06/05 00:20

可能といえば可能ですが、すべての遷移に対してJavaScriptでいれていく必要があるので、かなりの改修になるかと思います。 やることはすべてのリクエストをformでsubmitボタンでGETで処理するのと変わりませんから。
yukina00235

2020/06/05 00:23

そうですか、あまり現実的ではないのかもしれません…。 根本的に仕組みを再度検討してみた方が良い気がしてきました。
miyabi_takatsuk

2020/06/05 05:23 編集

Google Analyticsで、どこから来たかの参照を、 サイト単位で行うことができますが、それだとダメなんでしょうか? やりたいことは、単純な"アクセス解析"となんら変わりないものだ思うので、 そもそも、そういったサービスの無料のものがあるのなら、それを使うのが効率的かと思います。
yukina00235

2020/06/05 08:19

有難うございます、そうですねアクセス解析のお仕事になりそうですね。 今回は、この方向で検討してみたいと思います、有難うございました。mm
miyabi_takatsuk

2020/06/05 08:57

解決されるのであれば、BAを選出するか、自己解決の投稿をして質問を閉じられるといいかと。
guest

回答1

0

ベストアンサー

phpに「初回」という概念はありません。
あなたがどのような状態を「初回」と判定したいかによって回答は変わりますが、例えばセッション変数が未設定であるときを初回とするならば以下のようなコードになります。

php

1session_start(); 2$referer = $_SERVER['HTTP_REFERER']; 3if( isset($_SESSION['rurl']) === FALSE ) { 4 $_SESSION['rurl'] = $referer; 5}

投稿2020/06/04 08:29

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukina00235

2020/06/04 09:24 編集

>>phpに「初回」という概念はありません。 有難うございます。 アドバイス頂きましたコードで試してみたのですが、やはりページ遷移するごとにsessionに入っている内容が変わってしまいます。 初回のアクセスとは、外部から訪れた場合その外部からのアクセス情報を取得したいのが行いたいことです。 Google検索であれば、検索から対象ドメインへアクセス、他のリンクから出あればそのリンク元、になります。 初回のアクセスのREFERER情報を取得できればと思うのですが難しいでしょうか?
ku__ra__ge

2020/06/05 04:41

> ページ遷移するごとにsessionに入っている内容が変わってしまいます。 私の環境セッション変数の内容が維持されます。 環境の問題かもしれません。単純にあるページで設定したセッション変数を別のページで取得するという動作は行なえますか? > 初回のアクセスとは、外部から訪れた場合その外部からのアクセス情報を取得したいのが行いたいことです。 parse_url関数を使い、自身のページurlとリファラのurlのドメイン部分を比較して異なっていれば初回アクセスであると判定するなどの方法が考えられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問