亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Codeigniter 4 cookie 問題無法設置

Codeigniter 4 cookie 問題無法設置

PHP
神不在的星期二 2023-04-21 16:57:22
這是我的控制器代碼。我無法在 Codeigniter 4 中設置和獲取 cookie。helper('cookie');$this->response->set_cookie('forgetpwd',$token, time() + (3600),"/",site_url());print_r($this->request->get_cookie('forgetpwd'));die();
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

不要使用die(),因為這樣就不會設置 cookie。讓該方法返回,以便 CI 可以輸出 cookie 和標頭。

你不需要這個助手,不要加載它。

site_url()不會產生您應該使用的字符串。它包括協議,即https://example.com當您只應使用“example.com”時。

您將路徑參數顛倒了,正如其他人所說,調用是setCookie()

$this->response->setCookie('forgetpwd', $token, 3600, example.com);

expire參數可以是你想要的壽命(以秒為單位)。該setCookie()方法將為time()您添加。

我沒有提供路徑參數,因為您需要默認值“/”。


查看完整回答
反對 回復 2023-04-21
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

直到下一次加載 cookie 應該可見的頁面時,cookie 才會變得可見。要測試 cookie 是否已成功設置,請在 cookie 過期之前檢查下一個加載頁面上的 cookie。過期時間通過 expires 參數設置。調試 cookie 存在的一個好方法是簡單地調用 print_r($_COOKIE);。


查看完整回答
反對 回復 2023-04-21
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

這段代碼對我有用。我從請求中獲取 cookie 并將其設置在響應中。(記住在處理之前驗證用戶輸入)


<?php


namespace App\Controllers;  

use Config\Services;


class Home extends BaseController {


    public function setLang($lang = ""){

        // remember filter your inputs

        Services::response()->setCookie('lang', $lang);

        echo("<script>location='/index';</script>");

    }


    public function index(){

        //default value

        $lang = "es";

        //if empty return NULL.

        $tmpLang = Services::request()->getCookie("lang");

        if(in_array($tmpLang, ["es", "en", "ja", "pt"])){

            $lang = $tmpLang;

        }

        //show cookie value

        echo $lang

    }

}


?>


查看完整回答
反對 回復 2023-04-21
  • 3 回答
  • 0 關注
  • 269 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號