Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podwojnie wysylany formularz
Forum PHP.pl > Forum > Przedszkole
Nemo1982
Tworze forum dyskusyjne oparte na plikach. wszystko dziala , ale : czasami sie zdarzy ze user wysle jakis post i przychodzi on 2 razy a co z tym idzie w forum widac 2 identyczne posty (data , user , czas - wszystko to samo)
jak temu zapobiec??
staralem sie zabezpieczyc to sesjami : 1 post na jedna minute ale to nic niedaje sad.gif
prosze o pomoc
ARJ
wydaje mi się że funkcja flock pomoże.
Kuziu
  1. onSubmit="submit.disabled=true;"
Nemo1982
jesli chodzi o flock przy blokowaniu pliku to odpada , bo kazdy post jest w osobnym pliku i poprostu zamiast dopisac jeden plik , dopisuje 2
a jesli chodzi o ten submit , to moze troche wiecej pomocy , bo java script to dla mnie czarna magia (czesciowo)
j00seph
Czy ja wiem czy forum oparte na plikach to dobre rozwiązanie questionmark.gif
Bo coś mi się widzi że to jest rozwalanie taranem otwartych drzwi
Co się stanie jak 2 lub 3 róznych userów będzie w tej samej chwili odpowiadać na 1 posta questionmark.gif Albo zrobi sieczkę z posta, albo 1 userowi zapisze - a reszczei wywali blad.

Do takich zadań przeznaczone są relacyjne bazy danych (MYSQL), każdy post w osobnym rekordzie, w dodatkoym polu zaznaczone od jakiego postu dany post sie wywodzi ( bo forum to struktura drzewiasta ) - wszystko ładnie wypisywane w pętli i o większości problemów które napotkasz tworząc forum na plikach możesz zapomnieć

pozdrw.

PS Podwójnie piszemy przez ó exclamation.gif!!!!
Nemo1982
Cytat(j00seph @ 2004-10-06 09:39:36)
Czy ja wiem czy forum oparte na plikach to dobre rozwiązanie questionmark.gif
Bo coś mi się widzi że to jest rozwalanie taranem otwartych drzwi
Co się stanie jak 2 lub 3 róznych userów będzie w tej samej chwili odpowiadać na 1 posta questionmark.gif Albo zrobi sieczkę z posta, albo 1 userowi zapisze - a reszczei wywali blad.

Do takich zadań przeznaczone są relacyjne bazy danych (MYSQL), każdy post w osobnym rekordzie, w dodatkoym polu zaznaczone od jakiego postu dany post sie wywodzi ( bo forum to struktura drzewiasta ) - wszystko ładnie wypisywane w pętli i o większości problemów które napotkasz tworząc forum na plikach możesz zapomnieć

pozdrw.

PS Podwójnie piszemy przez ó exclamation.gif!!!!

zaczne od konca jestem dysortografikiem wiec czasami mi sie zdarza popelnic bledy pracuje nad tym ale ;] jak widac heh

apropo forum gdybym mogl je zrobic na bazie danych to bym wykorzystal np phpbb a nie bawil bym sie od podstaw.

a jesli chodzi o dodawanie posta naraz przez kilka osob , to do tego sluzy funkcja flock
SET
dlaczego niemożesz ?

ps. jeżeli chodzi o obsługę to są darmowe serwery (http://www.webhelp.pl/free/index.php?ac=kat&kat=1) => http://tripod.lycos.co.uk
Nemo1982
niemoge poniewaz musze postawic to forum na serwerze konkretnej osoby , ktora upiera sie zeby niebylo na bazach
wiec bazy odpadaja poprostu


a apropo podwojnego wysylania , to on submit tez niedziala , co najdziwniejesze tylko od niektorych wysyla sie post 2 razy , chyba w skrypcie dodam linijke ktora bedzie otwierala poprzedni post i porownywala zawartosc , mysle ze to moze pomoc.

jesli ma ktos inne pomysly to chetnie wyslucham
Kuziu
to po dodaniu postu sprawdź wielkość 2 ostatnich postów ... i autora ... jeśli są takie same to kasuj
SET
sprawdź coś, a mianowicie wyślij raz i daj odświerz (to jest najczęstsza przyczyna), ja to rozwiązałem sprawdzając dany post (jak istnieje identyczny to nie dodaje)
Kuziu
to niechodzi o F5 ... tez miałem ten problem nawet w MySQL'u ... ktoś poprostu klika dodaj .... czeka chwile ... i ma np. chwilowego laga ... i mysli że strona sie nieładuje .. i wciska jeszcze raz ....

ale czasami też mi się tak robiło że sam wcisnąłem tylko raz a dodało 2 ... niewiem dlaczego ..
yeti
Niech formularz nie ładuje nowej strony tylko ta samą (PHP_SELF). Formularz musi zawierać zmienną określającą status. Status ze zmiennej POST sprawdzamy w nagłówku strony. Jeśli wywołanie strony jest wynikiem wysłania formularza to nie wyświetla się formularz tylko informacja o zakończeniu operacji. Proste i skuteczne.
e4you
a moze zwykly header po wykonaniu skryptu na stronę z info ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.