SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
Rating
Autor Wiadomość
roberto266
Początkujący


Dołączył: 26 Kwi 2012
Posty: 7
Skąd: Gdańsk
Wysłany: Czw 26 Kwi, 2012 20:21   Rating

Panowie proszę o pomoc
Nie jestem zbyt dobry swish, męczę się już z problemem od tygodnia.
Mam zmodyfikowany licznik który zlicza po kliknięciu w button, coś na styl(Star Rating) z tym że zamiast gwiazdek swi zlicza kliknięcia. Wszystko jest ok. , ale po odswierzeniu strony nie wyświetla stanu dotychczasowej punktacji dopiero następuje to po kliknięciu w button.
Na skrypcie buttona jest
kod
on (press) {

this.loadVariables("main.php?rn=" add Math.randomInt(1000));
}

Jaki kod ma byś na scenie aby po wejściu na stroną wyświetlił się aktualny stan licznika ?
Jeśli umieszczę kod na scenę

onSelfEvent (load) {
this.loadVariables("main.php?rn=" add Math.randomInt(1000));
}

wyświetli się aktualny stan plus jeden punkt. Niestety nie potrafię tego wyeliminować

scrypt php wygląda tak/

<?php
$filename = "main.txt";
$fp = fopen($filename,"r");
$data = fread($fp, 25);
fclose( $fp );
$data = explode("=", $data);
$info = $data[0];
$hits = $data[1];
$hits++;
$new_info = $info . "=" . $hits;
$fp = fopen($filename,"w+");
fwrite($fp, $new_info);
fclose( $fp );
print "&hit_counter=$hits";
?>


PANOWIE POMOCY !! !
 
     
espe1
Profesjonalista


Pomógł: 16 razy
Dołączył: 02 Lis 2011
Posty: 175
Skąd: łódzkie
Wysłany: Czw 26 Kwi, 2012 20:49   

http://www.flashstar.pl/f/fcounter/
 
     
roberto266
Początkujący


Dołączył: 26 Kwi 2012
Posty: 7
Skąd: Gdańsk
Wysłany: Czw 26 Kwi, 2012 21:22   

dzięki za linka, ale nie wspomniałem ze potrzebuję około 20 niezależnych od siebie paneli zliczających punktację... wolałbym stwrzyc go sam, potrzebny mi jest tylko ten kod na scenę aby po zkomunikował się z notatnikiem i wyswitlił aktualny stan który został wpisany do notatnika a po kliknięciu przypiał nową wartość

[ Dodano: Pią 27 Kwi, 2012 12:22 ]
Może ktoś pomoc :=-( :?: :?: :?:
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Pią 27 Kwi, 2012 12:13   

Może utwórz drugi bliźniaczy skrypt który będzie tylko odczytywał wartość z pliku txt (pomiń $hits++; ) i ten skrypt wywołuj na onSelfEvent (load).

Natomiast on (press) pozostaw jak jest.
 
     
roberto266
Początkujący


Dołączył: 26 Kwi 2012
Posty: 7
Skąd: Gdańsk
Wysłany: Pią 27 Kwi, 2012 13:14   

Nie zła myśl...... spróbuję tak zrobić. Dzięki za sugestię, napiszę co z tego wyszło

[ Dodano: Pią 27 Kwi, 2012 14:48 ]
Jesteś wielki, proste ale skuteczne, mnie raczej do głowy by nie przyszło, wszystko działa poprawnie. W każdym bądź razie wielkie dzięki oto mi chodziło, natomiast czeka mnie jeszcze jedna przeszkoda – jak zablokować IP na jakiś okres czasu tak aby ktoś mógł dodać punkt raz na kilka godz. np. 12h. Możesz coś doradzić. Mógł byś coś doradzić ?? ?, Będę wdzięczny.
Pozdrawiam

[ Dodano: Sob 28 Kwi, 2012 07:59 ]
Jest jakaś szansa na pomoc ?? ? blokada IP na licznik przez kilka godzin z jednego IP :roll:
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Sob 28 Kwi, 2012 07:58   

Nie wiem czy jest możliwość uzyskania ip klienta bezpośrednio w flashu. Jeśli nie to musiał byś wykorzystać do tego php. Takie dane powinieneś raczej trzymać w cookies a nie u siebie na serwerze bo blokując jakieś ip po stronie serwera zablokujesz np. całą sieć lokalną.

Ja raczej zamiast blokować ip to blokował bym konkretny komputer poprzez zapis danych w jego ciasteczkach. Prawdopodobnie zrobił bym tak że zapisywał bym czas kliknięcia w Shared Object i następnie sprawdzał różnice między aktualnym czasem a tym zapisanym i na tej podstawie blokował lub nie zliczanie. Wykorzystując Shared Object uzyskasz blokadę na konkretną instalacje Flash Playera.
 
     
roberto266
Początkujący


Dołączył: 26 Kwi 2012
Posty: 7
Skąd: Gdańsk
Wysłany: Sob 28 Kwi, 2012 09:53   

Krzywy105, napisałem do Ciebie PW

[ Dodano: Pon 30 Kwi, 2012 07:54 ]
zaczynam kumać temat ale dowiedziałem się ze ciasteczka można wyłączyć prawie w każdej przeglądarce, zablokować IP odpada bo zablokuję całą sieć, nie ma jakiegoś sposobu na taki licznik ?? ? ciekawe jak to robią Star Rating System ?
Może ktoś coś doradzi :cry:
 
     
krzywy105 
Doradca


Pomógł: 1 raz
Dołączył: 09 Kwi 2011
Posty: 68
Skąd: Małopolska
Wysłany: Czw 03 Maj, 2012 09:57   

Dopisałem poniższy kod do sceny:
Kod:

onSelfEvent (load) {
this.loadVariables("http://localhost/~licznik/infoL1.php?rn=" add Math.randomInt(1000));
mySharedObject=SharedObject.getLocal("blokada_licznika", "/");
if (mySharedObject.data.czas_kliku==null)
{
 mySharedObject.data.czas_kliku=0;
trace(mySharedObject.data.czas_kliku);
mySharedObject.flush(); 
}
else
{
 trace(mySharedObject.data.czas_kliku);
}
}


Oraz do przycisku:
Kod:
on (press) {
     var my_date:Date = new Date(); 
trace("Aktualny czas: "+my_date.getTime());
 trace("Czas poprzedniego kliku: "+mySharedObject.data.czas_kliku);
roznica = my_date.getTime()-mySharedObject.data.czas_kliku;
  trace("Roznica "+roznica);
  if (roznica > 10000){  // 10000 to 10 sekund, czyli jeśli od ostatniego kliku mineło więcej niż 10 sekund to zliczyć
this.loadVariables("http://localhost/~licznik/L1.php?rn=" add Math.randomInt(1000));
 mySharedObject.data.czas_kliku=my_date.getTime();
mySharedObject.flush();
  }
}


Nie jest to blokada na IP po stronie serwera tylko prosta blokada po stronie przeglądającego. Do usunięcia oczywiście trace które wstawiłem dla testu.

Jeśli chciałbyś blokadę IP to w php musisz sprawdzić ip ($_SERVER['REMOTE_ADDR'])odwiedzającego i np. czas serwera i na tej podstawie blokować (wysłać do swisha albo blokować w samym php).

[ Dodano: Czw 03 Maj, 2012 20:12 ]
roberto266 napisał/a:


[ Dodano: Pon 30 Kwi, 2012 07:54 ]
zaczynam kumać temat ale dowiedziałem się ze ciasteczka można wyłączyć prawie w każdej przeglądarce, zablokować IP odpada bo zablokuję całą sieć, nie ma jakiegoś sposobu na taki licznik ?? ? ciekawe jak to robią Star Rating System ?
Może ktoś coś doradzi :cry:


Wykorzystując shared object nie korzystasz z ciasteczek przeglądarki tylko z "ciasteczek" flash playera. Nie ma chyba 100% metody (ewentualnie jakieś konta użytkowników i rozbudowany system z rejestracja itp ale to bezsensu). Niemniej każdy system da się obejść jeśli dysponuje się pewną wiedzą.
 
     
roberto266
Początkujący


Dołączył: 26 Kwi 2012
Posty: 7
Skąd: Gdańsk
Wysłany: Czw 03 Maj, 2012 19:30   

Wielkie dzięki. Wszystko gada... spotęgowałem tylko ten czas kliknięcia ponieważ musi być ustawione na min 3godz, . Nie wiem czy dobrze zrobiłem, widziałem gdzieś w scrypcie mniejszą liczbę z znakiem plus, ale ważne że działa. Jeszcze raz dziękuję i czuję się Twoim dłużnikiem.
Pozdrawiam
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.28 sekundy. Zapytań do SQL: 14