Cookie没有设置为帖子表单中的变量

时间:2016-12-11 09:13:43

标签: php cookies

Undefined index: flavors line20
Undefined index: names   line 44
Undefined index: flavors line 45
Undefined index: scoops line 46

错误讯息:

import {Component} from "@angular/core";

// for webpack
require('./footer.scss');

@Component({
     selector: 'footer',
     templateUrl: 'app/footer/footer.html',
    styleUrls: ['app/footer/footer.scss'],
})
export class FooterComponent {}

我不断收到上述错误并且“嗨,你的冰淇淋顺序正在上路!”作为输出。

请您解释一下如何解决此错误以及如何设置Cookie以存储此代码的值,以便我可以显示数据。

2 个答案:

答案 0 :(得分:0)

您的 if 语句缺少围绕两个变量的isset:

if (!isset($_COOKIE['names']) && !isset($_COOKIE['flavors']) &&(!isset($_COOKIE['scoops'])))

因此,当您尝试读取'flavor'cookie时,您的代码在第20行(if)失败。然后它进入 else 并且对所有变量都失败。添加isset,只要没有设置Cookie,您就会看到 if 的内容

答案 1 :(得分:0)

正如我所说,回应。它将向您显示是否满足if语句条件......让我们以例如:

$a = true;

if ($a == true) {
echo "test";
}
  

返回测试

$a = "tru";

if ($a == true) {
echo "test";
}
  

什么都不返回

您的案例中的错误就在这一行:

if(isset($_POST['name'])&& ($_POST['flavor']) && ($_POST['scoop'])) { // this line
setcookie("names", $_POST['name']);
setcookie("flavors", $_POST['flavor']);
setcookie("scoops", $_POST['scoop']);
header("Location: coookie.php");
exit();
}

您检查是否设置了$_POST['name']以及$_POST['flavor']$_POST['scoop']的值是否为true。在你的情况下,它不是。这也是为什么我要求你在评论部分做的回声测试不起作用的原因,因为if语句的条件不符合。

因此,需要更改该行:

if(isset($_POST['name']) && isset($_POST['flavor']) && isset($_POST['scoop'])) {
setcookie("names", $_POST['name']);
setcookie("flavors", $_POST['flavor']);
setcookie("scoops", $_POST['scoop']);
header("Location: coookie.php");
exit();
}