サポート » 使い方全般 » setcookie実行のタイミングが遅い

  • 解決済 foramus4

    (@foramus4)


    外観ーウィジェットに作成したformからgetで送信した値をcookieに保存したいと考えています。

    以下の設定・記述を行っているのですがcookieの値が1つ前の段階で取得した$_GET[‘ageMin’]の値になっており困っております。想定通りにいっていない原因の究明方法・解決策などご教示お願いいたします。

    例:1回目の$_GET[‘ageMin’]が25だった場合、2回目$_GET[‘ageMin’]の30を送信した時に固定ページで25と表示され、3回目の$_GET[‘ageMin’]を送信した時に30と表示されます。

    setcookieを利用するために、function.phpに

    add_action('get_header', 'my_setcookie');
    
    function my_setcookie(){
    	if (isset($_GET['ageMin'])) {
    		setcookie('ageMin', $_GET['ageMin'], 0, "/");
    	}
    }

    と記述し、formで飛ぶ先の固定ページでphpを利用するためfunction.phpに

    function my_php_Include($params = array()) {
    extract(shortcode_atts(array('file' => 'default'), $params));
    ob_start();
    include(STYLESHEETPATH . "/prf.php");
    return ob_get_clean();
    }
    add_shortcode('call_php', 'my_php_Include');

    と記述し固定ページで[call_php file=’prf’]として呼び出しています。

    pref.phpには

    if (isset($_COOKIE['AgeMin'])) {
            $AgeMin = $_COOKIE['AgeMin'];
        }
    echo $AgeMin;

    と記述しています。

    • このトピックはforamus4が10ヶ月、 3週前に変更しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 foramus4

    (@foramus4)

    pref.phpのAgeMinはageMinです。誤記すみません。

    こんにちは。「setcookie実行のタイミングが遅い」というよりは、そういう仕様だと思われます。

    setcookie」のリファレンスページには、以下のように記載されています。

    一度クッキーが送信されると、次のページのロードからは <var>$_COOKIE</var> 配列によってクッキーにアクセスできます。 

    トピック投稿者 foramus4

    (@foramus4)

    無事解決しました。

    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「setcookie実行のタイミングが遅い」には新たに返信することはできません。