2017-06-28 2 views
0

Momentan erzeuge ich jedes Mal, wenn eine Seite neu geladen wird, eine Zufallszahl. Mit dieser Nummer ändere ich das Hintergrundbild meiner Website.Zufallszahl für x Zeit halten

Jede Seite neu zu laden ist ein wenig zu viel, Wie würde ich nur erlauben die Nummer zu ändern, alle x Minuten?

-Code in meinem Header ist jetzt einfach ..

$randombg = rand(1,29); 

echo '<style type="text/css"> 
<!-- 
#header-container{ 
background: url(images/header-bg' . $randombg . '.jpg) 50% 0; 
} 
--> 
</style>'; 
+0

Fügen Sie eine Sitzungsvariable hinzu, wenn die Zeit abläuft - neues Bild erstellen, Sitzungsvariable aktualisieren. –

+0

Als Alternative könnten Sie den Hintergrund alle fünf oder zehn Seitenwechsel ändern. – rossum

Antwort

1

ein Session-Variable hinzufügen Zeit seit dem letzten rand Aufruf übergeben zu verfolgen, auch müssen Sie mit bg num eine Variable speichern in einer Sitzung zu :

if (!isset($_SESSION['bg_expire_time']) || $_SESSION['bg_expire_time'] < time()) { 
    $_SESSION['bg'] = rand(1, 29); 
    $_SESSION['bg_expire_time'] = time() + 180; // + 3 minutes 
} 

echo '<style type="text/css"> 
<!-- 
#header-container{ 
background: url(images/header-bg' . $_SESSION['bg'] . '.jpg) 50% 0; 
} 
--> 
</style>'; 

natürlich nicht vergessen Sitzung mit session_start() zu starten.