我在PHP代码的顶部添加了以下行,但是它引发了错误:
致命错误:函数名称必须是第2行/home/reg.php中的字符串
<?php
if ($_COOKIE('CaptchaResponseValue') == "false")
{
header('location:index.php');
return;
}
?>
我试过了:$_COOKIE("CaptchaResponseValue")
。 Cookie已成功设置并可用。当我使用$_COOKIE
时,为什么它会给我一个错误?
答案 0 :(得分:112)
应该是$_COOKIE['name']
,而不是$_COOKIE('name')
$ _ COOKIE是一个数组,而不是函数。
答案 1 :(得分:17)
在编程语言或脚本语言中使用括号通常意味着它是一个函数。
然而,php中的$_COOKIE
不是函数,而是Array。要访问数组中的数据,可以使用方括号('['和']')来表示从哪个索引获取数据。所以通过$_COOKIE['test']
,您基本上会说:“从索引'测试'中获取数据。
现在,在你的情况下,你有两种可能性:(1)你想要看看它是否是假的 - 通过查看cookie或(2)看看它是否不存在。
为此,您使用isset函数,该函数基本上检查变量是否已设置。
示例强>
if ( isset($_COOKIE['test'] ) )
如果您想检查该值是否为false并且已设置,您可以执行以下操作:
if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )
您可以记住的一件事是,如果第一次测试失败,如果它是 AND (&&
),它甚至不会检查下一个语句。
要解释为什么你实际上得到错误“函数必须是一个字符串”,请查看this page。它是关于PHP中函数的基本创建,你必须记住的是PHP中的函数只能包含某些类型的字符,其中$
不是其中之一。因为PHP $
代表一个变量。
一个函数看起来像这样:_myFunction _myFunction123 myFunction
以及许多其他模式,但是将它与$和%等字符混合起来将不起作用。
答案 2 :(得分:5)
尝试使用$_COOKIE
的方括号,而不是括号。像这样:
<?php
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
header('Location: index.php');
return;
}
?>
我也纠正了您的位置标题调用。
答案 3 :(得分:2)
如果您想确定是否设置了cookie ...请使用
if (isset($_COOKIE['cookie']))
答案 4 :(得分:2)
它将是$_COOKIE['CaptchaResponseValue']
,而不是$_COOKIE('CaptchaResponseValue')
答案 5 :(得分:1)
在PHP.js中,$ _COOKIE 是一个函数;-)
function $_COOKIE(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length).replace(/\+/g, '%20'));
}
return null;
}
答案 6 :(得分:0)
有关如何使用大括号的有用解释(除了上面的Filip Ekberg的有用答案)可以在简短的论文Parenthesis in Programming Languages中找到。
答案 7 :(得分:-2)
<?php
require_once '../config/config.php';
require_once '../classes/class.College.php';
$Response = array();
$Parms = $_POST;
$Parms['Id'] = Id;
$Parms['function'] = 'DeleteCollege';
switch ($Parms['function']) {
case 'InsertCollege': {
$Response = College::InsertCollege($Parms);
break;
}
case 'GetCollegeById': {
$Response = College::GetCollegeById($Parms['Id']);
break;
}
case 'GetAllCollege': {
$Response = College::GetAllCollege();
break;
}
case 'UpdateCollege': {
$Response = College::UpdateCollege($Parms);
break;
}
case 'DeleteCollege': {
College::DeleteCollege($Parms['Id']);
$Response = array('status' => 'R');
break;
}
}
echo json_encode($Response);
?>