Я недавно пытался сделать эту маленькую модификацию на моем сайте. В основном авторизованные пользователи могут добавлять игры в избранное, а не авторизованные посетители будут перенаправлены на страницу регистрации.
Хотя я думал, что смогу немного поработать над своим PHP и дать посетителям возможность добавлять игры в свои любимые. (Флеш игры)
Итак, я сделал этот JS-скрипт, который позволит пользователю щелкнуть изображение, этот проверяет, существует ли cookie, если нет, он добавит его, и если он существует, он удалит cookie (изображение изменяется с «Добавить в избранное» на «Удалить из избранного» * 1005 *
Поскольку может быть много разных любимых игр, я не могу использовать простое имя файла cookie, поэтому я настроил его следующим образом: xx1200 = set (то есть 2 x, затем идентификатор игры, который создает заголовок файла cookie, а затем "set" - это значение cookie. Все избранные игры будут иметь одинаковое значение, но разные имена, являясь их идентификатором с xx впереди.
Теперь, чтобы распечатать файлы cookie на другой странице с отображением их любимых игр, я добавил PHP на страницу, чтобы в основном получить файл cookie, но в этом заключается моя проблема: как получить имя файла cookie по его значению (обычно вы будете печатать $_COOKIE["set"];
но теперь имя моего печенья меняется.
Я использую print_r($_COOKIE);
, чтобы напечатать весь файл cookie, и я вижу свой [zz800] => set
в массиве, но я не могу понять, как получить идентификатор (в приведенном выше примере 800), чтобы затем получить игру (ы). ) соответствует данному ID.
Любая помощь будет принята с благодарностью! Спасибо тебе:)
Обновление:
Это код, который у меня есть сейчас, я работал над ним и выключал последние пару часов, сейчас он работает нормально, я не добавил PHP, но только javascript.
Моя единственная проблема - когда я пытаюсь удалить 1 запись, она удаляет весь файл cookie, поэтому я не могу найти, где это исправить.
Другая проблема заключается в том, чтобы вытащить идентификаторы из массива, и если бы кто-нибудь мог мне там помочь, это было бы оценено.
Вот мой код:
<?php
$globalCookie = '629';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script>
function createCookie(value)
{
if(document.cookie.search(value)==-1){
if(document.cookie.indexOf('games') == -1) {
document.cookie = 'games' + '=' + ',' + value + '; expires=Fri, 27 Jul 2011 02:47:11 UTC; path=/';
} else {
var deagle = document.cookie;
document.cookie = deagle + ',' + value + '; expires=Fri, 27 Jul 2011 02:47:11 UTC; path=/';
}
} else {
// Removes the cookie (making the clear cookie problem most probably
document.cookie = 'games' + '=' +escape( value ) + '; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/';
}
}
</script>
</head>
<body>
<script>
var globalCookie = <?=$globalCookie?>;
</script>
<?php
$stuff = $_COOKIE["games"];
$game = $globalCookie;
$pos = strpos($stuff, $game);
if ($pos === false) { ?>
<a href='javascript:;'><img id="mygame1" src='images/add_mygames.gif' border="0" onClick="createCookie(globalCookie); (this.src=='images/add_mygames.gif')?(this.src='images/remove_mygames.gif'):(this.src='images/add_mygames.gif');"></a>
<?
} else { ?>
<a href='javascript:;'><img id="mygame1" src='images/remove_mygames.gif' border="0" onClick="createCookie(globalCookie); (this.src=='images/remove_mygames.gif')?(this.src='images/add_mygames.gif'):(this.src='images/remove_mygames.gif');"></a>
<?
}
?>
</body>
</html>
Пока что я использую $ globalCookie вместо своих идентификаторов игр.
Еще раз спасибо за любую помощь!
Также файл cookie, который создается выше, выглядит так:
games=,621,256,637,57354
Единственный способ, которым я нахожу работу с explode (), так как, если запятая идет после числа, она не будет считаться первой