Article View: pl.comp.www
Article #396266Re: Jak pokazać ścieżkę dostępu do dokumentu?
From: Marek
Date: Mon, 09 Mar 2009 21:10
Date: Mon, 09 Mar 2009 21:10
70 lines
5077 bytes
5077 bytes
> Miałem na myśli walidację danych (czy pole przeznaczone na e-mail, nawet > jak nazywa się dupa, zawiera coś przypominającego e-mail). No i właśnie o tym również mówię. Jeśli nazwiesz pole email i dasz walidację jako email to nawet najgłupszy robot spamowy wklepie tam email, który przejdzie walidację. > Jeśli przejmujesz się tak bardzo spamem, to pola na imie i nazwisko też > można sprawdzać pod kątem spamu - nie słyszałem, żeby ktoś miał na > nazwisko "http://...", a pewnie niejednego bota podkusi wpakowanie tam > linku. Wiesz... to już byłby przerost formy nad treścią - trzeba szukać złotego środka. > W przeglądarkach obsługujących HTTP poprawnie dostajesz poprzednią stronę > bez pytania i bez ponownego POST :) A jakie to? Pod IE i FF otrzymywałem zawsze zapytanie o zgodę na re-submit i to było przyczyną mojej decyzji dot. zastosowania sztuczki z location. Być może coś w bieżących wersjach zmienili... > W tych, które mylą cache z historią musisz użyć sztuczki z POST + status > 303, żeby się głupio nie pytały. Poeksperymentuję i jeśli zadziała to zmienię choć nie bardzo rozumiem róznicę pomięcy samym location a location + 303. Z punktu widzenia użytkownika zachowanie aplikacji będzie identyczne w przypadku gdy location prowadzi pod ten sam URL co formularz. Może w przypadku gdy submit ma prowadzić do innej strony to wtedy warto 303 posłać aby powrót działał "poprawnie" ? To miałeś na myśli? > W przypadku koszyka możesz przekierować spowrotem na stronę koszyka, ale > pod warunkiem, że strona koszyka jest niecache'owalna (nigdy nie wysyłasz > jej bez Cache-Control: no-cache). Alternatywnie możesz przekierować na > koszyk?wersja=123456 Już lepiej wyłączyć cache bo cholera wie w jaki sposób user powróci: czy "wsteczem", czy linkiem w treści strony, czy z palca wpisze URL. > Tak na marginesie - obsługujesz jakoś ładnie dwukrotne wysłanie > formularza? (tzn. nie wielkim błędem, tylko pokazywaniem wyniku pierwszego > wysłania?) Tak. Wkurzały mnie błędy z tym związane no i przerobiłem CMS aby uniknąć wszelkich konsekwencji podwójnego submitu. > Problem może się zdarzyć jak ktoś dwukliknie submit albo sieć nawali zanim > użytkownik dostanie odpowiedź na pierwsze wysłanie formularza i umyślnie > wyśle go jeszcze raz. Jeśli po prostu odrzucasz użytą transakcję, to > operacja wykona się pomyślnie (za pierwszym razem), ale użytkownik zobaczy > błąd (zobaczy tylko drugi raz) i pomyśli, że się nie wykonała. Jeśli sieć nawali no to nic nie zrobisz - cudów nie ma. Wtedy oczywiście user zobaczy niedostępność URL itp.i może tworzyć w głowie różne scenariusze - m.in. że submit nie doszedł do skutku. Jeśli natomiast kliknie drugi raz bo za pierwszym mu nie zadziałało (bo albo faktycznie tak było albo zadziałało lecz odpowiedź jeszcze nie nadeszła) to CMS zaakceptuje jedynie pierwszego submita, który do niego dotarł a kolejne ze przetworzonym już ID transakcji zignoruje. W podtekscie pytasz jak to zrobiłem? Banalnie... jądro systemu generuje wspólny ID dla nowych transakcji dla wszystkich modułów programowych, które mają zastosowanie na danej stronie WWW. Jeśli te moduły potrzebują formularzy HTML, to każdy z modułów ustawia ukryte pole swojego formularza "id_transakcji_modulu_X". Po przeładowaniu każdy z modułów sprawdza czy jego formularz zwraca wartość tego pola równą poprzednio wygenerowanemu ID. Jeśli tak, to przetwarza formularz, jeśli nie - to odtwarza tylko poprzednie wartości swojego formularza. Jedną z ostanich operacji jest zapamiętanie przez jądro ID_old=ID. Amen.
Technical Details
Message-ID:
<gp40kg$3i7$1@achot.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mailReferences:
<gor2lh$feg$1@achot.icm.edu.pl> <gor893$ook$1@nemesis.news.neostrada.pl> <gor9bq$oip$1@achot.icm.edu.pl> <gorb3n$a5b$1@atlantis.news.neostrada.pl> <gorvec$t65$1@achot.icm.edu.pl> <op.uqd2icdoutk0y1@aimac.local> <gotpj5$2v3$1@achot.icm.edu.pl> <op.uqfg6ae2utk0y1@aimac.local> <gougar$te3$1@achot.icm.edu.pl> <op.uqfuuky8utk0y1@aimac.local> <gp2sop$gqu$1@achot.icm.edu.pl> <op.uqjj73yfutk0y1@aimac.local>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail From: "Marek" <marek1967@spam.interia.pl> Newsgroups: pl.comp.www Subject: Re: Jak pokazać ścieżkę dostępu do dokumentu? Date: Mon, 9 Mar 2009 22:10:27 +0100 Organization: http://news.icm.edu.pl/ Lines: 71 Message-ID: <gp40kg$3i7$1@achot.icm.edu.pl> References: <gor2lh$feg$1@achot.icm.edu.pl> <gor893$ook$1@nemesis.news.neostrada.pl> <gor9bq$oip$1@achot.icm.edu.pl> <gorb3n$a5b$1@atlantis.news.neostrada.pl> <gorvec$t65$1@achot.icm.edu.pl> <op.uqd2icdoutk0y1@aimac.local> <gotpj5$2v3$1@achot.icm.edu.pl> <op.uqfg6ae2utk0y1@aimac.local> <gougar$te3$1@achot.icm.edu.pl> <op.uqfuuky8utk0y1@aimac.local> <gp2sop$gqu$1@achot.icm.edu.pl> <op.uqjj73yfutk0y1@aimac.local> NNTP-Posting-Host: chello084010100080.chello.pl Mime-Version: 1.0 X-Trace: achot.icm.edu.pl 1236633040 3655 84.10.100.80 (9 Mar 2009 21:10:40 GMT) X-Complaints-To: abuse@icm.edu.pl NNTP-Posting-Date: Mon, 9 Mar 2009 21:10:40 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Priority: 3 X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-MSMail-Priority: Normal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit