JS 対応の検出に少し問題があります。私は正しい軌道に乗っていることを知っているので、大きすぎません。しかし、ここに私の取引があります:
このコードを使用してJS(jQuery)でCookieを設定しようとすると
$(window).load(function(){
$.cookies.set('c_jsEnabled', 'true');
});
または、このコードを使用して単純なJSで
function setCookie()
{
document.cookie='c_jsEnabled=true';
}
<body onload="setCookie();">
次に、このコードを使用してPHPで検出してみてください
if($_COOKIE['c_jsEnabled'] == 'true')
{
if(file_exists('./main.php'))
{
require_once ('./main.php');
}
echo getIndex();
}
else
{
if(file_exists('./noJS.php'))
{
require_once ('./noJS.php');
}
echo getIndex();
}
setcookie('c_jsEnabled', '');
PHP に適切な値を実際に取得するには、ページを 2 回更新する必要があります。私の推測では、これは基本的に、JS 関数が起動される前に PHP スクリプトが実行されることを意味します。これは、上記のすべてのコードが同じスクリプト (index.php) 内にあるためでしょうか?
JS が無効になっているときに人々が私の Web サイトを使用できないようにしたいので、これは私にとって一種の問題です。
PHPがCookie変数を取得しようとする前にCookieを設定する方法はありますか?