![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien problem, chodzi mi o to że jeśli user obejrzy 3 filmy, albo zagra w 3 gry to includuje się okienko do płatności online. Myślałem żeby zrobić w bazie danych tabele z IP usera oraz liczbą wejść i jeśli ta liczba jest większa od 3 to wtedy się includuje te okienko(tylko że codziennie ta baza powinna być czyszczona i tego tez nie wiem jak zrobić). Nie wiem może jest prostszy sposób na wykonanie tego proszę o jakieś nakierowanie. Dziękuje i pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Myślę że chodzi ci o obejrzenie 3 filmów ale w jednej sesji tak? czyli ktoś wejdzie i jak sobie będzie przeglądał to po 3 filmach wyskoczy okienko ? Tak było (nie wiem czy jest) na maksiorze ja zrobiłbym to za pomocą sesji i później jak ktoś kliknie w link z filmem to w procedurze wyświetlającej film sprawdzać czy to już 4 film jeżeli nie to dać zwiększenie o 1 jeżeli tak to wyświetlać okienko
-------------------- Pomogłem? wyraź to i kliknij "Pomógł"
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi że dziennie będzie mógł tylko 3 filmy obejrzeć.
Wydaje mi się że sposób z bazą danych jest do tego najodpowiedniejszy, ale nie bardzo wiem co zrobić z tym że codziennie o godzinie 00:00 musi być ona czyszczona. Ten post edytował xeveot 6.08.2008, 07:29:09 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
No to 2 wyjścia
1. Wspomniane przez ciebie baza danych + ip Tylko że nie trzeba bazy czyścić możesz dać crona który będzie usuwał wpisy starsze niż 1 dzień i już zapomnieć że cokolwiek istnieje nie musisz się martwić o czyszczenie bazy zamiast crona możesz też w skrypcie dać żeby przed zapisaniem ip usuwał zbędne wpisy 2. Cookie i Expire Date na następny dzień Ale to kiepskie rozwiązanie bo wystarczy wyłączyć/usunąć/zmodyfikować cookie -------------------- Pomogłem? wyraź to i kliknij "Pomógł"
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, dzięki za odpowiedź. W takim razie już co mam robić.
Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 32 Dołączył: 5.08.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisał f1xer można to zrobić na zasadzie sesji. Czyli robisz tabele z ip usera(jeśli chcesz po ip) lub po zmiennej $_SESSION['USERNAME'] dajesz licznik. Każde kliknięcie 'czegoś multimedialnego' odzwierciedla się wysłaniem UPDATE do bazy i powiększenie licznika o 1.
Piszesz zewnętrzny plik który wykonuje skrypt, jeżeli user = $_SESSION['USERNAME'] i licznik > 3 to przekierowanie na stronę w celu pobrania płatności, jeżeli nie to licznik zwiększasz o jeden poprzez UPDATE. Robisz INCLUDE takiego pliku przy stronach które zawierają jakieś multimedia i po sprawie. Jeśli chodzi o czyszczenie i zależy Ci na mechaniźmie nie na zasadzie sesji tylko ograniczeniu czasowym np user po pierwszym zalogowaniu może oglądać filmy tylko przez 3 godziny to albo wydłużasz sesje i trzymasz się ustaleń od górnych albo pobierasz date i godzinę od usera kiedy się zalogował i dajesz również zewnętrzny skrypt który po pierwsze sprawdza czy w dniu dzisiejszym nastąpiło logowanie (jeśli nie to datę którą pobrał zapisuje jako datę bazową do odliczania czasu) jeśli tak to 'ignoruje.Po drugie trzeba jeszcze dać warunek który sprawdza czy minęło 5 godzin , jeśli tak i po tym czasie następuje zalogowanie to znowu data jest ustawiana jako bazowa (takie ograniczenia opłaca się robić jeśli ktoś często się wylogowuje i non stop tworzy nam nowe sesje). Ja zazwyczaj trzymam się sesji lub cookies (daje sobie spokój z takimi czasowymi czujkami). Jeśli chodzi o techniczne wykonanie to w taki sposób możesz mierzyć czas : Kod $db = mysql_connect($dbhost, $dbuser, $dbpassword); mysql_select_db($dbdatabase, $db); mysql_query("SET NAMES 'utf8'"); $tajm = date("dmYHis"); $czas = date("dmYHis")-300; $aktywny = "UPDATE aktywni SET czasout = '" . $tajm . "' WHERE kto = '" .$_SESSION['USERNAME'] . "'"; mysql_query($aktywny); $sql_8 = "SELECT * FROM aktywni WHERE aktywny = 'a' and czasout > '" .$czas . "'"; $result8 = mysql_query($sql_8); $numrows8 = mysql_num_rows($result8); Tak zazwyczaj wykonuje się liczniki online. $tajm = date("dmYHis"); - jest to format unixowy daty : oznacza np. 22072006160910 gdzie trzecia i czwarta cyfra od konca wskazuje ilosc minut. Trochę zboczyłem z tematu ale może coś pomogę. Pozdrawiam Mariusz hehe zanim napisałem tego POSTA poprzedniego to już 4 wpisy się pojawiły. Moim zdaniem bazy nie trzeba czyścić tylko zrobić oddzielną tabelę i operować na UPDATE. Natomiast powyższe rozwiązanie nr.1 z cronem jest git. -------------------- ---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA ! Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za wypowiedź, chyba wybiorę ten sposób z cronem, w takim razie będę musiał się jeszcze ciut poduczyć.
Pozdrawiam! |
|
|
-gox- |
![]()
Post
#8
|
Goście ![]() |
mozna to oczywiscie wykonac bez korzystania z bazy danych...
od kiedy codeigniter oferuje mi wysmienicie dzialajace cachowanie w ogole zrezygnowalem z baz danych, liznalem tylko nieco rozszerzenia do plikowych baz danych... jednoczesnie jestem w trakcie lektury http://allegro.pl/item406804796_sztuka_pro..._vat_od_ss.html polecam ta pozycje, do rzeczy.. Odpowiedz sobie na pytanie, czy grupa internautow w ktora celujesz bedzie w ogole znala mechanizm cookie, a jesli bedzie znala, to czy sklonna bedzie zaplacic za ogladanie filmow, moim zdaniem odsetek takich odwiedzajacych bedziesz mial zaden. Wiec pierwsza mysl => zwykle cookie Osobiscie bym tak nie zrobil, poniewaz nie mogl bym spac w nocy. Sposob nie do przeskoczenia, chyba ze masz neozdrade..: Resetowanie o 00:00 jest nieco trudniejsze do zrealizowania, niz resetowanie po 24h od ostatniego wyswietlenia....
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.06.2025 - 06:02 |