1

Firefox の PHP セッションで問題が発生しています。各更新/ページのリロード後にセッションに変更があります。他のブラウザでは問題なく動作しています。

私の WordPress テンプレートでは、ポスト/セッション変数を比較して、セッションを初期化しました。functions.php ファイルで定義されたショートコード「inf_kit」は、「the_content()」関数の実行中に呼び出されます。

functions.php で定義されたショートコードは、関数 kit() および CSRF() を呼び出します。これにより、セッション変数が設定され、非表示のテキスト フィールドがフォームに追加され、テンプレートに返されます。フォームを送信すると、別の値が得られます。IEならChromeでOKです。問題がどこにあるのか、誰かが知っていますか?


テンプレート ファイル内のコード

<?php
session_start();

if(isset($_POST["s_405"])){ 
    print_r($_SESSION);
    if($_SESSION['token_valid'] == $_POST['token_valid']) echo 'Good'; else echo 'issue'; 
} 

the_content(); 
?>

functions.php のコード

<?php
add_shortcode( 'inf_kit', 'kit');

function kit($atts){ 
    $form .= '<form name="kit" method="post">
                <input type="hidden" value="'.time().'" name="s_405"/>'
                . CSRF('valid'). 
                '</form>'; 
    return $form; 
} 

function CSRF($key){ 
    $tkn = sha1($key.uniqid(rand(), true)); 
    $_SESSION['token_'.$key] = $tkn; 
    return '<input type="hidden" name="token_'.$key.'" value="'.$tkn.'">'; 
}
?>
4

0 に答える 0