2012-05-20 14 views

Odpowiedz

23

Masz kilka opcji:

metoda 1 - Sprawdź metodę żądanie:

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 
    'Show Results... 
End If 

Metoda 2 - dodaj ukryte pole do formularza z wartością, a następnie sprawdź, czy ta wartość został wysłany:

If Request.form("HiddenValue") = "1" Then 
    'Show Results... 
End If 

Metoda 3 - Sprawdź, czy zbiór Request.Form zawiera elementy:

If Request.Form.Count > 0 Then 
    'Show Results... 
End If 

metoda 4 - posta kwerendy (tj Metoda zestaw <form> do? post = yes)

If Request.QueryString("post") = "yes" Then 
    'Show Results... 
End If 

Który z nich wybrać?

Moją preferowaną opcją jest metoda 4 - ponieważ jest ona dobrze widoczna na pasku adresu, jeśli chodzi o to, co się dzieje - jeśli z jakiegoś powodu nie chcę prezentować tego poziomu szczegółowości w adresie URL, zazwyczaj używam opcji 3 jako jest łatwy w implementacji, nie wymaga żadnych zmian w formularzach źródłowych. & jest niezawodny. Co do pozostałych dwóch metod:

  • Metoda 1 - Staram się unikać powołując się na zmiennych serwerowych gdybym nie mieć 100% kontrolę nad serwerem - żadnego realnego uzasadnienia, że ​​ tylko ogólny nawyk mam tendencję do pracy.
  • Metoda 2 - Można zastąpić ukryte pole innym polem, które zawsze będzie zawierało wartość o wartości .
+0

To miło, ale co poleciłbyś? Jak porównują się różne podejścia? – AnthonyWJones

+0

@AnthonyWJones Tak, dobra uwaga, odpowiedź została zredagowana, aby dać trochę wyjaśnień. – HeavenCore

+4

FWIW, polecam Metodę 1. Dziwny FUD na serwerze, którego nie kontrolujesz, jest irracjonalny, jeśli nie możesz ufać serwerowi, że zrobi coś takiego, to może powinieneś znaleźć innego hosta. Zmienna "REQUEST_METHOD" służy wyraźnemu celowi wykrycia, która metoda HTTP jest używana. Metody 2 i 4 wymagają, aby twórca oprogramowania zanieczyścił swój kod niepotrzebną treścią, dlatego należy unikać IMO, gdy dostępne są rozwiązania alternatywne. Metoda 4 jest również całkiem dobrym podejściem, ale brakuje jasności celu, jaki ma metoda 1. – AnthonyWJones

Powiązane problemy