我正在写一个简单的功能,由于某种原因(可能是一个简单的一个),它不是为我工作,我在想,如果你们能帮助我。

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = $_COOKIE['list_of_IDS'];
        $position = strpos($cookie,$ID);
        echo 'ID:'.$ID.'-Cookie:'.$cookie;
            if ($position !== false)
        {
            echo "ID is in the cookie";
        }
    }

在试图找出什么问题,我把该声明如果有上述回声线,以确保真正有东西在变量。

我的问题是,IF语句根本不会被打印出来。

一个$postID是一个数字123123

$cookie字符串通常是这样123123.23422.234234.2342342.234234

感谢您的帮助!

有帮助吗?

解决方案

Strpos不会与一个int,所以你需要将ID转换为字符串。尝试这样:

$ID = (string)$postID;

其他提示

请注意,如果你的cookie字符串看起来像123123.23422.234234.2342342.234234和你正在寻找一个ID,比如,123123,你的函数会,而实际上该ID不在列表返回TRUE。您的当前实现strpos()的也将匹配部分的数字。

下面是要由点包围一个简单的解决方法,这将需要的ID。

$position = strpos('.'.$cookie.'.', '.'.$ID.'.');

是为布洛克说Strpos不会有一个int工作,所以你必须要投的ID。 所以需要在你的代码中的一些变化。

function check_value($postID) 
    {
        $ID = $postID;
        $cookie = $_COOKIE['list_of_IDS'];
        $position = strpos($cookie,$ID);
        echo 'ID:'.$ID.'-Cookie:'.$cookie;
            if ($position !== false)
        {
                echo "ID is in the cookie";
        }
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top