Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
zmieniające się obrazki... wg kilku zasad
#1
Toungue 
siemka,

chcę zrobić na stronie zmieniający się baner /nie reklama/ mają to być tematyczne obrazki strony ładowane z servera...

założenia:
-obrazek ma się zmieniać losowo
-możliwość ustalenia co jaki czas ma się zmienić obrazek /powiedzmy co 15 min./
-zmiana obrazka ma być "globalna" nie wiem jak to ujść... po prostu żeby każda osoba odwiedzająca stronę w tym samym momencie widziała ten sam obrazek...

jest w sieci kilka skryptów, ale takiego nie znalazłem a sam jestem za świeży żeby tak przerobić...

czy da się to zrobić w samym php?
pomoże ktoś?
Odpowiedz
#2
Na pewno możesz wykluczyć że zrobisz to w samym php bo obrazek ma sie zmieniać co jakiś czas, php jest wykonywany na serwerze, gdy ja otworze strone i bede miał ją otwartą u siebie na kompie przez 5h to nic sie na niej nie zmieni Wink
Musisz użyć troszkę JS aby u mnie na kompie też zmiany były widoczne...
Możesz użyć funkcji rand() aby wylosować obrazek ale... niestety nie pomogę z tym aby każdy kto wchodzi na strone widział to samo.
Losując coś to każda osoba która wchodzi na strone i odświeża ja losuje na nowo. Musiał byś w jakiś sposób wylosować obrazek, zapisać w bazie jaki został wylosowany i potem gdy ja wchodze i 5 moich kolegów to strona selectem z bazy weźmie informacje o tym jaki obrazek został wylosowany w przeciągu ostatnich 15min i go wyświetli, za 15min znowu uruchomi się skrypt który wylosuje nowy. Podmieni wpis w bazie na nowo wylosowany link do obrazka poczym strona gdy ktoś na nią wejdzie znowu selectem pobierze informacje z bazy który obrazek wyświetlić. W ten sposób dało by się to zrobić, możesz np. na serwerach nazwa.pl tam wybrać sobie że co 15min ma uruchamiać skrypt który losuje obrazek rand() potem update robi w bazie i zapisuje wylosowany obrazek ale... założe się że inni użytkownicy tego forum wpadną na dużo lepsze pomysły od mojego...
Odpowiedz
#3
Jeżeli rozrzut czasowy ma wynosić 15min itp, to wypisuj taki obrazek na sztywno PHP. NIKT nie siedzi na pojedynczej podstronie 15 minut. Chyba, że to Facebook albo jakieś dobre Porno.
W jQuery też jest to proste. Walisz ajaxem do serwera i w odpowiedzi uzyskujesz ścieżkę do pliku, który wyświetlasz.

Wzorek potworek, który z lenistwa nie został tutaj cały zapisany:
Kod:
function poka() {
    $.ajax({
        complete: function(r) {
            $('#obr').src = ..........
            setTimeout('poka()', 150000);
        }
    });
}
$(function() {
setTimeout('poka()', 150000);
});
Odpowiedz
#4
skąd wiedziałem że pode mną napisze post kartofelek :p
Odpowiedz
#5
ojoj, ciemność widzę


Cytat:...NIKT nie siedzi na pojedynczej podstronie 15 minut. Chyba, że to Facebook albo jakieś dobre Porno...

w sumie to mój błąd, chyba trochę niejasno wyjaśniłem... dany obrazek/baner /główny banner strony/ będzie na stronie głównej /w szablonie/, czyli też na wszystkich podstronach...

głównie chodzi mi o to aby obrazek był "na nowo wylosowany" co te 15 min... niezależnie od tego czy ktoś odświeża stronę czy nie
np:
następuje losowanie 1: [00:00:00 - 00:15:00] gdy ktoś w tym czasie odświeży stronę zobaczy obrazek wylosowany w 1 losowaniu
następuje losowanie 2: [00:15:01 - 00:30:00] gdy ktoś w tym czasie odświeży stronę zobaczy obrazek wylosowany w 2 losowaniu
następuje losowanie 3: [00:30:01 - 00:45:00] gdy ktoś w tym czasie odświeży stronę zobaczy obrazek wylosowany w 3 losowaniu
'i tak w nieskończoność'

lepiej wytłumaczyć nie potrafię


co do tego kodu, to chyba chodzi o coś takiego:
Kod:
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<SCRIPT LANGUAGE= "JavaScript" type= "text/javascript">
<!-- Ukrycie przed przeglądarkami nie obsługującymi JavaScriptów
var liczbaBanerow = 3;
var timeout = 5;
function printBanner()
{
  num = Math.floor(Math.random() * liczbaBanerow + 1);
  name = "banner" + num + ".jpg";
  tekst = "<IMG SRC='" + name + "'>";
  document.getElementById("bannerLayer").innerHTML=tekst;
  timerID = setTimeout("printBanner()", timeout * 1000);
}
// Koniec kodu JavaScript -->
</SCRIPT>
</HEAD>
<BODY onLoad="printBanner()">
<DIV
  ID="bannerLayer"
  STYLE="
    visibility: visible;
    position: absolute;
    top: 20;
    left: 20;"
>
</DIV>
</BODY>

ten działa dobrze z tym, że nie wiem jak zrobić, żeby dla wszystkich był odwiedzających stronę w tym samym czasie obrazek był taki sam... a ten kod dla każdego odświeżenia losowanie zaczyna od nowa


ps. co sądzicie o tym kodzie? czy jest poprawny?, na razie nie znalazłem nic lepszego, ale wydaje mi się to trochę głupie... bo:
-podczas każdego odświeżenia strony odbywa się nowe losowanie /+ losowanie czasowe/trochę to zbędne...

chyba lepiej by było, jakby jedno losowanie odbyło się co 15 min /tylko jedno dla wszystkich odświeżeń stron?
???
Odpowiedz
#6
ciebie interesują 2 rzeczy: ile jest do kolejnej zmiany oraz potem co ile zmieniać baner. To pierwsze walisz z php. To drugie ustawiasz w js:

Kod:
function poka() {
...tutaj pobierz randomowy obrazek i go poka
...
setTimeout('poka()', 15000);
}
setTimeout('poka()', <?php echo &zaIleNastapiKolejnaZmiana; ?>

A co do randomowych obrazków. To oczywiście tworzysz sobie randomową tablicę w php i potem ją serwujesz na sztywno każdej osobie. To coś jak shuffle w playerach. Czyli mieszasz rekordy, a potem po prostu jedziesz jeden po drugim i masz random Smile
[/code]
Odpowiedz
#7
Cytat:ciebie interesują 2 rzeczy: ile jest do kolejnej zmiany oraz potem co ile zmieniać baner. To pierwsze walisz z php. To drugie ustawiasz w js:

Kod:
function poka() {
...tutaj pobierz randomowy obrazek i go poka
...
setTimeout('poka()', 15000);
}
setTimeout('poka()', <?php echo &zaIleNastapiKolejnaZmiana; ?>

A co do randomowych obrazków. To oczywiście tworzysz sobie randomową tablicę w php i potem ją serwujesz na sztywno każdej osobie. To coś jak shuffle w playerach. Czyli mieszasz rekordy, a potem po prostu jedziesz jeden po drugim i masz random Smile

... nie potrafię tego zrobić... jestem puki co świeży i jak widzę nie kompletny skrypt to ciężko mi ocenić jego działanie, wydaje mi się, że to nie jest dokładnie to o co mi chodzi /chyba nie ogarnie 3 i 4 punktu wymienionego niżej/

jeszcze raz główne założenia:
1. obrazek ma się zmieniać co 15 min
2. ma się zmieniać losowo /wczytywać z serwera/
3. nie ma się zmieniać za każdym odświeżeniem strony !!!
4. każda osoba wchodząca na stronę w tym samym czasie ma widzieć ten sam obrazek !!!

przejrzałem trochę skryptów i jak do tej pory nie znalazłem właściwego, zwykle problem leży w ty, że skrypt aktywuje się podczas odświeżenia strony, co sprawia, że przy każdym odświeżeniu rozpoczyna się odliczanie... a to z góry przekreśla 3 i 4 założenie, a są one dla mnie bardzo ważne...

więc jak to ominąć?
Odpowiedz
#8
no to chyba najprościej zrobić aby skrypt php wyświetlający stronę paczał która jest godzina i na jej podstawie wyświetlał obrazek
np jeżeli jest 10:00 to wyświetl obrazek1.jpg jeżeli jest po 10:15 wyświetl obrazek2.jpg

a nie! jednak też źle Big Grin

jeżeli ja wejde na stronę to od momentu mojego wejścia na stronę ma upłynąć 15min a co jeżeli po 5 minutach od mojego wejscia wejdzie jeszcze ktoś według czyjego czasu ma zmieniać obrazki? Big Grin (u każdego według jego czasu czy u wszystkich tak samo?[według czasu środkowoeuropejskiego])

chcesz aby po 15 minutach(u danej osoby) zmieniał się obrazek a jednocześnie dla wszystkich(obojętnie o której wejdą) żeby obrazek był taki sam?

te punkty same siebie wykluczają
punkt 4 wyklucza punkt 1

musiałbyś jeszcze raz sprecyzować punkt 4
jakby dosłownie potraktować punkt 4 to wychodzi na to że chcesz uzaskać to:
jeżeli 2 osoby wejdą o tej samej godzinie co do sekundy to logiczne że będą mieli takie same obrazki po upływie 15 min nawet gdy czas będziemy mierzyć lokalnie od momentu ich wejscia
Odpowiedz
#9
dla czego się wykluczają???????

nie wiem jak mógłby to jeszcze jaśniej opisać...

w sumie to chodzi mi dokładnie o to jak na tej stronce:
Kod:
www.bakabt.com

a tu ich banery /ale to mało ważne/:
Kod:
http://www.bakabt.com/banners.php

chcę zrobić dokładnie to samo, nie podawałem tego wcześniej bo baner na ich stronce zmienia się co ok 30 minut, więc trzeba trochę poczekać... jak się odświeża stronę to baner się nie zmienia, tylko co 30 min jest inny, dokładnie tego chcę Smile
z tym, że nie wiem na jakiej zasadzie u nich jest wybierany baner, a ja chcę, żeby był losowany
Odpowiedz
#10
Rozwiązanie już dostałeś
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  napisanie kilku podstron - pomoc mapcel 5 3,406 30-04-2012, 22:09
Ostatni post: kornell
  Obrazki w różnych przeglądarkach ania12345 8 4,332 15-04-2012, 03:26
Ostatni post: kornell
  Zmieniejace sie obrazki w logo..animacja [email protected] 3 3,107 31-01-2012, 19:56
Ostatni post: Ancik
  [PHP] Wypisanie kilku dat K0nio 0 1,196 29-12-2011, 21:30
Ostatni post: K0nio
  Obrazki nie wyświetlają się we wszystkich przeglądarkach.Co może być przyczyną? przemek2909 9 6,355 16-12-2011, 03:01
Ostatni post: magik83

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl