2013-12-03 3 views
0

Я использую 5-звездную систему голосования AJAX. Когда оценивается изделие, добавляется куки-файл:«Поиск» cookie с использованием PHP

Название has_voted_40 и значение 40, где 40 - уникальный идентификатор изделия.

Я хочу проверить, оценил ли пользователь хотя бы одну статью. Как я могу «искать» через файлы cookie, чтобы проверить, была ли оценена хотя бы одна статья?

Например, если cookie этой формы находится, переменная $voted должна быть установлена ​​в 1.

Единственная идея, у меня есть:

<? 
$voted=0; 
for($i=1;$i<500;$i++) 
{ 
if(isset($_COOKIE["has_voted_".$i])) 
    $voted=1; 
} 
?> 

Я установил лимит до 500, но идентификатор может быть больше, чем 500, и я думаю, что это не самая лучшая идея.

+1

Что вы пробовали? Взгляните: http://us3.php.net/manual/en/features.cookies.php – Leonardo

+0

У меня нет хорошей идеи, я знаю, что для этого нужно только «просматривать» куки, используя цикл for. Но какой должен быть предел ?! Вот почему я спросил ... – johnOby

+0

Как правило, такая задача должна не только опираться на файл cookie, вам лучше сохранить эту информацию в базе данных, тогда вы можете искать гораздо проще и быстрее. – PasteBT

ответ

1

Вы только хотите знать, a оценка была сделана? Почему бы не сделать переменную «hasVoted», которая не будет установлена ​​в обычном режиме, и на все голоса просто сделайте ее 1 или если она существует, добавьте ее.

Теперь, если не существует «hasVoted», пользователь не проголосовал, и в противном случае он имеет. И вы даже получаете количество голосов за (почти) бесплатно: D

Смежные вопросы