我在PHP代码的顶部添加了以下行,但它引发了一个错误:
致命错误:函数名称必须是第2行/home/reg.php中的字符串
<?php
if ($_COOKIE('CaptchaResponseValue') == "false")
{
header('location:index.php');
return;
}
?>
Run Code Online (Sandbox Code Playgroud)
我试过了:$_COOKIE("CaptchaResponseValue").Cookie已成功设置并可用.为什么我在使用时会给我一个错误$_COOKIE?
Fil*_*erg 17
在编程语言或脚本语言中使用括号通常意味着它是一个函数.
但是$_COOKIE在php中不是一个函数,它是一个数组.要访问数组中的数据,可以使用方括号('['和']')来表示从哪个索引获取数据.所以,$_COOKIE['test']你基本上是在说:"给我索引'测试'的数据.
现在,在您的情况下,您有两种可能性:(1)要么想要查看它是否为假 - 通过查看cookie内部或(2)看看它是否不存在.
为此,您使用isset函数,它基本上检查变量是否设置.
例
if ( isset($_COOKIE['test'] ) )
Run Code Online (Sandbox Code Playgroud)
如果要检查值是否为false并且已设置,则可以执行以下操作:
if ( isset($_COOKIE['test']) && $_COOKIE['test'] == "false" )
Run Code Online (Sandbox Code Playgroud)
您可以记住的一件事是,如果第一个测试失败,它甚至不会检查下一个语句是否为AND(&&).
并解释为什么你实际上得到错误"函数必须是一个字符串",请看这个页面.它是关于PHP中函数的基本创建,你必须记住的是PHP中的函数只能包含某些类型的字符,而$不是其中之一.因为在PHP中$代表一个变量.
一个函数可能看起来像这样:_myFunction _myFunction123 myFunction在许多其他模式中,但将它与$和%等字符混合将不起作用.
尝试使用方括号$_COOKIE,而不是括号.像这样:
<?php
if ($_COOKIE['CaptchaResponseValue'] == "false")
{
header('Location: index.php');
return;
}
?>
Run Code Online (Sandbox Code Playgroud)
我也纠正了你的位置标题调用.