Rotierende Banner nach Tageszeit
Tuna
- php
Ich möchte meine Page en bisschen interessanter gestalten und möchte darum gern mehrere Banner haben die je nach Tageszeit rotieren sollen. Ich habe also 4 Banner, jedes soll am Tag 6 Stunden "dran sein", also von 0-6 Uhr z.B. Banner #1, danach dann #2 die nächsten 6 Stunden usw.
Ich weiß dank Bing-Suche schon dass man dies mit php machen kann, ich habe nur von php keine Ahnung darum muss ich hier um Hilfe bitten. Auf Google/Bing finde ich nur Codes für random image rotation, aber meine soll ja nicht random sein sondern eben geregelt.
Könnte mir jemand den benötigten Code dafür verraten?
@@Tuna:
nuqneH
Ich möchte meine Page en bisschen interessanter gestalten und möchte darum gern mehrere Banner haben die je nach Tageszeit rotieren sollen.
Da habe ich zuerst mal eine Frage: Wessen Tageszeit?
Qapla'
Da habe ich zuerst mal eine Frage: Wessen Tageszeit?
Qapla'
In dem Fall die des Servers.
Moin,
In dem Fall die des Servers.
Dann nimmst du dir eine serverseitige Skriptsprache, beispielsweise PHP und liest die (Uhr-)Zeit aus und entscheidest dann, welches Banner angezeigt werden soll. Dafür ist die Date-Funktion von PHP interessant.
Grüße Marco
Also nehme ich
string date ( string $format [, int $timestamp = time() ] )
und wo trag ich dann die Zeiten & die URLs der Bilddateien ein?
Hi
z.B.
<?php
if (date("h") <= 6) {
echo"<a href='MEIN_LINK_ZUM_BANNRR.htm'><img src='mein_baner1.jpg'></a>";
else if (date("h") usw) {
..
}
?>
Viele Grüße aus LA
@@ralphi:
nuqneH
if (date("h") <= 6) {
Dir ist entgangen, dass '10' < '6' ist?
Also so nicht.
Qapla'
ist doch nur das prinzip gemeint ;-)
wenn ichs mal hätte laufen lassen, hät ichs schon gemerkt
als ansatz zum rumprobieren langts
einfach mal anzeigen lassen:
$stunde=date("h");
echo $stunde;
oder einfach kucken unter:
date() kuckst du
Viele Grüße aus LA
Also ich hab damit rumprobiert versucht und so siehts aus aber...
<?php
if (date("H") <= 06) {
echo "<img src='http://URL/banner1.PNG'>";
else if (date("H") <= 12) {
echo "<img src='<img src='http://URL/banner2.PNG'>";
else if (date("H") <= 18) {
echo "<img src='<img src='http://URL/banner3.PNG'>";
else if (date("H") <= 12) {
echo "<img src='<img src='http://URL/banner4.PNG'>";
}
?>
...funktioniert nicht. Sämtlicher Code nach der ersten Bild-URL wird AUF der Seite angezeigt, inklusive der banner 2-4.
...funktioniert nicht. Sämtlicher Code nach der ersten Bild-URL wird AUF der Seite angezeigt, inklusive der banner 2-4.
speicherst du die datei unter datei.php oder .html / auf dem server oder offline (nur browser)?
Viele Grüße aus LA
speicherst du die datei unter datei.php oder .html / auf dem server oder offline (nur browser)?
Ich hab sie als datei.php sowohl auf dem browser als auch auf nem server getestet. Auf dem Server bekomme ich nichtmal das html angezeigt, nur den reinen Code.
Hier ist der komplette Code meiner Testdatei.
<html>
<head>
<title>Bla Blub</title>
</head>
<body>
<body background="URL:/test.PNG">
<?php
if (date("H") <= 06) {
echo "<img src='http://URL/test1.PNG'>";
}
else if (date("H") <= 12) {
echo "<img src='http://URL/test2.PN'>";
}
else if (date("H") <= 18) {
echo "<img src='http://URL/test3.PNG'>";
}
else if (date("H") <= 00) {
echo "<img src='http://URL/test4.PNG'>";
}
?>
</body>
</html>
2x body !?
Viele Grüße aus LA
2x body !?
Viele Grüße aus LA
zweites body entfernt, funtioniert immer noch nichts.
zweites body entfernt, funtioniert immer noch nichts.
probier einfach mal in einem texteditor
<?php
echo "PHP funktioniert";
?>
und speicher als test.php auf deinem server ab. bei xampp - verzeichnis htdocs
dann ruf auf http://deinserver/test.php
wenn du "PHP funktioniert" nicht siest, hast du den php-server nicht am laufen.
Viele Grüße aus LA
Tach!
speicherst du die datei unter datei.php oder .html / auf dem server oder offline (nur browser)?
Ich hab sie als datei.php sowohl auf dem browser als auch auf nem server getestet. Auf dem Server bekomme ich nichtmal das html angezeigt, nur den reinen Code.
Dann wirst du auf dem Server (mit dem derzeitigen Hostingpaket / der aktuellen Konfiguration) kein PHP ausführen können.
dedlfix.
Hallo,
Also ich hab damit rumprobiert versucht und so siehts aus aber...
<?php
if (date("H") <= 06) {
echo "<img src='http://URL/banner1.PNG'>";
else if (date("H") <= 12) {
echo "<img src='<img src='http://URL/banner2.PNG'>";
else if (date("H") <= 18) {
echo "<img src='<img src='http://URL/banner3.PNG'>";
else if (date("H") <= 12) {
echo "<img src='<img src='http://URL/banner4.PNG'>";
}
?>
>
> ...funktioniert nicht.
natürlich nicht, das Script startet wegen eines schwerwiegenden Syntaxfehlers ("Parse Error") nicht einmal. Hast du mal die Anzahl der öffnenden und schließenden Klammern verglichen? Eigentlich sollten es gleich viele sein ...
Ciao,
Martin
--
Denken ist wohl die schwerste Arbeit, die es gibt. Deshalb beschäftigen sich auch nur wenige damit.
(Henry Ford, amerikanischer Industriepionier)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
Hast du mal die Anzahl der öffnenden und schließenden Klammern verglichen? Eigentlich sollten es gleich viele sein ...
ups - mein fehler - syntaxfehler sind meine Spezialität ;-)
Viele Grüße aus LA
date("h")
gibt einen String zurück. Das ist ein Problem bei kleiner, größer, etc. intval(date("h"))
parst die Stunde zu einem Integer, den Du vergleichen kannst.
Desweiteren achte mal auf Deine Klammersetzung. Das dürfte überhaupt nicht funktionieren, was Du da gepostet hast.
Cheers,
Baba
und es funktioniert doch !!
jetzt hab ichs doch mal kurz gecheckt, wenn der 2te schon sagt date() kann man nicht mit ziffer - ifen
probierst du:
<?php
echo "start " . date("s");
if ( date("s") <20 ) {
echo " kleiner 20 " . date("s");
}
?>
hätte mich auch gewundert - einige alte programme laufen bei mir so
Viele Grüße aus LA
Tach!
jetzt hab ichs doch mal kurz gecheckt, wenn der 2te schon sagt date() kann man nicht mit ziffer - ifen
Genau genommen ist das date() hier vernachlässigbar. Man muss nur wissen, dass es einen String zurückliefert. Und dann kann man Vergleichsversuche auch mit String-Literalen versus Integer-Literalen durchführen. Das Ergebnis wird dann so sein, wie es die PHP type comparison tables vorhersagen.
dedlfix.
»»Das Ergebnis wird dann so sein, wie es die PHP type comparison tables vorhersagen.
ich finde die deklarationen von vars in php und JS eh sehr frei. mal schnell mit ner 1 multipliziert und man hat aus nem string nen integer.
in VB6 und anderen gehts da strikter zu - dafür aber übersichtlicher - find ich
Viele Grüße aus LA
Tach!
ich finde die deklarationen von vars in php und JS eh sehr frei. mal schnell mit ner 1 multipliziert und man hat aus nem string nen integer.
in VB6 und anderen gehts da strikter zu - dafür aber übersichtlicher - find ich
Dafür muss man im Querystring oder per POST-Werte enthaltene Zahlen erst "aufwendig" in einen Zahlentyp parsen. PHP erledigt das nebenbei im Hintergrund, so dass man selbst einige Arbeitsschritte sparen kann. Es hat alles manchmal Vorteile und manchmal Nachteile.
dedlfix.
OK cool find ich auch ich versteh nur kein Wort.
Kann mir jemand mit dem Code helfen?
Tach!
date("h")
gibt einen String zurück. Das ist ein Problem bei kleiner, größer, etc.intval(date("h"))
parst die Stunde zu einem Integer, den Du vergleichen kannst.
Man muss es nicht so kompliziert machen, PHP kann selbständig konvertieren. Zum einen nähme ich G, weil das 24 Stunden ohne führende 0 ist, aber H (mit führender 0) passt auch, weil der Vergleich von '06' (string) und 6 (int) ebenfalls true ergibt. Spricht: Zahlen in Strings sind ziemlich problemlos mit echten Zahlen vergleichbar.
Anders als bei einer literal notierten Integerzahl mit führender 0 wird bei Zahlenwerten in Strings diese führende 0 nicht als Oktalzahl-Indikator gewertet. Deswegen ergibt auch ein date('H') was in der neunten Stunde eines Tages '08' zurückliefert keine stillschweigende Konvertierung zu 0. Ein literales 08 hingegen ist eine ungültige Oktalzahl (wird wie 09 oder 0800 etc. zu 0 konvertiert). Deswegen sollte man führende Nullen lieber weglassen, auch wenn sie damit mit anderen zweistelligen Zahlen untereinander geschrieben vielleicht schöner formatiert aussehen.
dedlfix.
Hallo,
Kürzer:
<?php
echo"<a href='MEIN_LINK_ZUM_BANNER.htm'><img src='mein_banner" . (int)(date('H')/6) . ".jpg'></a>";
?>
vg ichbinich
Om nah hoo pez nyeetz, ichbinich!
Kürzer:
<?php
echo"<a href='MEIN_LINK_ZUM_BANNER.htm'><img src='mein_banner" . (int)(date('H')/6) . ".jpg'></a>";
?>
schöner:
`<a href="MEIN_LINK_ZUM_BANNER.htm"><img src="mein_banner<?=[code lang=php](int)(date('H')/6)`{:.language-html}?>.jpg"></a>
[/code]
Matthias
--
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen [Ara--1 und Aragorn](http://selfhtml.apsel-mv.de/java-javascript/index.php?buchstabe=A#ara--1).
![](http://www.billiger-im-urlaub.de/kreis_sw.gif)
Hallo,
schöner:
<a href="MEIN_LINK_ZUM_BANNER.htm"><img src="mein_banner<?=[code lang=php](int)(date('H')/6)
?>.jpg"></a>
[/code]
In der Tat.
vg ichbinich