こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

テキストリンクを2回クリックしないと反応しない件

リンクテキストを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");
}
}
?>

と記述してあります。
どなたか原因をご存じの方教えてください(><)

投稿日時 - 2007-06-25 21:06:12

QNo.3115411

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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:
}

投稿日時 - 2007-06-26 14:14:59

ANo.1

流し読みですが失礼します。
if($page){
 setcookie("page",$page);
}
if($_COOKIE['page']){

setcookieしたあとは1度ページを読み込みなおさないと
$_COOKIEにアクセスできなかった気が。
つまり再読み込みしないと分岐しません。

if($_COOKIE['page']){
 ;
}else{
 setcookie("page","",time()-3600);
}
クッキーが空のときクッキーを開放、よく分かりません。

一度作り直してもらった方がよいのでは・・

投稿日時 - 2007-06-25 23:20:20

補足

ご返答頂きありがとう御座います。
拝見させて頂いたところ、
1回目のクリックは、クッキー情報を保存する為だけに利用され、
2回目以降のクリックで初めて、1回目に取得したクッキー情報を
利用してアクセス可能となる。。。
つまり1回目のクリックでアクセス出来ないのは当たり前、
という理解の仕方で宜しいでしょうか。

私の知識不足で申し訳ないですが、
2回クリックせずに1回で他ページにアクセス出来る方法を
もしご存じでしたらご教授頂けないでしょうか??
宜しくお願いいたします。

投稿日時 - 2007-06-26 12:18:24

あなたにオススメの質問