![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 11.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, w php jestem początkujący i nie znam wielu spraw. Poniższy problem już analizowałem jak sie tylko da i nic. Nie rozumiem gdzie jest błąd.
Chodzi o podwójne wykonanie skryptu. Dotyczy to komentarzy i np. głosowania. Na stronie A jest OBIEKT, który można skomentować i ocenić na + i -. Z bazy danych jest odczytywana odpowiednia wartość i wyświetlana. Głosowanie. Chcąc zagłosować np. na +. Klika się w link www.nazwa.pl/glosuj.php?id=12&akcja=plus Na stronie glosuj.php jest prosty skrypt, który ma tylko zwiększyć wartość o jeden, a czasem zwiększa o 2. Dlaczego? I to tylko zazwyczaj za pierwszym razem, bo dalej poruszając się po stronie, sytuacja się normalizuje i już działa poprawnie. Oto skrypt na stronie glosuj.php:
[/b]Nic prostszego, prawda? Więc dlaczego, gdy skrypt się wykonuje, to zamiast zwiększyć/zmniejszyć wartość w bazie danych o jeden, zmienia ją o dwie jednostki? Przy głosowaniu to tak źle nie wygląda, ale w systemie komentarzy już tak. Ponieważ dodaje mi dodatkowo jeden pusty komentarz, co już nie wygląda zbyt fajnie i estetycznie wizualnie... i go zlicza w bazie jako normalny. O co w tym chodzi? gdzie jest błąd? Przecież ze strony z OBIEKTEM przekazuję wartość id przypisująca obiekt w bazie, oraz akcje, która identyfikuje, co ma być zrobione, a pomimo prostoty, gdzieś jest zapętlenie i czasem skrypt wykonuje się podwójne?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Dlaczego? Z góry będę wdzięczy za rozjaśnienie tej sprawy. Pozdrawiam Ten post edytował lordvanyuri 1.06.2009, 23:33:14 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 11.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok, więc nadrabiając zaległości (już wrzucę kod w tagach)
kod na stronie pytanie.php:
wyświetlenie pytania o konkretnym id i poniżej tego dwie akcje, głos na plus i na minus. Poniżej też są komentarze, ale jak się w głosowaniu wyjaśni dlaczego się podwójnie wykonuje, to będzie podobnie w komentarzach. Po kliknięciu na jedną z akcji, plus lub minus przechodzi się na strone glosuj.php, gdzie jest tylko mały fragment w php:
To jest mały portalik, na podstawie którego chce się nauczyć PHP, ale nie mogę przejśc dalej jak ten szczegół siedzi mi na głowie. Najczęściej zdarza się podwójne nabicie, głosu czy też komentarza przy pierwszej podjętej akcji, dalej odbywa się to normalnie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 13:13 |