wechselnde Hintergrundgrafik pro Wochentag
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
backen
bild
brauchbarer anfang
code
date
datei
fehler
funktion
hintergrund
http
idee
image
jemand
liegen
montag
ordner
uhr
url
wochentag
-
Hallo,
ich hab mir überlegt, pro Wochentag eine andere Hintergrundgrafik einblenden zu lassen. Allerdings habe ich weder in meinen schlauen Büchern noch bei Google etwas passendes gefunden und mein PHP ist noch nicht so ausgereift, dass ich mir das aus dem FF was zusammenbasteln kann, wollte ich mal hier nachfragen, ob jemand einen Tipp für mich hat. Sprich, wo ich mich diesbezüglich erkundigen kann oder wie ich mich an dieses Script herantasten kann.
Ist es besser, wenn ich dieses Script über eine Datenbank laufen lasse oder ist dies dafür nicht nötig? Das schwierigste für mich ist immer, einen geeigneten Anfang zu finden :(
Ich hoffe, mir kann jemand hierbei weiterhelfen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Pseudocode:
Select Wochentag
Case: Montag
Hintergrund = Blau
Case Dienstag
Hintergrund = Grün
Case: Mittwoch
Hintergrund = Rosarotkariert
Case: Donnerstag
...
Case: Sonntag
Hintergrund = Weiss
Pseudocode Ende
Datenbank braucht man keine.
Tutorial gibts hier: http://de.php.net/manual/de/control-structures.switch.php
Beitrag zuletzt geändert: 19.5.2009 21:49:12 von karpfen -
Okay, das verwirrt mich jetzt doch ein wenig :D
Ich habe gerade mal so angefangen:
<?php $day = date('w'); if($day==0) { $zeit = date('H'); if($zeit>18) { $back = "images/back1.jpg"; } else { $back = "images/back2.jpg"; } } elseif($day==1) { $zeit = date('H'); if($zeit>18) { $back = "images/back3.jpg"; } else { $back = "images/back4.jpg"; } } elseif($day==2) { $zeit = date('H'); if($zeit>18) { $back = "images/back5.jpg"; } else { $back = "images/back6.jpg"; } } elseif($day==3) { $zeit = date('H'); if($zeit>18) { $back = "images/back7.jpg"; } else { $back = "images/back8.jpg"; } } elseif($day==4) { $zeit = date('H'); if($zeit>18) { $back = "images/back1.jpg"; } else { $back = "images/back2.jpg"; } } elseif($day==5) { $zeit = date('H'); if($zeit>18) { $back = "images/back3.jpg"; } else { $back = "images/back4.jpg"; } } elseif($day==6) { $zeit = date('H'); if($zeit>18) { $back = "images/back5.jpg"; } else { $back = "images/back6.jpg"; } } ?>
Nur weiß ich bisher noch nicht, ob das so funktionieren kann und auch noch nicht, wie ich das ganze als Hintergrundgrafik platzieren kann
Beitrag zuletzt geändert: 19.5.2009 22:28:02 von cam-city -
Na das ist doch schonmal ein brauchbarer Anfang!
Achte bitte drauf, dass du einige Fehler in deinem Code hast. So gibt es weder die Anweisung lseif, noch die Funktion day()!
Du hast jetzt den Pfad zur aktuellen Hintergrundgrafik in der Variable $back und kannst mittels CSS das Ganze einbinden:
background-image:url('<?php echo $back ?>');
Ich würde es wahrscheinlich ein wenig simpler machen, etwa so:
Du hast zwei Ordner, einmal day, da liegen alle Bilder vor 18 Uhr drin, einmal night, da liegen alle Bilder drin für nach 18 Uhr.
In den beidne Ordnern liegen die Bilder, folgendermaßen benannt:
- back1.jpg (für Montag)
- back2.jpg (für Dienstag)
- ... immer jeweils nach der Ausgabe von date("w"); benannt.
Und dann folgender Code:
<?php $hour = date("H"); if($hour < 18){ $path = "images/day/"; }else{ $path = "images/night/"; } $back = $path."back".date("w").".jpg"; ?>
gruß
ferdinand24
Beitrag zuletzt geändert: 19.5.2009 22:26:38 von ferdinand24 -
Ja, das mit den Fehlern ist mir auch gerade aufgefallen, als ich es getestet hab :D (hab meinen vorherigen Post daher editiert, damit der "richtige" code zu sehen ist).
Ja, das mit zwei Ordnern wäre sicherlich auch noch eine Idee. Also soweit klappt das ja auch schon.
Alles weitere werde ich dann wohl frühestens morgen Abend testen können ... muss nun nämlich Matratzenhorchen betreiben :D
Beitrag zuletzt geändert: 19.5.2009 22:34:29 von cam-city -
ferdinand24 schrieb:
Na das ist doch schonmal ein brauchbarer Anfang!
Achte bitte drauf, dass du einige Fehler in deinem Code hast. So gibt es weder die Anweisung lseif, noch die Funktion day()!
Das ist so nicht korrekt, elseif gibt es durchaus und ist auch brauchbar unter Umständen:
http://de.php.net/control-structures.elseif
Elseif hat Vorteile.
Man braucht nicht in den Else-Zweig einer If-Bedinung wieder eine If-Bedinung schreiben.
If (Bedingung1)
elseif(Bedingung2)
elseif(Bedingung3)
elseif(Bedingung4)
Tritt nun Bedinung 2 ein, so wird, im Gegensatz zu 4x If-Bedingung, alles nachfolgende nicht mehr überprüft.
Beitrag zuletzt geändert: 20.5.2009 8:27:16 von karpfen -
@karpfen: Ich glaube im Vorigen Code war das elseif einfach falsch geschrieben und ferdi hats korrigiert ... elseif an sich gibt es logischerweise.
PS: Noch eine Idee:
$days[0] = "img1.png";
$days[1] = "img2.png";
Und dann:
echo "background-image: url(".($hour<18?"day_":"night_").$days[$day].");";
Beitrag zuletzt geändert: 20.5.2009 8:34:08 von nikic -
Hm, ich hab das jetzt alles mal ausprobiert ... aber das mit dem Einbinden klappt nicht. Ich habe ja eine externe CSS-Datei für alle Formatierungen und da wird der Code gar nicht erst angenommen. Dann hab ich das direkt in den body-Tag platziert, geht aber auch nicht. Muss ich jetzt alles als PHP-Code machen, damit das funktioniert (also auch: echo "<html>"; etc.)?
-
<html> <head> <style type="text/css"> body { background-image: url(<?php echo $url_zum_bild; ?>); } </style> </head> <body> ...
Das müsste gehen. -
Na ja, so habe ich es ja ... nur eben in der externen CSS-Datei, weil ich nicht jedes Mal alle Seiten ändern möchte, wenn ich am Style etwas ändere. Aber das funktioniert halt nicht wirklich.
-
ho ;)
Ich weiß nicht, ob dir das hilft, aber lässt du den PHP Code vor dem CSS Code laden?
lg
Sincer
PS: Ob das ganze in einer externen CSS File lagert, oder nicht, sollte keine Rolle spielen.
Nur ist es meiner Ansicht nach wichtig, dass der PHP Code vor dem CSS Code bzw. vor dem includen der CSS Datei ausgeführt wird. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage