2012-05-20 21 views
8

Soy la creación de una forma en ASP clásico y se volverá a cargar después de la presentación (sin acción)Cómo comprobar el envío de formularios ASP clásico

Pero esta vez se muestran los resultados de las anteriores comunicaciones, así que ¿cómo puedo comprobar si una presentación POST se ha hecho?

Al igual que en PHP:

if($_POST['submit']) { 
    show results... 
} 

Respuesta

23

Tiene varias opciones:

Método 1 - Compruebe el método de la petición:

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

Método 2 - añadir un campo oculto a su formulario con un valor y luego comprobar si ese valor se ha publicado:

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

Método 3 - Comprobar si la colección contiene artículos: request.form

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

Método 4 - Subir a una cadena de consulta (es decir, Método conjunto de <form> a? post = sí)

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

cuál elegir?

Mi opción preferida es el método 4, como se ve fácilmente en la barra de direcciones en cuanto a lo que está pasando, si por alguna razón quiero evitar presentar este nivel de detalle en la url, tiendo a usar la opción 3 como es fácil de implementar, no requiere cambios en los formularios fuente & es confiable. En cuanto a los otros dos métodos:

  • Método 1 - Me tienden a evitar depender de las variables del servidor si no lo hago tienen 100% de control sobre el servidor - sin justificación real para eso, sólo un Hábito general con el que trabajo.
  • Método 2 - Puede sustituir un campo oculto por otro campo que siempre contendrá un valor.
+0

Eso es bueno, pero ¿cuál recomendaría usted? ¿Cómo se comparan los diferentes enfoques? – AnthonyWJones

+0

@AnthonyWJones Sí, buen punto, respuesta editada para dar un poco de aclaración. – HeavenCore

+4

FWIW, recomendaría el Método 1. El FUD extraño sobre un servidor que no controlas es irracional, si no puedes confiar en que el servidor haga algo básico como este, quizás deberías encontrar un host diferente. La variable 'REQUEST_METHOD' está ahí para el propósito expreso de detectar qué Método HTTP se está utilizando. Los métodos 2 y 4 requieren que el desarrollador contamine su código con contenido innecesario, por lo que debería evitarse IMO cuando hay alternativas disponibles. El Método 4 también es un enfoque bastante bueno, pero carece de la claridad de propósito que tiene el Método 1. – AnthonyWJones