日期:2009-07-06  浏览次数:20861 次

When debugging ASP pages it can be very useful to see exactly what data is being sent when a form is posted. For that reason, I decided to create a handy little function that will display all of the form variable names and values. This function, FormDataDump() has the following definition:

Sub FormDataDump(bolShowOutput, bolEndPageExecution)  


These two input parameters are Boolean values. bolShowOutput, if True, will dump out the form field names and values for all to see. This has the effect of making your HTML page uglier and harder to read - therefore, if you are testing on a live site, you should set this value to False, in which case the form field names and values will be outputted inside of an HTML comment tag (<!-- form field names and values -->), so that they can only be seen via a View/Source.

The second parameter, bolEndPageExecution, determines whether or not a Response.End is issued in the FormDataDump() function. Response.End, if issued, ends the processing of the ASP page.

Below you will find the complete code for the FormDataDump() function.

Sub FormDataDump(bolShowOutput, bolEndPageExecution)
  Dim sItem

  'What linebreak character do we need to use?
  Dim strLineBreak
  If bolShowOutput then
    'We are showing the output, so set the line break character
    'to the HTML line breaking character
    strLineBreak = "<br>"
  Else
    'We are nesting the data dump in an HTML comment block, so
    'use the carraige return instead of <br>
    'Also start the HTML comment block
    strLineBreak = vbCrLf
    Response.Write("<!--" & strLineBreak)
  End If
  

  'Display the Request.Form collection
  Response.Write("DISPLAYING REQUEST.FORM COLLECTION" & strLineBreak)
  For Each sItem In Request.Form
    Response.Write(sItem)
    Response.Write(" - [" & Request.Form(sItem) & "]" & strLineBreak)
  Next
  
  
  'Display the Request.QueryString collection
  Response.Write(strLineBreak & strLineBreak)
  Response.Write("DISPLAYING REQUEST.QUERYSTRING COLLECTION" & strLineBreak)
  For Each sItem In Request.QueryString
    Response.Write(sItem)
    Response.Write(" - [" & Request.QueryString(sItem) & "]" & strLineBreak)
  Next

  
  'If we are wanting to hide the output, display the closing
  'HTML comment tag
  If Not bolShowOutput then Response.Write(strLineBreak & "-->")

  'End page execution if needed
  If bolEndPageExecution then Response.End
End Sub




That's it! To call the function, simply use:

Call FormDataDump(TrueOrFalse, TrueOrFalse)