![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
mam taki o to problem ... jest sobie baza danych X i tam tablica A i B... w tablicy A mam identyfikator zdjecia i liczba glosow na nie oddanych, natomiats w tablicy B ip osoby ktora oddala glos... jesli dana osoba odda glos na dane zdjecie w tablicy A zwieksza sie dla danego zdjecia o danym id liczba glosow o 1 ... natomiast do tablicy B dopisywany jest ip danej osoby ktora zaglosowala ... w nastepstwie jesli dana osoba chce zaglosowac jeszcze raz przed oddaniem glosu kolejnego sprawdzam czy w tablicy B istaniej ip danej osoby ... jesli tak to nei powinno to sie jej udac ... a problem tkwi w tym, ze jelsid ana osoba glosuje pierwszy raz i wcisnie po kliknieciu na link 'zaglosuj' kilkanascie razy 'odswierz' to zliczy jej dodatkowe glosy ... jak sie przed tym ustrzec ? mam nadzieje, ze w miare zrozumiele opisalem problem :-) mam cos kombinowac z funkcja flush? dzieki za odpowiedz z gory :-)
-------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Vice-Administrator serwera Grupa: Przyjaciele php.pl Postów: 395 Pomógł: 0 Dołączył: 7.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
zrób tak że formularz który służy do głosowania będzie w jednym pliku powiedzmy plik1.php a będzie się on odnosił do drugiego powiedzmy plik2.php. W drugim pliku będzie skrypt który ma aktualizować bazę danych i nic nie wyświetlać i tam po aktualizacji bazy danych dodaj linijkę:
[php:1:7ff26e336e]<?php header('Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/plik1.php"); ?>[/php:1:7ff26e336e] użytkownik nawet nie zauważy tego, że została otworzona nowa strona a głos zostanie naliczony tylko jeden -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
wlasnie cos w tym rodzaju mam teraz, a i tak nie dziala dokonca tak jak powinno ... mecze siem dalej .. dzieki :-)
-------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:90de7f80ac]<?php
if(!$_COOKIE['juzbyl']){ // wsadzanie do bazy setcookie('juzbyl', TRUE); } header('Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/plik1.php"); ?>[/php:1:90de7f80ac] Jeżeli korzystasz z sesji, lepiej zapisz w sesji, bo nie każdym ma cookies.. -------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
no cookies to nienajlepszy w tym przypadku pomysl ... natomiast sesje? a czy dana sesja nie znika po jakims okreslonym czasie ? hmmm .. poczytam :-)
w kazdym razie po przeslaniu w miejsce docelowe dziala mi juz (chyba ;-)) dzieki za odpowiedz :-) -------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: -- Skąd: Wired Ostrzeżenie: (0%) ![]() ![]() |
a nie mozesz przy dodawaniu sprawdzac czy dane ip juz glosowalo i jezeli tak, to nie dodawac glosu?
nie rozumiem problemu... |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
chodzi o ludzi ze zmiennym IP
![]() 1) Zapisz IP do bazy 2) Spróbuj zrobić cookie No i to powinno załatwić 90% petentów ![]() -------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
zle mnie zrozumieliscie ... przy robieniu "flooda" na skrypt zliczajacy glosy wykonujac skrypt za pierwszym razem dodawal glos, a nie zdazyl wpisac do bazy, ze juz taki ktos gloswal jak drugi raz wywolany ten sam skrypt dodawal kolejnby glos ... tak to sobie tlumacze ... lokalnie na kompie cos takiego wsytepowalo ... jak wyslalem w miejsce docelowe juz bylo ok ...
z drugiej strony o ile wiem jak to wszystko dziala nei powinno sie tak dziac... chociaz ... z innej strony widzialem gdzies w manulu jakas funkcje opozniajaca o x sekund lub milisekund wywolanie skryptu przez danego uzytkownika... ale to bylo dawno i nie ejstem pewien czy nei mam jakis zwidow ... tym bardziej, ze manualu nie moge znalesc tej funkcji... pozdrawiam -------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
[php:1:8bb0cb11c8]<?php
ignore_user_abort(true); ?>[/php:1:8bb0cb11c8] To Ci spowoduje, że skrypt wykona się do końca nawet jak w połowie przeglądarka rozłączy się z serwerem (co ma miejsce gdy ktoś szybko naciśnie przycisk ,,Refresh''). W tym momencie masz pewność, że skrypt wykona wszytkie instrukcje włącznie z zapisaniem w bazie, że z tego IP już głosowano. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
zasadnicze pytanie czy masz baze userow
![]() ![]() no jesli nie uzywasz logowani i kazdy moze glosowac to boze by bylo zeby np. ludzie ze zmninnym IP byli jakos filtrowani to zapisac IP i np. wersje systemu jak uzywa potem porownac IP jesli jest istnieje w bazie to sprawdzic czy wersja przegladrki i systemu jest taka sama jak w bazie jesli tak to jest wieksze prawdopodobienstwo ze ta osoba nie glosowala. przechowuwani w cooki ma wile wad (usuniecie cooki lub wylaczenie jego w przegladarce) powoduje ze mozna nieskonczenie wiele razy oddawac glos, wiec jesli zalezy ci na tym aby glosy sie nie powtarzaly to nie mozesz tego przechowywac na kompie klienta |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
adwol dzieki :-) wlasnie o to mi chodzilo :-) pisze chyba zbyt filozoficznym jezykiem aby byc dobrze zrozumianym ;-)
uwazam temat za zamkniety :-) -------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:18 |