Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果用户没有会话,如何设置cookie?_Php_Session_Cookies_Model View Controller_Set - Fatal编程技术网

Php 如果用户没有会话,如何设置cookie?

Php 如果用户没有会话,如何设置cookie?,php,session,cookies,model-view-controller,set,Php,Session,Cookies,Model View Controller,Set,我正在做一个网店,现在我被困在购物车里。 简单解释一下我的想法: 如果访问者没有会话并将产品添加到shoppingcart,请使用我提供给cookie的数据设置cookie。若用户有一个活动会话并将产品添加到shoppingcart,则保存到数据库。user has session的功能很好,但我不知道如何设置cookie。我在MVC(航班)工作。 控制器代码: public function shopProduct() { $userid = $_POST['userid'];

我正在做一个网店,现在我被困在购物车里。 简单解释一下我的想法: 如果访问者没有会话并将产品添加到shoppingcart,请使用我提供给cookie的数据设置cookie。若用户有一个活动会话并将产品添加到shoppingcart,则保存到数据库。user has session的功能很好,但我不知道如何设置cookie。我在MVC(航班)工作。 控制器代码:

public function shopProduct()
{
    $userid = $_POST['userid'];
    $product = $_POST['product'];
    $productname = $_POST['productname'];
    $color = $_POST['color'];
    $price = $_POST['price'];

    if (!isset($_SESSION['user_id'])) {
        if (strlen($product) < 1) {
            $err['data'] = array("status" => "failed", "return" => "Er is iets misgegaaqn!");
        } else {
            if (setcookie("basket_save", $product, $productname, $color, $price, time() + 30000000, "/")) {
                $err['data'] = array("status" => "success", "return" => "Dit product is toegevoegd aan uw winkelwagen.");
            } else {
                $err['data'] = array("status" => "failed", "return" => "Er is iets misgegaan!");
            }
        }

    } else if (strlen($userid) < 1) {
        $err['data'] = array("status" => "failed", "return" => "Er is iets misgegaaqn!");
    } else {
        $OrderModel = new OrderModel();
        if ($OrderModel->addBasket($userid, $product, $productname, $color, $price)) {
            $err['data'] = array("status" => "success", "return" => "Dit product is toegevoegd aan uw winkelwagen.");
        } else {
            $err['data'] = array("status" => "failed", "return" => "Er is iets misgegaan!");
        }
    }
    exit($err['endpoint'] = json_encode($err['data'], $options = 0));
}
公共功能shopProduct()
{
$userid=$\u POST['userid'];
$product=$_POST['product'];
$productname=$\u POST['productname'];
$color=$_POST['color'];
$price=$_POST['price'];
如果(!isset($\u会话['user\u id'])){
if(斯特伦($product)<1){
$err['data']=array(“状态”=>“失败”,“返回”=>“Er是iets MISGEGAGAQN!”);
}否则{
if(setcookie(“basket\u save”、$product、$productname、$color、$price、time()+30000000,“/”){
$err['data']=array(“status”=>“success”,“return”=>“Dit产品是toegevoegd aan uw winkelwagen.”);
}否则{
$err['data']=array(“状态”=>“失败”,“返回”=>“Er是iets MISGEGAN!”);
}
}
}else if(strlen($userid)<1){
$err['data']=array(“状态”=>“失败”,“返回”=>“Er是iets MISGEGAGAQN!”);
}否则{
$OrderModel=新的OrderModel();
if($OrderModel->addBasket($userid、$product、$productname、$color、$price)){
$err['data']=array(“status”=>“success”,“return”=>“Dit产品是toegevoegd aan uw winkelwagen.”);
}否则{
$err['data']=array(“状态”=>“失败”,“返回”=>“Er是iets MISGEGAN!”);
}
}
退出($err['endpoint']=json_encode($err['data'],$options=0));
}

因此,我的问题是,我在cookie行中键入的错误是什么?对cookie本身的设置感到遗憾是什么。

这是应该如何使用set cookie(来自php.net参考) bool setcookie(string$name[,string$value=”“[,int$expire=0[,string$path=”“[,string$domain=“”[,bool$secure=false[,bool$httponly=false][3][3])

在你的代码里

setcookie(“basket\u save”、$product、$productname、$color、$price、time()+30000000,“/”)

大约有4个值参数(即传递给函数的参数错误)$productname引用expire

所以,让它像 $arrCok=[$product,$productname,$color,$price]

setcookie(“篮_save”$arrCok,time()+30000000,“/”)


或者将每个cookie设置为要保存的值。

我尝试了该代码,但没有成功。如果我喜欢$arrCok=$productname;和vardump我得到的cookie:[“basket\u save”]=>string(34)“Right Value”