Dawka83 Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Witam. Mam taki problem z zabezpieczeniami... A więc mam sobie kod który odlicza (taki zegar) i chciałbym zabezpieczyć tak żeby nie dało się go shackowac takim prostym programem jak Cheat Engine. A oto mój kod: <?php $timestamp = time(); $h=date("i",$timestamp); $m=date("s",$timestamp); $d=date("d",$timestamp); $dm=date("t",$timestamp); $mm=date("m",$timestamp); while ($h>24) { $h=$h-24; $d+=1; if ($d>$dm) { $d=0; $m+=1; } } if ($m=00) { $m=0; } else { $m+=0; } $date=$h.':'.$m; echo ' <script> var h='.$h.' var m='.$m.' function azeg() { m=m+1; if (h>24) { h=0; } if (m>60) { h=h+1; m=0; refr(); refr_s(); } if (h<10){hs="0"+h}else{hs=h} if (m<10){ms="0"+m}else{ms=m} document.getElementById("zegar").innerHTML=hs+":"+ms; setTimeout("azeg()",1000); } </script> <div id="zegar"></div>'; ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 19 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 19 Kwietnia 2010 Nie da rady. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Użytkownik ma zawsze może manipulować skryptem wykonywanym przez przeglądarkę, tak więc skrypt JS powinien być tylko i wyłącznie elementem wyświetlającym efekty pracy całej reszty ( PHP, SQL etc. ). Czyli: JS w Twoim wypadku powinien wyświetlać stan zegara, ale modyfikacja jego pracy nie powinna wpływać w żaden sposób na pracę reszty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 MM mam taki pomysł w php wykonywał by obliczenia a js co 1s wywoływał by ten skrypt. Tylko czy to nie było by w jakiś sposób obciążenie dla serwa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Bez sensu. Jestem w stanie odciąć funkcję która aktualizuje zegar za pomocą PHP i podmienić na własną. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 No to zaproponuj coś lepszego... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Już to zrobiłem. Używaj JS tylko do wyświetlania niektórych informacji, ale nie używaj go jako mechanika która by zarządzała całością. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 A może by zrobić tak że js sprawdza co np 1h (w mojej aplikacji to 60s) czy ta godzina która jest to ta właściwa? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 W sumie możesz synchronizować zegar na przeglądarce użytkownika z zegarem serwera, pytanie tylko czy jest sens skoro sekunda komputera klienta trawa tyle samo co sekunda na komputerze serwera. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Widzisz bo u mnie w aplikacji wszystko opiera się na czasie. Chciałem zrobić że gdy będzie ta godzina 1 to zmieni się dzień... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Ale to zmienia się na serwerze, na przeglądarce może się zmienić np. tło strony, to tylko efekt graficzny i nie jest on istotny dla działania strony, po jej odświeżeniu wszystko wróci do normy i tak i tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 ale to wszystko zapisuje się w sql :P (w sensie że dzień bo czas to h-m , m-s) :D Edit: Tylko własnie nie mam pomysłu jak zmienić dzień. Więc pomyślałem żeby zsynchronizować go z zegarem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Więc może trochę beznadziejnie masz to zaprojektowanie, tak będą szczerym. Podchodzisz do problemu bardzo ogólnie i w łopatologiczny sposób, chcesz co sekundę aktualizować stan gry, co jest... głupie. Za bardzo obciążysz tym serwer jeśli będziesz to robił np. na PHP, gdybyś całą aplikację pisał sam to inna sprawa... ale tego nie robisz, więc rozwiązanie jest następujące: Robisz tabelę w bazie danych z listą sesji użytkowników zarejestrowanych Dajesz w niej pola typu ID sesji, ID użytkownika i przedewszystkim... dokładną datę ostatniej aktywności użytkownika Dzięki dokładnej dacie aktywności wyliczasz delta time, różnicę czasu między każdą z aktywności Delta time wykorzystujesz do każdych obliczeń, np. ilość kasy jaka wpada użytkownikowi do kieszeni co minutę będzie liczona tak:$goldPerSecond = $goldPerMinute / 60; $gold += $deltaTime * $goldPerSecond; Zaraz po każdym wykonaniu kodu który przelicza takie rzeczy aktualizujesz datę aktualnej aktywności na obecną datę. Coś takiego możesz również zrobić z uwzględnieniem pory dnia, np. nocą dostajesz mniej złota, to zwykłe warunki i kilka obliczeń. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 dzięki tymon :D Piwko poleciało. Dla zainteresowanych: Zrobiłem to tak. Utworzyłem sobie 5 kolumn w sql (id, nazwa usera, typ zadania, data rozpoczęcia, data zakończenia). I po kłopocie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się