Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odświeżanie strony... php...
Enderlanas
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.04.2010

Ostrzeżenie: (10%)
X----


Witam...
Mam bardzo wielki problem. Otóż tworzę grę via www, w php i teraz wziąłem się za stworzenie potworów, na których można zdobyć doświadczenie. Stworzyłem te potwory jako osobne pliki, każdy potwór jest osobnym linkiem. Czyli potwór 1 jest plikiem 1.php, a potwór 2 jest plikiem 2.php. I jeśli wejdziemy na plik 1.php, to pomyślnie dodaje rekord do bazy, typu że dodaje doświadczenie, złoto itd. Ale jeśli odświeżę stronę, to będzie sytuacja taka, jakbym znowu wszedł na tą stronę, czyli znowu mi dodaje doświadczenie. I tutaj właśnie pojawia się problem, ponieważ nie wiem, jak zablokować stronę przed ciągłym odświeżaniem. Chcę zabezpieczyć tę grę, aby nie można było zdobywać doświadczenia klikając ciągle F5... I nie wiem, co robić... Może ktoś miał kiedyś z takim czymś problem, i jakoś go rozwiązał? Myślałem nad przekierowaniem, ale jeśli będzie przekierowanie na inną stronę, to zaś nie wyświetlą się logi, np. "Zdobyłeś tyle i tyle doświadczenia..."

Mam nadzieję, że chociaż jedna osoba będzie w stanie mi pomóc winksmiley.jpg

Pozdrawiam ;>
Go to the top of the page
+Quote Post
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Po dodaniu rekordu do bazy i wykonaniu wszystkich innych czynności po wysłaniu formularza, powinieneś przekierować stronę na inny lub ten sam plik. Dzięki temu ani odświeżanie nie stanowi już problemu, ani nie można wysłać danych ponownie przez wciskanie "wstecz" w przeglądarce.
  1. header('Location: plik.php');
Go to the top of the page
+Quote Post
Enderlanas
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.04.2010

Ostrzeżenie: (10%)
X----


No tak, ale tak jak napisałem, nie będzie to wyświetlało napisów typu "Zdobyłeś xxx doświadczenia"

Chyba, że byłby jakiś sposób, że po wysłaniu danych przekierowałoby na tą stronę z której wszedłem na stronę która dodaje dane do bazy, i wyświetlało logi, typu "Dodano coś tam... "
Go to the top of the page
+Quote Post
croc
post
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Sposób z header, który podałem, jest standardowym zachowaniem po wysyłaniu formularzy. Nie wiem jak wygląda twój skrypt, ale sposobów masz kilka. Możesz zrobić tak jak mówisz, coś w rodzaju loga, czyli historię zmian doświadczenia zapisywać w bazie danych. To jest moim zdaniem dobry pomysł, bo taka informacja (historia) może się przydać. Możesz też zrobić coś innego: zrobić sobie funkcje do zapisywania i wyświetlania wiadomości. Funkcja zapisująca umieszczałaby treść w sesji, funkcja czytająca treść przed zwróceniem wiadomości usuwałaby tę wartość w sesji.
Go to the top of the page
+Quote Post
Ulysess
post
Post #5





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


naprostrzym rozwiązaniem lecz nie do końca dobrym jest zrobić ze podczas wyświetlania listy potworków w bazie jest zmieniana wartośc na 0 a podczas walki na 1 żeby walka się odbyła musi być wartość 0.

słabe strony ? możesz osiweżać w 2 zakładkach a dokładniej w pierwszej liste potworków a w 2 walke lecz trzeba na to wpierw wpaść winksmiley.jpg
Go to the top of the page
+Quote Post
Enderlanas
post
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 18.04.2010

Ostrzeżenie: (10%)
X----


Kurczę... Nigdy bym na coś takiego nie wpadł ;d Po prostu genialne! haha.gif Dzięki wielkie! smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 05:31