Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL][PHP] Submit formularz

Napisany przez: mrk9109 19.10.2019, 16:59:51

Witam mam pytanie jak zablokować by dany użytkownik mógł odebrać nagrody tylko raz ? chodzi o to że jak szybko ktoś kliknie submit 2x to dostanie nagrody 2x

  1. <input type="submit" class="btn btn-info" value="Odbierz nagrody" name="odbierz">

Napisany przez: trueblue 19.10.2019, 17:10:44

A nie zapisujesz nigdzie informacji, że odebrał nagrodę?

Napisany przez: mrk9109 19.10.2019, 17:21:02

Zapisuje i usuwa z bazy danych dla tego sie dziwie ze jak ktoś szybko kliknie submit to dodaje 2x update

Napisany przez: trueblue 19.10.2019, 17:26:53

Nie usuwaj informacji o odbiorze, to będziesz przy kolejnej próbie wiedział jak postąpić.

Napisany przez: mrk9109 19.10.2019, 17:38:33

Skrypt musi usunąć wiersz by gracz mógł jechać nowe zawody można jakoś zablokować to ? By tylko raz kliknąć w submit

Napisany przez: trueblue 19.10.2019, 17:45:36

Co oznacza, że na nowe zawody może jechać kiedy nie odebrał nagrody lub odebrał jedną, tak?

Napisany przez: mrk9109 19.10.2019, 17:56:21

Jeżeli odbierze nagrodę może jechać nowy turniej jeżeli nie odbierze to nie kończy danego turnieju można z tym klikaniem coś zrobić ?

Napisany przez: trueblue 19.10.2019, 18:02:28

Próbuję Cię naprowadzić, a Ty zamiast wykorzystać informacje, które sam zapisujesz, to próbujesz jakichś kombinacji.
Skoro odbiera nagrodę i zapisujesz tą informację, to po co ją usuwasz? Przy kolejnej próbie odebrania nagrody sprawdzisz czy już odbierał i ewentualnie umożliwisz lub nie.

Napisany przez: mrk9109 19.10.2019, 18:31:01

Nie do końca sie zrozumieliśmy wrzucę kod php później jak będę na PC

Napisany przez: dublinka 20.10.2019, 03:27:28

Podczas dodania rekordu ustaw sesje (tuz po) a przed dodaniem sprawdz czy istnieje. Jesli istnieje to przekieruj klienta gdziestam lub wyswietl stosowne info. Sama sesje ustaw na jakis konkretny czas chocby 1 minute. Podczas sprawdzania porownaj aktualny czas z sesja. Samą sesje usun tuz przed update.

Czyli:

Warunek spradzajacy czy aktualny czas jest "wiekszy" od tego w sesji. Jesli jest mniejszy znaczy ze sesja trwa mniej niz minute u dajesz jakies info z exit-em.
Jesli jest wiekszy usuwasz te sesje tuz przed dodaniem do bazy.

[ UPDATE ]


ustawienie sesji z czasem.

  1. $_SESSION['time'] = (http://www.php.net/time()+ 60);


Tyle.


Dodatkowo wylacz submit po klikneciu.

  1. <input type="submit" onclick="this.disabled='disabled'"/>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)