Autor Zpráva
MichalMB
Profil
Dobrý deň.
Potreboval by som kód na zmenu bannerov. Banner by sa mal každých 10 min. na stránke meniť. Za odpovede ďakujem.
Str4wberry
Profil
PHP funkcí date zjistíš aktuální čas – potom záleží na počtu bannerov, které se mají střídat. Pokud by jich bylo třeba šest, hezky si rozdělíš hodinu na desetiminutové intervaly a pro každý z nich vypíšeš potřebný kód.
Dranel
Profil
MichalMB:
Doporučuji nejdříve zjistit dobu trvání, kdy je zákazník na stránce. Obávám se, že není moc stránek, na kterých by zůstal někdo 10 minut.
alda
Profil
Dranel:
To je úplně jedno ne?
Když zákazník chytne např. dobu 12:30 tak tam bude mít banner 3.
A když chytne dobu např. 12:50 tak tam bude mít banner 5.

MichalMB:

Niečo som ti skúsil napísať, keď bude napríklad rozmedzí od 12:01 do 12:10 tak tam bude banner 1 a keď bude rozmedzí od 12:10 do 12:20 tak tam bude banner 2 a tak ďalej až do 12:59 a potom repete.
Tu to máš:

<?
$minuty = Date(i); // Uložíme si do přoměnné $minuty aktuální čas (minuty)
if($minuty <= "10" and $minuty > "00"){echo "<a href=\"tvůj odkaz na banner1\"><img src=\"url obrázku\"></a>";}  // Dáme podmienku že ak bude 00 minút až 10 minút bude sa zobrazovať banner 1 .. myslím že zvyšok ti opisovať nemusím ...

if($minuty <= "20" and $minuty > "10"){echo "<a href=\"tvůj odkaz na banner2\"><img src=\"url obrázku\"></a>";}
if($minuty <= "30" and $minuty > "20"){echo "<a href=\"tvůj odkaz na banner3\"><img src=\"url obrázku\"></a>";}
if($minuty <= "40" and $minuty > "30"){echo "<a href=\"tvůj odkaz na banner4\"><img src=\"url obrázku\"></a>";}
if($minuty <= "50" and $minuty > "40"){echo "<a href=\"tvůj odkaz na banner5\"><img src=\"url obrázku\"></a>";}
if($minuty <= "59" and $minuty > "50"){echo "<a href=\"tvůj odkaz na banner6\"><img src=\"url obrázku\"></a>";}
?>
petr 6
Profil
alda:
V každé podmínce (vyjma té poslední) máš redundantní rovnítko. Pokud bude například 12:10, vypíšou se dva bannery. Zajímavé, že v té poslední podmínce už to nemáš.

Takže buď upravit na
if($minuty < 20 and $minuty >= 10)

nebo
if($minuty <= 20 and $minuty > 10)

nebo
if($minuty <= 19 and $minuty >= 10)

(úvozovky jsou taky zbytečné)

A nejlépe použít if-elseif, případně switch s úpravou čísla udávajícího minuty.

Bohužel požadavky MichalMB jsou tak široce formulované, že si ovšem nejsem jistý, jestli to vůbec je to, co vlastně chtěl.
alda
Profil
petr 6:
Díky za připomínku to mi nedošlo už je to opraveno.
petr 6
Profil
alda:
Díky za připomínku to mi nedošlo už je to opraveno.
Bouhžel je to opraveno lajdácky. Viz moje poznámka v první závorce. Co to vypíše ve 12:00?

(Taky bych doporučoval zkontrolovat klávesu s interpunkční čárkou, nejspíš ti nějak blbne.)
marcus33cz
Profil
alda: Neber si to osobně, ale tohle řešení mi přijde dost "ošklivé". Počítá to jenom s možností šesti bannerů (co když dvě místa budou neobsazená, pak se na 20 minut bude zobrazovat místo banneru prázdná plocha respektive špatný odkaz).

Nemluvě o tom, že, jak už bylo řečeno, se nehodí používat shorttags a na toto se nehodí if (zbytečné vyhodnocování) a lepší je switch.

MichalMB: Má se měnit každých 10 minut globálně (tzn. nezávisle na uživatelích) nebo potom, co uživatel na stránkách 10 minut stráví (tzn. každému uživateli se může zobrazovat jiný banner)

Roli hraje i to, jestli chceš ty bannery střídat náhodně nebo v nějakém sledu. Na oboje by se ale celkem chytře dala použít kombinace CRON pouštěný každých minut a nějaký textový soubor, v němž bude odkaz na banner.
Imrocomics
Profil *
MichalMB predpokladám že tie bannery chceš mať ako reklamu, nebolo by v tom prípade jednoduchšie striedať tie bannery náhodne s každým prístupom? Možno sa mýlim, ale aj toto je alternatíva a určite jednoduchšia.

Povedzme že máš v zložke tri bannery - mojbanner1.png, mojbanner2.png, mojbanner3.png.

$ktorybanner = rand(1,3);


a takto ich zobrazíme náhodne:
echo '<img src="mojbanner'.$ktorybanner.'" />';

Pri každom prístupe užívateľa (nezáleží ktorého užívateľa) sa banner zmení. Nemusíš riešiť otázky s časom, účel to splní.
Pekný deň.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: