Seite 1 von 3

Header alle 5 Minuten wechseln

Verfasst: 22.08.2006 19:09
von dominik90
Ja, und zwar wechseln meine header 8derzeit über 40) bei jedem seitenwechsel.

Ich wills jedoch so machen, das der nur alle 5 Minuten wechselt.

Am besten das dann immer bei allen der selbe ist und nach 5 Minuten wieder ein neuer kommt (also wenn man dann dei seite neu updatet, nicht, das die auch ohne seitenupdate wechseln)

Gibts da irgendeine Möglichkeit?

Wenns geht ohne Datenbank.

LG Dominik

Verfasst: 22.08.2006 19:16
von Banger
Präzisiere das Ganze mal - bzw. poste/verlinke mal den Codeschnipsel, wie Du bisher den Headerwechsel bewerkstelligst.

Verfasst: 22.08.2006 19:50
von Xwitz
Bei jedem Seitenaufruf die Zeit ermitteln und prüfen ob seit einer gespeicherten Zeit 5 Minuten vergangen sind, wenn ja, dann header wechseln und die aktuelle Zeit speichern bzw. zu der gespeicherten Zeit 5 Minuten addieren. Die Zeit müßte man aber in einer Datei oder Datenbank speichern denke ich.

Mir ist zumindest nicht bekannt wie man innerhalb von php eine Variable aufrufübergreifend/sessionübergreifend global speichern kann.

Verfasst: 22.08.2006 20:25
von Banger
Xwitz hat geschrieben:Mir ist zumindest nicht bekannt wie man innerhalb von php eine Variable aufrufübergreifend/sessionübergreifend global speichern kann.
Naja, man kann ja von einer festen Zeitbasis ausgehen.

Beispiel:

Code: Alles auswählen

$headers = array(
    'header1',
    'header2',
    'header3',
);

$diff_min = 5; #Zeitdifferenz in Minuten

$key = floor(time()/(60*$diff_min))%(count($headers));

$show_header = $headers[$key];

Verfasst: 22.08.2006 23:32
von dominik90
Zurzeit benutz ich folgendes:

Code: Alles auswählen

<script language="JavaScript" type="text/javascript">
<!--
var image = new Array();
var link  = new Array();

/** Hier die (Zufalls)-Bilder eintragen. **/

image[1] = 'http://www.coaster-park.de/forum/zufall/1.jpg';
image[2] = 'http://www.coaster-park.de/forum/zufall/2.jpg';
image[3] = 'http://www.coaster-park.de/forum/zufall/3.jpg';
image[4] = 'http://www.coaster-park.de/forum/zufall/4.jpg';
image[5] = 'http://www.coaster-park.de/forum/zufall/5.jpg';
image[6] = 'http://www.coaster-park.de/forum/zufall/6.jpg';
image[7] = 'http://www.coaster-park.de/forum/zufall/7.jpg';
image[8] = 'http://www.coaster-park.de/forum/zufall/8.jpg';
image[9] = 'http://www.coaster-park.de/forum/zufall/9.jpg';
image[10] = 'http://www.coaster-park.de/forum/zufall/10.jpg';
image[11] = 'http://www.coaster-park.de/forum/zufall/11.jpg';
image[12] = 'http://www.coaster-park.de/forum/zufall/12.jpg';
image[13] = 'http://www.coaster-park.de/forum/zufall/13.jpg';
image[14] = 'http://www.coaster-park.de/forum/zufall/14.jpg';
image[15] = 'http://www.coaster-park.de/forum/zufall/15.jpg';
image[16] = 'http://www.coaster-park.de/forum/zufall/16.jpg';
image[17] = 'http://www.coaster-park.de/forum/zufall/17.jpg';
image[18] = 'http://www.coaster-park.de/forum/zufall/18.jpg';
image[19] = 'http://www.coaster-park.de/forum/zufall/19.jpg';
image[20] = 'http://www.coaster-park.de/forum/zufall/20.jpg';
image[21] = 'http://www.coaster-park.de/forum/zufall/21.jpg';
image[22] = 'http://www.coaster-park.de/forum/zufall/22.jpg';
image[23] = 'http://www.coaster-park.de/forum/zufall/23.jpg';
image[24] = 'http://www.coaster-park.de/forum/zufall/24.jpg';
image[25] = 'http://www.coaster-park.de/forum/zufall/25.jpg';
image[26] = 'http://www.coaster-park.de/forum/zufall/26.jpg';
image[27] = 'http://www.coaster-park.de/forum/zufall/27.jpg';
image[28] = 'http://www.coaster-park.de/forum/zufall/28.jpg';
image[29] = 'http://www.coaster-park.de/forum/zufall/29.jpg';
image[30] = 'http://www.coaster-park.de/forum/zufall/30.jpg';
image[31] = 'http://www.coaster-park.de/forum/zufall/31.jpg';
image[32] = 'http://www.coaster-park.de/forum/zufall/32.jpg';
image[33] = 'http://www.coaster-park.de/forum/zufall/33.jpg';
image[34] = 'http://www.coaster-park.de/forum/zufall/34.jpg';
image[35] = 'http://www.coaster-park.de/forum/zufall/35.jpg';
image[36] = 'http://www.coaster-park.de/forum/zufall/36.jpg';
image[37] = 'http://www.coaster-park.de/forum/zufall/37.jpg';
image[38] = 'http://www.coaster-park.de/forum/zufall/38.jpg';
image[39] = 'http://www.coaster-park.de/forum/zufall/39.jpg';
image[40] = 'http://www.coaster-park.de/forum/zufall/40.jpg';
image[41] = 'http://www.coaster-park.de/forum/zufall/41.jpg';
image[42] = 'http://www.coaster-park.de/forum/zufall/42.jpg';
image[43] = 'http://www.coaster-park.de/forum/zufall/43.jpg';
image[44] = 'http://www.coaster-park.de/forum/zufall/44.jpg';
image[45] = 'http://www.coaster-park.de/forum/zufall/45.jpg';
image[46] = 'http://www.coaster-park.de/forum/zufall/46.jpg';
image[47] = 'http://www.coaster-park.de/forum/zufall/47.jpg';
image[48] = 'http://www.coaster-park.de/forum/zufall/48.jpg';
image[49] = 'http://www.coaster-park.de/forum/zufall/49.jpg';
image[50] = 'http://www.coaster-park.de/forum/zufall/50.jpg';
image[51] = 'http://www.coaster-park.de/forum/zufall/51.jpg';
image[52] = 'http://www.coaster-park.de/forum/zufall/52.jpg';
image[53] = 'http://www.coaster-park.de/forum/zufall/53.jpg';


/** Hier die (Zufalls)-Links eintragen. **/

link[1] = 'http://www.coaster-park.de/forum/index.php';
link[2] = 'http://www.coaster-park.de/forum/index.php';
link[3] = 'http://www.coaster-park.de/forum/index.php';
link[4] = 'http://www.coaster-park.de/forum/index.php';
link[5] = 'http://www.coaster-park.de/forum/index.php';
link[6] = 'http://www.coaster-park.de/forum/index.php';
link[7] = 'http://www.coaster-park.de/forum/index.php';
link[8] = 'http://www.coaster-park.de/forum/index.php';
link[9] = 'http://www.coaster-park.de/forum/index.php';
link[10] = 'http://www.coaster-park.de/forum/index.php';
link[11] = 'http://www.coaster-park.de/forum/index.php';
link[12] = 'http://www.coaster-park.de/forum/index.php';
link[13] = 'http://www.coaster-park.de/forum/index.php';
link[14] = 'http://www.coaster-park.de/forum/index.php';
link[15] = 'http://www.coaster-park.de/forum/index.php';
link[16] = 'http://www.coaster-park.de/forum/index.php';
link[17] = 'http://www.coaster-park.de/forum/index.php';
link[18] = 'http://www.coaster-park.de/forum/index.php';
link[19] = 'http://www.coaster-park.de/forum/index.php';
link[20] = 'http://www.coaster-park.de/forum/index.php';
link[21] = 'http://www.coaster-park.de/forum/index.php';
link[22] = 'http://www.coaster-park.de/forum/index.php';
link[23] = 'http://www.coaster-park.de/forum/index.php';
link[24] = 'http://www.coaster-park.de/forum/index.php';
link[25] = 'http://www.coaster-park.de/forum/index.php';
link[26] = 'http://www.coaster-park.de/forum/index.php';
link[27] = 'http://www.coaster-park.de/forum/index.php';
link[28] = 'http://www.coaster-park.de/forum/index.php';
link[29] = 'http://www.coaster-park.de/forum/index.php';
link[30] = 'http://www.coaster-park.de/forum/index.php';
link[31] = 'http://www.coaster-park.de/forum/index.php';
link[32] = 'http://www.coaster-park.de/forum/index.php';
link[33] = 'http://www.coaster-park.de/forum/index.php';
link[34] = 'http://www.coaster-park.de/forum/index.php';
link[35] = 'http://www.coaster-park.de/forum/index.php';
link[36] = 'http://www.coaster-park.de/forum/index.php';
link[37] = 'http://www.coaster-park.de/forum/index.php';
link[38] = 'http://www.coaster-park.de/forum/index.php';
link[39] = 'http://www.coaster-park.de/forum/index.php';
link[40] = 'http://www.coaster-park.de/forum/index.php';
link[41] = 'http://www.coaster-park.de/forum/index.php';
link[42] = 'http://www.coaster-park.de/forum/index.php';
link[43] = 'http://www.coaster-park.de/forum/index.php';
link[44] = 'http://www.coaster-park.de/forum/index.php';
link[45] = 'http://www.coaster-park.de/forum/index.php';
link[46] = 'http://www.coaster-park.de/forum/index.php';
link[47] = 'http://www.coaster-park.de/forum/index.php';
link[48] = 'http://www.coaster-park.de/forum/index.php';
link[49] = 'http://www.coaster-park.de/forum/index.php';
link[50] = 'http://www.coaster-park.de/forum/index.php';
link[51] = 'http://www.coaster-park.de/forum/index.php';
link[52] = 'http://www.coaster-park.de/forum/index.php';
link[53] = 'http://www.coaster-park.de/forum/index.php';


/** Ab hier nichts mehr ändern! **/

var num = Math.random();
var ran = Math.floor((image.length - 1) * num) + 1;

document.write('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" /></a>');
//-->
</script>
Ich möchte es dann so haben, das alle 5 Minuten ein neues Bild kommt.

Also bei allen dann innerhalb der 5 Minuten das selbe.
Das z.b. um 13.00 Bild 1 kommt um 13.05 Bild 2 um 13.10 Bild 3...

wenn user 1 jetzt um 13.03 kommt sieht er also noch 2 Minuten Bild 1 dannach (wenn er die seite aktualisiert) kommt Bild 2 (vorausgesetzt er aktualisiert die seite zwischen 13.05 und 13.09...

MFG Dominik

Verfasst: 23.08.2006 16:20
von Xwitz
Gibt es einen bestimmten Grund warum Du JavaScript benutzt? Sonnst nimm doch php und die Lösung von Banger.

Verfasst: 23.08.2006 19:58
von dominik90
Ja, weil ich PHP leider im Design nicht benutzen kann, habe auch schonden mod probiert, dass ich php benutzen kann, hats bei mir aber leider nicht getan :(

Verfasst: 23.08.2006 20:44
von easygo
Interessant! Die Rechnung aus dem Beispiel Code
Banger hat geschrieben:$diff_min = 5; #Zeitdifferenz in Minuten

$key = floor(time()/(60*$diff_min))%(count($headers));
würde aber so nicht aufgehn. Unix-Timestamp / 300 ? :-? easy

Verfasst: 23.08.2006 22:43
von Xwitz
dominik90 hat geschrieben:Ja, weil ich PHP leider im Design nicht benutzen kann
Das verstehe ich nicht.
easygo hat geschrieben:Unix-Timestamp / 300 ?
Das gibt an wie oft seit Beginn der "Zeitrechung" 5 Minuten vergangen sind. Läßt man sich über Modulo den Rest der Division dieser Zahl durch die Anzahl der möglichen Header ausgeben, bekommt man eine Zahl die aller 5 Minuten um 1 erhöht wird (bis zur Anzahl der Header - 1 dann wieder 0) und immer zwischen einschließlich 0 und der Anzahl der Header - 1 liegt. Genau das was man braucht.

Verfasst: 23.08.2006 23:53
von Banger
Xwitz hat geschrieben:
easygo hat geschrieben:Unix-Timestamp / 300 ?
Das gibt an wie oft seit Beginn der "Zeitrechung" 5 Minuten vergangen sind. Läßt man sich über Modulo den Rest der Division dieser Zahl durch die Anzahl der möglichen Header ausgeben, bekommt man eine Zahl die aller 5 Minuten um 1 erhöht wird (bis zur Anzahl der Header - 1 dann wieder 0) und immer zwischen einschließlich 0 und der Anzahl der Header - 1 liegt. Genau das was man braucht.
Juchhu! Wenigstens einer, der noch Mathe kann :)

@dominik: meine PHP-Lösung lässt sich auch auf JavaScript umschreiben - ich schaue mal, ob ich morgen die Zeit dazu finde.