
リンクテキストを2回クリックしなければ他のページに移動出来ずにこまっています。
PHPでユーザーのセッションを利用してファイルを分岐させる機能を付けたのですが、何故かリンクテキストを1回クリックしただけでは何も反応せず、2回クリックして初めて他のページにジャンプ出来るという症状が出ています。
どのPC・MACでも同じ症状だとプログラム側に問題があると思えるのですが、何故かユーザーのPCによって1回でジャンプしたり、2回クリックしないとジャンプ出来なかったりと様々です。
WINとMACのIE(6.0、7.0)・FIREFOX・SAFARI・NETSCAPE等で検証したのですが、1つのブラウザで1回クリックで入れるPCは他のブラウザでも1回クリックのみで正常に機能するようです。
逆に、1つのPCのブラウザで入れないと、他のどのブラウザでも入れないようです。
一端、他のページにジャンプしてTOPページに戻ると以降は正常に反応するのですが、クッキーを削除してしまうと、また反応しなくなります。
プログラムは知人に書いてもらったので詳しいことはあまり分からないのですが、分岐する前のページには、
<?php
if($_COOKIE['page']){
header("Location: http://分岐させる先のページ.php");
exit();
}else{setcookie("page","",time()-3600);}
?>
と記述してあり
分岐させる先のページには
<?php
$page = htmlspecialchars($_GET['p']);
if($page){
setcookie("page",$page);
}
if($_COOKIE['page']){
switch($_COOKIE['page']){
case "h":
require_once("ファイル01.php");
break;
case "f":
require_once("ファイル02.php");
break;
}
}
else{
if(!$page) {
header("Location: http://URL");
}
else{
header("Location: http://URL/ファイル03.php");
}
}
?>
と記述してあります。
どなたか原因をご存じの方教えてください(><)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
具体的にどんな動作を期待しているのかちょっと把握できませんので
クッキーのとこだけでも参考になればと思います。
//getがあればgetを、cookieがあればcookieを元に分岐
$page = htmlspecialchars($_GET['p']);
if ($page) {
setcookie("page",$page);
} elseif ($_COOKIE['page']) {
$page = $_COOKIE['page'];
} else {
;// page情報なし
}
switch ($page) {
case 'h':
case 'f':
default:
}
No.1
- 回答日時:
流し読みですが失礼します。
if($page){
setcookie("page",$page);
}
if($_COOKIE['page']){
setcookieしたあとは1度ページを読み込みなおさないと
$_COOKIEにアクセスできなかった気が。
つまり再読み込みしないと分岐しません。
if($_COOKIE['page']){
;
}else{
setcookie("page","",time()-3600);
}
クッキーが空のときクッキーを開放、よく分かりません。
一度作り直してもらった方がよいのでは・・
この回答への補足
ご返答頂きありがとう御座います。
拝見させて頂いたところ、
1回目のクリックは、クッキー情報を保存する為だけに利用され、
2回目以降のクリックで初めて、1回目に取得したクッキー情報を
利用してアクセス可能となる。。。
つまり1回目のクリックでアクセス出来ないのは当たり前、
という理解の仕方で宜しいでしょうか。
私の知識不足で申し訳ないですが、
2回クリックせずに1回で他ページにアクセス出来る方法を
もしご存じでしたらご教授頂けないでしょうか??
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
セッション関数を使わずにファ...
-
SplFileObject を利用したとき...
-
PHP8でWarning:Undefined varia...
-
PHP8を使うと、大量のWarningが...
-
フォームで戻った際に入力済み...
-
PHPで画像の渡しが上手く行きま...
-
$filePath = './user_img/' . $...
-
php ラジオボタン
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLの変わらないページをPHPで...
-
リンク(URL)をクリックした後、...
-
URLでスラッシュ区切りでパラメ...
-
リダイレクトでPOST
-
テキストリンクを2回クリックし...
-
pukiwikiのrecent(最近の更新...
-
GET POST の引数渡しについて
-
phpinfoでloaded modulesが表示...
-
PHPで検索結果からさらに詳細な...
-
LARAVEL モデル
-
ページング phpの書き方がわか...
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
.phpと.incファイルの違いはな...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
onedrive にexcelファイルをア...
おすすめ情報