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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2027閲覧

javascriptで取得したリファラをパラメータとして別サイトのPHPに渡したい。

japansora2003

総合スコア7

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/02/23 14:22

編集2019/02/24 13:37

前提・実現したいこと

html

1<iframe src="http://hoge2.com/cnt.php?ref=<script>document.write(document.referrer);</script>" height="24" width="75" frameborder="0" scrolling="no"></iframe> 2

この呼び出しをするとcnt.phpが異常終了してしまいます。

該当のソースコード

現状正常動作しているWEBサイトA
http://hoge1.com/123.html

現状正常動作しているアクセスカウンターはWEBサイトBで運用中

html

1<body> 2... 3<iframe src="http://hoge2.com/cnt.php" height="24" width="75" frameborder="0" scrolling="no"></iframe> 4... 5</body> 6

アクセス数の水増しのための不正アクセスがあるようなので
あやしいアクセスのリファラを調べてみたところ、
http://ex.com/ex.html からのリダイレクトでした。

IPアドレスは毎回違うので、アクセス数水増しについて調べてみたところ、
例えば不正アクセスアップグループ300人が加入して、みんなでツールを
使って他の人のサイトをクリックする、みたいなアクセス水増しをしていると
予想しました。

このアクセス数水増しを排除するために、リファラに特定の文字列があったら
アクセスカウントしないというロジックを追加したいです。

アクセスカウンターがあるWEBサイトBで取得できるリファラはWEBサイトAになってしまうので、
WEBサイトAでリファラを取得してWEBサイトBのアクセスカウンターにパラメーターとして渡したいです。

html

1<body> 2WEBサイトAの開発途中HTMLサンプル1 とりあえずは動く 3... 4<iframe src="http://hoge2.com/cnt.php?ref=xxxx" height="24" width="75" frameborder="0" scrolling="no"></iframe> 5<p> 6このページの前のページは=<script>document.write(document.referrer);</script> 7... 8</body> 9

このようにしたら、アクセスカウンター内部ではxxxxという文字列が取得できました。
ブラウザ画面にはリファラのhttp://ex.com/ex.html が表示されました。

html

1<body> 2WEBサイトAの開発途中HTMLサンプル2 エラーで動かない 3... 4<iframe src="http://hoge2.com/cnt.php?ref=<script>document.write(document.referrer);</script>" height="24" width="75" frameborder="0" scrolling="no"></iframe> 5<p> 6このページの前のページは=<script>document.write(document.referrer);</script> 7... 8</body> 9

このようにしたらアクセスカウンタは異常終了してしまいました。

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

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

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

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

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

kei344

2019/02/23 14:24

(質問文は編集できます)質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
japansora2003

2019/02/24 13:37

ご指摘ありがとうございます。そのようにしてみたところわかりやすくなったと思います。
guest

回答1

0

ベストアンサー

scriptは要素なので属性値内では使用できません。

HTML

1<script>document.body.insertAdjacentHTML( 'afterbegin', '<iframe src="http://example.jp/cnt.php?ref=' + document.referrer + '"></iframe>' );</script>

<script>: スクリプト要素 - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Script

【element.insertAdjacentHTML - Web API | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Element/insertAdjacentHTML

投稿2019/02/24 13:59

kei344

総合スコア69398

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

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

japansora2003

2019/02/25 12:34

できました!!! ありがとうございます。 自分ではいろいろある選択肢からこの方向でできたらいいのにな。でも技術的にはよくわからないな。 という状況でしたが、この方法で開発を進められます。本当に助かりました。
japansora2003

2019/03/04 09:54

この方法で進めていましたが、外部サイトが独自フレームワークを使用しておりリファラの取得しか方法がないのですが、この方法ではリファラが取得できません。この件で質問を追記しました。どうぞよろしくお願いします。https://teratail.com/questions/177645
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問