Дали има бисквитки от мен?

misho

Registered
Има ли друг начин да проверя дали посетителят има бисквитки то моя сайт освен познатото?
PHP:
if(isset($_COOKIE['coocie_name']))
Въпросът е там, че очквам човекът или да няма бискивкти от мен или да има n на брой бисквитки от типа id_5, където числото е различно за всяка. Има ли начин да направя проверка като горната, но с нещо като маска id_*, дали изобщо има бисквитки, чието име започва така? Или пък да има начин да проверя дали изобщо има някакви бисквитки за текущия адрес и колко са на брой, без значение от името и стойността им?
 
Бисквитки винаги има - SESSID също е бисквитка, така че този вариант да се проверява дали има бисквитка за текущия адрес отпада.

Можеш да направиш следното

PHP:
<?php

function check($item, $key, $need){
	echo (strpos($key, $need) !== false) ? "The cookie exists!" : "The cookie does not exists!";
}

array_walk($_COOKIE, "check", "id");

?>

във array_walk третия параметър(id) това е каква бисквитка да търсиш, не е нужно да е пълен формат. Ти примерно търсиш id_? и по този начин ще ти изкара дали има или няма такава бисквитка. Този параметър можеш да го смениш, ако търсиш друг вид бисквитка.


ЕДИТ: Ако записваш бисквитки от рода на масив (setcookie("cookie[]"...)) тогава ползвай array_walk_recursive().
 
Не ми стана съвсем ясно. Това ми е функцията:
PHP:
function cookieExist($item, $key, $need){
      if(strpos($key, $need) !== false) 
        return TRUE; // the cookie exist
      return FALSE;
}
После array_walk($_COOKIE, 'cookieExist', 'id'); ще връща ли TRUE/FALSE когато cookieExist ги връща като резултат?
 
PHP:
<?php

function checkCookie($needed){
	foreach($_COOKIE as $k => $v){
		if(strpos($k, $needed) !== false){
			return true;
		}
	}
	
	return false;
}

if(checkCookie('id_')){
	echo "Yes";
}

?>

ето ти друг вариант.
 

Back
Горе