I'm writing a simple function and for some reason(probably a simple one) it's not working for me and I was wondering if you guys could help me out.
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";
}
}
In trying to figure out what the problem was I put that echo line above the If Statement there to make sure there actually is stuff in the variables.
My problem is that the IF statement never prints out.
A $postID
is a number 123123
.
The $cookie
string is usually something like 123123.23422.234234.2342342.234234
Thanks for your help!
Strpos won't work with an int, so you need to cast the ID to a string. Try this:
yes as Brock said Strpos wont work with an int so you have to cast the id. so need some change in your code.
Note that if your cookie string looks like
123123.23422.234234.2342342.234234
and you are looking for an ID, say,1231
or23
, your function would returnTRUE
while actually that ID is not in the list. Your current implementation ofstrpos()
will also match partial numbers.Here is a simple workaround that will require the ID to be surrounded by dots.