Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]wyswietlenie obrazka raz na dzien
sejgo
post 4.03.2010, 18:32:00
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


Witam

Mam takie zapytanie i prosbe

jezeli mam obrazek /baner/ ktory wyswietlam na stronie głownej i jak osoba wejdzie na stronę to wyswietla sie ten obrazek

i mianowicie chodzi mi o to by ten obrazek byl wyswietlany tylko raz na dzien dla jednego uzytkownika

czyli

uzytkownik chodzi na strone wyswietla sie obrazek , ale jezeli wejdzie kolejny raz tego samego dnia obrazek juz sie nie pojawia i nie wyswietla, i w następnym dniu jezeli uzytkownik ten sam wejdzie  znowu wyswietla sie obrazek tylko raz na dzien

myslalem ze mozna by bylo to zorbic za pomoco cookies aktywnym na 24 godziny.

wiec prosze o pomoc w jaki sposob cos takiego napisac i jaka by to mialo formę.

zapis ip do bazy danych i następnie sprawdzanie czy takie ip jest zapisane wypada z gry, gdyz w ten sspossob mocno obciazac bedzie baze non stop zapytaujac w niej o ip.




prosze o pomoc i z gory dziękuje

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
MateuszS
post 4.03.2010, 18:57:06
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


COOKIE to dobry pomysł, musisz ustawić cookie i jezeli cookie istnieje to nie wyswietlasz tego obrazka, najlepiej zeby cookie wygasalo o 24:00, wiec musisz napisac odpowiednia funkcje ktora policzy sekundy do 24:00 lub skorzystać z już istniejących opisanych w manualu, dodatkowo zabezpiecz to z poziomu bazy danych gdyby ktos usunal ciacha (tez dobrym pomyslem jest uwierzytelnienie)

Ten post edytował MateuszScirka 4.03.2010, 19:04:47


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
sejgo
post 4.03.2010, 19:17:40
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


wiem jak stworzyc nastęujące rzeczy

<?php
//tworzymy plik cookie i czasie istnienia 1h = 3600 sekund
setcookie("baner", "tak", time()+3600);
?>

<?php
//Wyświetlamy zawartość naszych ciasteczek
echo $_COOKIE['baner'];
?>


 i teraz pytanie jak sprawdzic

jeżeli dodane jest juz ciasteczko to nie dodawaj ponownie jego ( bo dodajac caly czas ciasteczko to rowniez aktualizuje czas wygaśnięcia)

oraz jezeli niema ciasteczka to wyswietlaj obrazek/baner/ jezeli natomiast jest ciasteczko to nie pokazuj banera




prosze o jakies podowiedzi lub kod.

Go to the top of the page
+Quote Post
MateuszS
post 4.03.2010, 19:19:48
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


  1.  
  2. if(isset($_COOKIE["baner"]))
  3. echo "cookie juz istnieje, nie zmienie go"
  4. else
  5. setcookie(//itd


Ten post edytował MateuszScirka 4.03.2010, 19:20:20


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
sejgo
post 4.03.2010, 19:56:07
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


zrobilem cos takiego




<?php
if(isset($_COOKIE["baner"]))
echo "cookie juz istnieje, nie zmienie go";
else
setcookie("baner", "tak", time()+3600);


if($_COOKIE['baner'] == "tak")
{
echo"brak banera";
}else
echo" tutaj baner";
}
?>

Odczytanie cookies bannera i porownanie z wartoscia: tak jezeli wartosc jest inna lub jej nie ma  to wyswietla wyswietla napis  tutaj baner jezeli jest wpis z porownaniem to wyswiwetla brak banera.




ale cos nie che mi tu chodzi wyswiwtla blad

czy robie cos zle




Go to the top of the page
+Quote Post
MateuszS
post 4.03.2010, 19:59:12
Post #6





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


jaki blad? wystarczy pod tym pierwszym warunkiem wyswietlic banner (tym z isset),


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
DiamondPir
post 28.10.2010, 13:40:03
Post #7





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


a znajdę gdzieś gotowy przykład takiego rozwiązania razem z napisanymi plikami cookie?
Go to the top of the page
+Quote Post
modern-web
post 28.10.2010, 14:45:40
Post #8





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


COOKIE to jedno ale to za mało.
Przecież doba ma 24h, a COOKIE odlicza te 24h od wywołania skryptu.
A co jeśli internauta wszedł na stronę o godzinie 23:30; Wtedy kolejny obrazek zobaczy następnego dnia o ten samej porze.
Nie wiem czy jest w tym jakikolwiek sens... Jak na moje oko COOKIE powinno być automatycznie unieważnione o 00:00.
Byłoby to o wiele rozsądniejsze rozwiązanie.

Ten post edytował modern-web 28.10.2010, 14:46:22


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
DiamondPir
post 29.10.2010, 19:01:47
Post #9





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 12.09.2010

Ostrzeżenie: (0%)
-----


a nie ma do tego jakiegoś skryptu gotowego?
Go to the top of the page
+Quote Post
modern-web
post 29.10.2010, 19:31:07
Post #10





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


Na tę chwilę przychodzi mi do głowy tylko jedno rozwiązanie...
Ale żeby ono działało musisz mieć serwer z obsługą Cron-a.
Wtedy możesz raz dziennie o 00:00 (24:00) wywołać skrypt, który będzie generował nowe identyfikatory / unieważniał ciasteczka.

Tak jak masz fragment:

  1. if(isset($_COOKIE["baner"]))


Cron zastępowałby tym:

  1. if(isset($_COOKIE["baner1856fsolKNDłasPnAS"]))


Jak widzisz ciasteczko wygląda już zupełnie inaczej smile.gif a co za tym idzie użytkownik zobaczy nowy obrazek bo takiego COOKIE jeszcze nie uzyskał.


Nie wiem jak wygląda cały Twój skrypt, więc trudno jest mi Tobie podać bardziej "przejrzysty" przykład :/

Pozdrawiam.


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Wicepsik
post 29.10.2010, 19:35:23
Post #11





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(sejgo @ 4.03.2010, 19:32:00 ) *
zapis ip do bazy danych i następnie sprawdzanie czy takie ip jest zapisane wypada z gry, gdyz w ten sspossob mocno obciazac bedzie baze non stop zapytaujac w niej o ip.

non stop, czyli ile? Dużo wejść na stronę masz? Zawsze możesz do sesji zapisać link do obrazka danego użytkownika

  1. if(!isset($_SESSION['banner'])){
  2. $result = mysql_fetch_array(mysql_query('zapytanie'));
  3.  
  4. $_SESSION['banner'] = $result['img'];
  5. }else{
  6. echo $_SESSION['banner']; // <a href="http://twojserwer.pl/banner.jpg" target="_blank">http://twojserwer.pl/banner.jpg</a>
  7. }


--------------------
Go to the top of the page
+Quote Post
modern-web
post 29.10.2010, 20:22:01
Post #12





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


Tylko wiesz... To nie rozwiązuje całego problemu ;p


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Wicepsik
post 29.10.2010, 21:06:39
Post #13





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. /*
  2.  * tabela banner
  3.  * ip - varchar
  4.  * time - datetime
  5.  * img - varchar
  6.  */
  7.  
  8. if(!isset($_SESSION['banner'])){
  9. $result = mysql_query('SELECT ip, UNIX_TIMESTAMP(time) as time, img FROM banner WHERE ip = "'.$_SERVER['REMOTE_ADDR'].'"'));
  10. if( mysql_num_rows($result) > 0 ){
  11. $res = mysql_fetch_array($result);
  12. $_SESSION['banner']['img'] = $res['img'];
  13. $_SESSION['banner']['time'] = $res['time'];
  14. }else{
  15. mysql_query('INSERT INTO banner VALUES ("'.$_SERVER['REMOTE_ADDR'].'", NOW(), "http://linkdobannera.pl/"');
  16. }
  17. }else{
  18. if($_SESSION['banner']['time'] < time()){
  19. UPDATE('UPDATE banner SET time = NOW(), img = "http://linkdonowegoobrazka.pl/" WHERE ip = "'.$_SERVER['REMOTE_ADDR'].'"');
  20. unset($_SESSION['banner']);
  21. }else{
  22. echo $_SESSION['banner']['img'];
  23. }
  24. }


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:48