index.phpで、ページを読み込んだと同時に実行されるJavaScript(jQuery?)を記述しています。
PHP
1$(document).ready( function(){ 2 //何らかの処理 3});
このJavaScriptが実行されたかどうかを、hoge.phpで判断したいです。
方法として考えたのは、
①//何らかの処理部分で、post送信してhoge.phpで受け取る。
②//何らかの処理部分で、クッキーに何か値を入れ、hoge.phpでそのクッキーの有無を確認する
です。
JavaScriptに慣れておらず、書き方のヒント・もしくは他の方法があればご教授お願い致します。
何卒、よろしくお願い致します。
###追記
補足願います。『あるクライアントについて、index.phpで当該スクリプトが一度でも実行された後に、hoge.phpを開いたかどうか」を判断したい、と読みましたが、それでいいですか? クライアントを横断したり、あるいはすでに開いているhoge.phpページ上でリアルタイムに反映する、などの動作が必要なわけではないですよね?
>あるクライアントについて、index.phpで当該スクリプトが一度でも実行された後に、hoge.phpを開いたかどうか」を判断したい
はい、その通りです。
index.phpにて、該当のJavaScriptが一度でも実行された後、
hoge.phpを開いたがどうか。(リンクでの移動・URLを直で叩くどちらにしても)を確認したいです。
>すでに開いているhoge.phpページ上でリアルタイムに反映する、などの動作が必要なわけではないですよね?
はい、必要ありません。
もう少し動きを補足しますと、
index.php→hoge.php→goal.phpという流れになります。
index.phpをロードした瞬間に、JavaScriptが実行され、hoge.phpで認証、その後認証に必要なセッション変数は削除。
hoge.phpに直接アクセスした場合には、エラーを返すようにしたいのです。
詳しく書くと、
①index.phpでセッションを開始し、
$_SESSION['start'] = 'start';
のような変数を代入します。
↓
②ページのロードと同時に実行される、index.phpに記述したJavaScript内でhoge.phpにアクセス
(どうしてもJavaScriptを通じないといけません)
↓
③JavaScriptからアクセスしたhoge.phpで$_SESSION['start']の有無を確認
あれば、goal.phpにリダイレクト。
unset($_SESSION['start'])で削除
↓
④hoge.phpにアクセスした後、next.phpにリンクやURL直叩きでアクセスしても、
セッション変数$_SESSION['start'] = 'start';
が無いのでエラーが返る。
index.phpを通っていない場合ももちろんエラーになる。
としているのですが、
少し手を加えてindex.phpにアクセスすると、
①でPHPの処理は実行されるが、JavaScriptは実行されないため、
index.phpにアクセスした瞬間に、$_SESSION['start'] = 'start';
が代入されるのですが、
②、③の認証ができず、次にhoge.phpにアクセスすると、goal.phpにリダイレクトされてしまうのです。
そのため、ページをロードした際に、index.phpのJavaScriptが実行されたかどうかを、
何か値などで残し、hoge.phpで判定できればと思っています。
長くなり、分かりにくく申し訳ありません。
お力添え頂けますと大変助かります。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー