Вспоминая последний показанный баннер - PullRequest
1 голос
/ 07 февраля 2012

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

Реализация cookie:

<?php

$randIndex = rand(1,6);
if(!isset($_COOKIE["lastDispalyed"])){
    setcookie("lastDispalyed",$randIndex,time()+60*60*24);
}
else{       
    while($_COOKIE["lastDispalyed"] == $randIndex){
        $randIndex = rand(1,6);
    } 
    setcookie("lastDispalyed",$randIndex,time()+60*60*24);
} ?>

<img src="images/mainBanners/<?php echo $randIndex; ?>.JPG"/>

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Вы можете использовать переменную сеанса:

<?php

    session_start(); // <-- start session before outputting any HTML

    $randIndex = rand(1,6);

    if (!isset($_SESSION["lastDisplayed"])) {

        $_SESSION["lastDisplayed"] = $randIndex;

    } else {    

        while ($_SESSION["lastDisplayed"] == $randIndex) {
            $randIndex = rand(1,6);
        }

        $_SESSION["lastDisplayed"] = $randIndex;
    }

?>

Ссылка session_start () .

0 голосов
/ 07 февраля 2012

Установите переменную сеанса для идентификатора или URL-адреса баннера:

$_SESSION['lastDisplayed'] = $id; //could be the id of the banner you are displaying, or the file's url, whatever you have access too

, а затем проверьте его при переходе к отображению нового баннера.

...