Hvad så med dem her: if(($dag>=1 || $dag<=30) && $mon==12) //1-30 december elseif(($dag>=5 || $dag<=09) && $mon==04) //Påske elseif(($dag==26) && $mon==05) //Kronprins Frederik
Dette er standardbanner $banner="images/header.jpg";
Nej, det array du har lavet har de forkerte værdier. Det skal være stien til logoerne, lige som du selv nævnte
Dine "specielle" if-sætninger bliver du nødt til at beholde. Det færdige skal ca. se sådan her ud:
<?php //placer det her
$dag=date("d"); //dagen $mon=date("m"); //måneden $banner="images/header.jpg"; //sørger for at $banner altid er sat. Hvis datoen er speciel, bliver $banner overskrevet $specielledatoer = array( '31' => array('10' => 'images/header-halloween.jpg'), '03' => array('02' => 'images/header-hkh-benedikte.jpg'), '05' => array('02' => 'images/header-hkh-mary.jpg'), '16' => array('04' => 'images/header-hkh-margrethe.jpg'), '21' => array('04' => 'images/header-hkh-isabella.jpg') );
if(($dag>=1 || $dag<=30) && $mon==12) //1-30 december. Bemærk at værdien $banner får her, overskrives i nedenstående script, hvis det er 1. 2. 3. eller 4. søndag i advent. { $banner="images/header-jul.gif"; } elseif(($dag=='01' && $mon=='01') || ($dag==31 && $mon==12)) //31 decmber og 1 januar { $banner="images/header-newyear.gif"; } elseif(($dag>=05 && $dag<=09) && $mon=='04') //Påske { $banner="images/header-paaske.jpg"; }
if (array_key_exists($dag,$specielledatoer) && array_key_exists($mon,$specielledatoer[$dag])) { $banner = $specielledatoer[$dag][$mon]; }
?>
Al php koden indsætter du bare før alt andet i dit dokument, og derefter kalder du $banner det sted i dokumentet du har brug for det, lige som du viser.
Rækkefølgen det er skrevet i betyder at indholdet af $specielledatoer har første prioritet, dine if-sætninger har 2. prioritet og dit standard-banner har sidste prioritet. Så hvis der er noget specielt, en dag i påsken, vil scriptet ikke vise påske-banneret, men i stedet for banneret til den specielle dag.
Glemte noget: Da jeg har fjernet nytår fra dine if-sætninger, skal d. 31 december og 1. januar indsættes som specielle datoer:
'31' => array('12' => 'images/header-newyear.gif'), // Første del, af en af din if-sætninger, delt i to '01' => array('01' => 'images/header-newyear.gif') // Anden del, af en af din if-sætninger, delt i to
if(($dag>=1 || $dag<=30) && $mon==12) //1-30 december. Bemærk at værdien $banner får her, overskrives i nedenstående script, hvis det er 1. 2. 3. eller 4. søndag i advent. {
rettes til
if($mon==12) //1-31 december. Bemærk at værdien $banner får her, overskrives i nedenstående script, hvis det er 1. 2. 3. eller 4. søndag i advent, samt nytårsaften. {
Kan se at det eksempel jeg kom med før, ikke er det endelige jeg havde skrevet. (Eksperten har det irriterende problem, at den slet ikke poster hvad man skriver, efter et hvis tidsrum på same side). Jeg prøver lige igen:
00 til og med 07 vil tilfældigvis give det rigtige resultat, da de første otte tal har samme værdi i begge talsystemer. 08 09 er ikke gyldige værdier, og php vil betragte dem som værdien 0.
Det jeg mente var at der var to muligheder: - Den ene mulighed er det jeg skrev her http://www.eksperten.dk/spm/810116#rid6961326 - Den anden mulighed er, som jeg foreslog, er at fjerne de foranstillede nuller.
Det du har lavet er en blanding af begge, men den burde virke til trods for det ikke er helt optimalt.
Der er dog lige én ting du bør ændre - den sidste linje i arrayet skal ikke ende med et komma. Hvorfor den ikke give en fejl ved jeg ikke, men det skal altså se sådan her ud:
Ved mulighed 1, med foranstillede nuller, skal der: - Bruges $dag=(string)date("d"); og $mon=(string)date("m"); - Være anførselstegn omkring tallene (så de bliver opfattet som en streng).
Ved mulighed 2, uden foranstillede nuller, skal der: - Bruges $dag=date("j"); og $mon=date("n"); - Ikke nødvendigvis være anførselstegn omkring tallene.
date("d") er dagen på måneden, med foranstillede nuller. date("m") er måneden på året, med foranstillede nuller. date("j") er dagen på måneden, uden foranstillede nuller. date("n") er måneden på året, uden foranstillede nuller.
men det burde virke uanset hvilken du vælger. Problemet opstår først når du bruger tal som 01, 02, 03 osv. uden anførselstegn, hvilket jeg ikke var opmærksom på i mine første forslag, som smitten1 påpegede.
Så er det lukketid, der er frist for svar indtil Den 20/1 kl 12.00
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.