Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 获取cookies导致错误500_Php_Google Chrome_Cookies - Fatal编程技术网

Php 获取cookies导致错误500

Php 获取cookies导致错误500,php,google-chrome,cookies,Php,Google Chrome,Cookies,我感到非常沮丧,因为我不能让它工作。我尝试过几种不同的方法,从我读过的所有示例和代码来看,这应该是可行的,但事实并非如此 2012-10-19 19:24:04.533 192.168.1.62 "-" "WEBMATRIX" "-" 192.168.1.62 POST /Actions/NewTicket.php - 500 0 6149 688 45 -11640 "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, l

我感到非常沮丧,因为我不能让它工作。我尝试过几种不同的方法,从我读过的所有示例和代码来看,这应该是可行的,但事实并非如此

2012-10-19 19:24:04.533 192.168.1.62 "-" "WEBMATRIX" "-" 192.168.1.62 POST /Actions/NewTicket.php - 500 0 6149 688 45 -11640 "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4" "QCUserID=1" "http://192.168.1.62:53896/NewTicketPage.html" "-" "192.168.1.62:53896" 0

WebMatrix/Actions/login.php要设置cookie,请尝试更改:

setcookie( $p_name, $p_value, 36000, "/");
致:

原因是,expiration参数是Unix时间戳,因此必须将当前时间添加到您希望它在多少秒内过期


您使用此cookie是否仅用于识别用户是否已登录?如果是这样的话,我需要做的就是以不同的用户身份登录,创建一个具有适当名称的cookie,并选择一个随机的用户id(如果是这样的话)。

你能从错误日志中发布与50个?
gpc\u strip\u slashes()对应的条目吗?
不是一个本机PHP函数,它来自Mantis,你没有定义它。这可能是错误的原因。您是否在任何地方定义了函数
gpc\u strip\u slashes
?添加
错误报告(E\u ALL);ini设置(“显示错误”,1)在测试期间的PHP文件开头,它将告诉您错误消息,而不是一般的500页。您还可以查看服务器错误日志文件,查找PHP错误的原因。@Pekka我觉得自己太傻了,真不敢相信我错过了。有趣的是,IE似乎并不在意,还是继续处理它。我摆脱了条纹斜线,现在它是在铬工作。谢谢大家。现在来看看为什么它不能从db中得到正确的结果。@RobertSnyder:)谢谢你发布了一个详细的问题,+1是因为它非常彻底,所以我们可以很快发现问题。至于IE,它可能使用了一个缓存副本,这在默认设置下非常糟糕。我想我需要休息一下,因为我的setcookie命令有一段时间在它们的内存中。谢谢你抓住那个。。。啊。。。幸好我不是一个大新手:/噢,等等,我是。我刚刚看到你说的关于用户id的内容。。。如果您可以访问我的内联网,您确实可以这样做。:)我确实需要找到更好的方法。我发现的一件事是$\u SESSION[]。我开始使用它一点,但有时它让我有点困惑。但这就是学习的意义,尝试一些东西,然后尝试其他东西。谢谢你的回答是的,这是你想要的。简单地说,只要您有
session_start(),您可以在
$\u会话
数组中读取和存储值。只要浏览器发送的cookie与现有会话匹配,就可以为该请求提供正确的数据。然后,您可以在服务器上存储诸如
$\u SESSION['userid']
之类的值,这样客户端就不会更改这些值,并且您将始终知道该用户ID以及该会话的用户是否已登录。
<?php
function GC_GetCookie( $p_var_name, $p_default = null )
{
    if( isset( $_COOKIE[$p_var_name] ) )
    {
        $t_result = gpc_strip_slashes( $_COOKIE[$p_var_name] );
    }
    else if( func_num_args() > 1 )
    {
        //check for a default passed in (allowing null)
        $t_result = $p_default;
    }
    else
    {
        error_parameters( $p_var_name );
        trigger_error( ERROR_GPC_VAR_NOT_FOUND, ERROR );
    }

    return $t_result;
}
function GC_SetCookie($p_name, $p_value, $p_httponly = true)
{
    return setcookie( $p_name, $p_value, 36000, "/");
}
function GC_ClearCookie($p_name)
{
    return setcookie( $p_name, '', -1, "/" );
}
<?php
error_reporting(-1);

require_once(__DIR__ . "/db.php");
require_once(__DIR__ . "/GlobalCookies.php");

$serial = $_POST['serialNumber'];
$model = $_POST['modelNumber'];
$company = $_POST['companyName'];
$special = $_POST['specialNote'];
$userID = GC_GetCookie("QCUserID",1); //Error 500 here
echo($userID."<br>");
?>
setcookie( $p_name, $p_value, 36000, "/");
setcookie( $p_name, $p_value, time() + 36000, "/");