Header alle 5 Minuten wechseln

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
dominik90
Mitglied
Beiträge: 136
Registriert: 22.09.2005 16:16

Header alle 5 Minuten wechseln

Beitrag 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
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

Präzisiere das Ganze mal - bzw. poste/verlinke mal den Codeschnipsel, wie Du bisher den Headerwechsel bewerkstelligst.
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag 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.
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag 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];
dominik90
Mitglied
Beiträge: 136
Registriert: 22.09.2005 16:16

Beitrag 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
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag von Xwitz »

Gibt es einen bestimmten Grund warum Du JavaScript benutzt? Sonnst nimm doch php und die Lösung von Banger.
dominik90
Mitglied
Beiträge: 136
Registriert: 22.09.2005 16:16

Beitrag 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 :(
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag 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
Xwitz
Mitglied
Beiträge: 1104
Registriert: 21.06.2005 21:41

Beitrag 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.
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“