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