<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>'Oddest Problem with request.form' Thread RSS Feed</title>
    <link>http://www.programmersheaven.com/</link>
    <description>Contains the latest posts from the thread 'Oddest Problem with request.form' posted on the 'Active Server Pages' forum at Programmer's Heaven.</description>
    <language>en</language>
    <copyright>Copyright 2013 Programmers Heaven</copyright>
    <pubDate>Sat, 18 May 2013 19:08:15 -0700</pubDate>
    <lastBuildDate>Sat, 18 May 2013 19:08:15 -0700</lastBuildDate>
    <generator>Argotic Syndication Framework 2007.3.0.1, http://www.codeplex.com/Argotic</generator>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <ttl>360</ttl>
    <image>
      <url>http://www.programmersheaven.com/images/ph.gif</url>
      <title>Programmers Heaven</title>
      <link>http://www.programmersheaven.com/</link>
      <width>88</width>
      <height>31</height>
    </image>
    <item>
      <title>Oddest Problem with request.form</title>
      <link>http://www.programmersheaven.com/mb/aspfaq/354916/354916/oddest-problem-with-requestform/</link>
      <description>I have a form as shown below (I removed all the table tags for clarity):&lt;br /&gt;
==================================================&lt;br /&gt;
&amp;lt;form name="account_setup" method="POST" action="/customer/register.asp"&amp;gt;&lt;br /&gt;
   &amp;lt;input type="hidden" name="referer" value=&amp;gt;&lt;br /&gt;
   User id: &amp;lt;input type="text" name="userid" size="20"&amp;gt;&lt;br /&gt;
   Password: &amp;lt;input type="password" name="userpass" size="20"&amp;gt;&lt;br /&gt;
   E-mail address: &amp;lt;input type="text" name=email size="50"&amp;gt;&lt;br /&gt;
   First Name: &amp;lt;input type="text" name=first size="50"&amp;gt;&lt;br /&gt;
   Last Name: &amp;lt;input type=text name=last size="50"&amp;gt;&lt;br /&gt;
   Company: &amp;lt;input type=text name=company size="80"&amp;gt;&lt;br /&gt;
   Street: &amp;lt;input type=text name=address1 size="80"&amp;gt;&lt;br /&gt;
   Suite: &amp;lt;input type=text name=address2 size="50"&amp;gt;&lt;br /&gt;
   City: &amp;lt;input type=text name=city size="80"&amp;gt;&lt;br /&gt;
   State: &amp;lt;input type=text name=state size="2"&amp;gt;&lt;br /&gt;
   Zip: &amp;lt;input type=text name=zip size="10"&amp;gt;&lt;br /&gt;
   Country: &amp;lt;input type=text name=country size="50"&amp;gt;&lt;br /&gt;
   Phone: &amp;lt;input type=text name=night_phone_a size="3"&amp;gt;-&lt;br /&gt;
       &amp;lt;input type=text name=night_phone_b size="3"&amp;gt;-&lt;br /&gt;
       &amp;lt;input type=text name=night_phone_c size="4"&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;input type="submit" value="Submit" name="B1" onclick="validate('account_setup');"&amp;gt;  &amp;lt;input type="reset" value="Reset" name="B2"&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
==================================================&lt;br /&gt;
&lt;br /&gt;
The following is the .asp code which is called when the form is submitted:&lt;br /&gt;
==================================================&lt;br /&gt;
&amp;lt;%@ Language=VBScript %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%&lt;br /&gt;
Dim	u1			' Form storage variables&lt;br /&gt;
Dim	u2&lt;br /&gt;
Dim	u3&lt;br /&gt;
Dim	u4&lt;br /&gt;
Dim	u5&lt;br /&gt;
Dim	u6&lt;br /&gt;
Dim	u7&lt;br /&gt;
Dim	u8&lt;br /&gt;
Dim	u9&lt;br /&gt;
Dim	u10&lt;br /&gt;
Dim	u11&lt;br /&gt;
Dim	u12&lt;br /&gt;
Dim u13&lt;br /&gt;
Dim	u13b&lt;br /&gt;
Dim	u13c&lt;br /&gt;
Dim	u14&lt;br /&gt;
%&amp;gt;&lt;br /&gt;
The form data &amp;lt;%= Request.Form %&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;%&lt;br /&gt;
If Request.Form("userid") &amp;gt; "" Then&lt;br /&gt;
	u1  = Trim(Request.Form("userid"))&lt;br /&gt;
	u2  = Trim(Request.Form("userpass"))&lt;br /&gt;
	u3  = Trim(Request.Form("email"))&lt;br /&gt;
	u4  = Trim(Request.Form("first"))&lt;br /&gt;
	u5  = Trim(Request.Form("last"))&lt;br /&gt;
	u6  = Trim(Request.Form("company"))&lt;br /&gt;
	u7  = Trim(Request.Form("address1"))&lt;br /&gt;
	u8  = Trim(Request.Form("address2"))&lt;br /&gt;
	u9  = Trim(Request.Form("city"))&lt;br /&gt;
	u10 = Trim(Request.Form("state"))&lt;br /&gt;
	u11 = Trim(Request.Form("zip"))&lt;br /&gt;
	u12 = Trim(Request.Form("country"))&lt;br /&gt;
	u13 = Trim(Request.Form("night_phone_a"))&lt;br /&gt;
	u13b = Trim(Request.Form("night_phone_b"))&lt;br /&gt;
	u13c = Trim(Request.Form("night_phone_c"))&lt;br /&gt;
	u14 = Trim(Request.Form("referer"))&lt;br /&gt;
&lt;br /&gt;
    'combine the phone number into one string&lt;br /&gt;
    u13 = u13 &amp;amp;u13b &amp;amp;u13c&lt;br /&gt;
&lt;br /&gt;
    response.write("Form Variables: &amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("userid = " &amp;amp;u1 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("userpass = " &amp;amp;u2 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("email = " &amp;amp;u3 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("first = " &amp;amp;u4 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("last = " &amp;amp;u5 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("company = " &amp;amp;u6 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("addr1 = " &amp;amp;u7 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("addr2 = " &amp;amp;u8 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("city = " &amp;amp;u9 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("st = " &amp;amp;u10 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("zip =" &amp;amp;u11 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("country = " &amp;amp;u12 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("phone = " &amp;amp;u13 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("referer = " &amp;amp;u14 &amp;amp;"&amp;lt;br&amp;gt;")&lt;br /&gt;
&lt;br /&gt;
    ' Build the SQL insert command&lt;br /&gt;
    strSQL = "Insert INTO users (usr_id, usr_pass, usr_first, usr_last, usr_company, usr_addr1, usr_addr2, usr_city, usr_st, usr_postal, usr_country, usr_phone, usr_email, usr_referer) Values ('" &amp;amp;u1 &amp;amp;"','" &amp;amp;u2 &amp;amp;"','" &amp;amp;u4 &amp;amp;"','" &amp;amp;u5 &amp;amp;"','" &amp;amp;u6 &amp;amp;"','" &amp;amp;u7 &amp;amp;"','" &amp;amp;u8 &amp;amp;"','" &amp;amp;u9 &amp;amp;"','" &amp;amp;u10 &amp;amp;"','" &amp;amp;u11 &amp;amp;"','" &amp;amp;u12 &amp;amp;"','" &amp;amp;u13 &amp;amp;"','" &amp;amp;u3 &amp;amp;"','" &amp;amp;u14 &amp;amp;"')"&lt;br /&gt;
    response.write(strSQL)&lt;br /&gt;
End If&lt;br /&gt;
%&amp;gt;&lt;br /&gt;
==================================================&lt;br /&gt;
The line "The form data &amp;lt;%= Request.Form %&amp;gt;" will print all the form data while the lines: &lt;br /&gt;
    response.write("Form Variables: &amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("userid = " &amp;amp;u1 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("userpass = " &amp;amp;u2 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    response.write("email = " &amp;amp;u3 &amp;amp;"&amp;lt;br&amp;gt;" )&lt;br /&gt;
    {snip] all the remaining response.writes&lt;br /&gt;
Only print out the userid and userpass (u1 and u2), no other variables will print.&lt;br /&gt;
&lt;br /&gt;
doing a response.write on strSQL shows the sql string but only with u1 and u2, all other uX variables are blank.&lt;br /&gt;
&lt;br /&gt;
Here is the output:&lt;br /&gt;
==================================================&lt;br /&gt;
The form data referer=&amp;amp;userid=ttest&amp;amp;userpass=0427&amp;amp;passtwo=&amp;amp;%94em
ail%94=mailloop@localhost.com&amp;amp;%94first%94=Tim&amp;amp;%94l
ast%94=Test&amp;amp;%94company%94=Anycompany%2C+Inc.&amp;amp;%94ad
dress1%94=11108+Masters+Way&amp;amp;%94address2%94=C-102&amp;amp;%94city%94=Augusta&amp;amp;%94state%94=GA&amp;amp;%94zip%94=30
342&amp;amp;%94country%94=USA&amp;amp;%94night_phone_a%94=404&amp;amp;%94n
ight_phone_b%94=111&amp;amp;%94night_phone_c%94=2222&amp;amp;B1=Su
bmit &lt;br /&gt;
&lt;br /&gt;
Form Variables: &lt;br /&gt;
userid = ttest&lt;br /&gt;
userpass = 0427&lt;br /&gt;
email = &lt;br /&gt;
first = &lt;br /&gt;
last = &lt;br /&gt;
company = &lt;br /&gt;
addr1 = &lt;br /&gt;
addr2 = &lt;br /&gt;
city = &lt;br /&gt;
st = &lt;br /&gt;
zip =&lt;br /&gt;
country = &lt;br /&gt;
phone = &lt;br /&gt;
referer = &lt;br /&gt;
Insert INTO users (usr_id, usr_pass, usr_first, usr_last, usr_company, usr_addr1, usr_addr2, usr_city, usr_st, usr_postal, usr_country, usr_phone, usr_email, usr_referer) Values ('ttest','0427','','','','','','','','','','','','
')&lt;br /&gt;
==================================================&lt;br /&gt;
&lt;br /&gt;
Clearly something is happening to variables u3 through u14 but I have no clue what it could be!&lt;br /&gt;
&lt;br /&gt;
Please HELP!!!&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
Phil&lt;br /&gt;</description>
      <guid isPermaLink="true">http://www.programmersheaven.com/mb/aspfaq/354916/354916/oddest-problem-with-requestform/</guid>
      <pubDate>Fri, 02 Mar 2007 22:19:14 -0700</pubDate>
      <category>Active Server Pages</category>
    </item>
    <item>
      <title>Re: Oddest Problem with request.form</title>
      <link>http://www.programmersheaven.com/mb/aspfaq/354916/354976/re-oddest-problem-with-requestform/#354976</link>
      <description>hi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Think I got the problem!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=text name=last size="50"&amp;gt; &lt;br /&gt;
&lt;br /&gt;
you are using  and not " around the type attribute value.&lt;br /&gt;
&lt;br /&gt;
You see that in &lt;br /&gt;
&lt;br /&gt;
The form data referer=&amp;amp;userid=ttest&amp;amp;userpass=0427&amp;amp;passtwo=&amp;amp;%94em
ail%....&lt;br /&gt;
&lt;br /&gt;
Because there's a lot of %94 and those should not be there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, do not use &lt;br /&gt;
&lt;br /&gt;
strSQL = "Insert INTO users (usr_id, usr_pass, usr_first, usr_last, usr_company, usr_addr1, usr_addr2, usr_city, usr_st, usr_postal, usr_country, usr_phone, usr_email, usr_referer) Values ('" &amp;amp;u1 &amp;amp;"','" &amp;amp;u2 &amp;amp;"','" &amp;amp;u4 &amp;amp;"','" &amp;amp;u5 &amp;amp;"','" &amp;amp;u6 &amp;amp;"','" &amp;amp;u7 &amp;amp;"','" &amp;amp;u8 &amp;amp;"','" &amp;amp;u9 &amp;amp;"','" &amp;amp;u10 &amp;amp;"','" &amp;amp;u11 &amp;amp;"','" &amp;amp;u12 &amp;amp;"','" &amp;amp;u13 &amp;amp;"','" &amp;amp;u3 &amp;amp;"','" &amp;amp;u14 &amp;amp;"')" &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
it is a bad practice because it is a major security risk and &lt;br /&gt;
will allow for SQL_injection attacks.&lt;br /&gt;
see &lt;a href="http://en.wikipedia.org/wiki/SQL_injection"&gt;http://en.wikipedia.org/wiki/SQL_injection&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I also usually add a &amp;amp; "" to the request.form statements like&lt;br /&gt;
&lt;br /&gt;
u10 = Trim(Request.Form("state") &amp;amp; "" ) &lt;br /&gt;
&lt;br /&gt;
So that if the "state" field is missing in the HTML form, then &lt;br /&gt;
you will not get an error/crash. Request.Form("state") returns&lt;br /&gt;
null in that case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: Blue;"&gt;&lt;em&gt;&lt;strong&gt;/WEBMASTER&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</description>
      <guid isPermaLink="true">http://www.programmersheaven.com/mb/aspfaq/354916/354976/re-oddest-problem-with-requestform/#354976</guid>
      <pubDate>Sun, 04 Mar 2007 09:47:42 -0700</pubDate>
      <category>Active Server Pages</category>
    </item>
    <item>
      <title>Re: Oddest Problem with request.form</title>
      <link>http://www.programmersheaven.com/mb/aspfaq/354916/355072/re-oddest-problem-with-requestform/#355072</link>
      <description>Good catch on the quotes... not sure how those got in there but its certainly a good example of the block-copy method of bug propogation! LOL&lt;br /&gt;
&lt;br /&gt;
I'll look closer at the SQL injection issues... thanks for that tip!&lt;br /&gt;
&lt;br /&gt;
Phil&lt;br /&gt;
: hi&lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: Think I got the problem!&lt;br /&gt;
: &lt;br /&gt;
: &amp;lt;input type=text name=last size="50"&amp;gt; &lt;br /&gt;
: &lt;br /&gt;
: you are using  and not " around the type attribute value.&lt;br /&gt;
: &lt;br /&gt;
: You see that in &lt;br /&gt;
: &lt;br /&gt;
: The form data referer=&amp;amp;userid=ttest&amp;amp;userpass=0427&amp;amp;passtwo=&amp;amp;%94em
ail%....&lt;br /&gt;
: &lt;br /&gt;
: Because there's a lot of %94 and those should not be there.&lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: Also, do not use &lt;br /&gt;
: &lt;br /&gt;
: strSQL = "Insert INTO users (usr_id, usr_pass, usr_first, usr_last, usr_company, usr_addr1, usr_addr2, usr_city, usr_st, usr_postal, usr_country, usr_phone, usr_email, usr_referer) Values ('" &amp;amp;u1 &amp;amp;"','" &amp;amp;u2 &amp;amp;"','" &amp;amp;u4 &amp;amp;"','" &amp;amp;u5 &amp;amp;"','" &amp;amp;u6 &amp;amp;"','" &amp;amp;u7 &amp;amp;"','" &amp;amp;u8 &amp;amp;"','" &amp;amp;u9 &amp;amp;"','" &amp;amp;u10 &amp;amp;"','" &amp;amp;u11 &amp;amp;"','" &amp;amp;u12 &amp;amp;"','" &amp;amp;u13 &amp;amp;"','" &amp;amp;u3 &amp;amp;"','" &amp;amp;u14 &amp;amp;"')" &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: it is a bad practice because it is a major security risk and &lt;br /&gt;
: will allow for SQL_injection attacks.&lt;br /&gt;
: see &lt;a href="http://en.wikipedia.org/wiki/SQL_injection"&gt;http://en.wikipedia.org/wiki/SQL_injection&lt;/a&gt; &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: I also usually add a &amp;amp; "" to the request.form statements like&lt;br /&gt;
: &lt;br /&gt;
: u10 = Trim(Request.Form("state") &amp;amp; "" ) &lt;br /&gt;
: &lt;br /&gt;
: So that if the "state" field is missing in the HTML form, then &lt;br /&gt;
: you will not get an error/crash. Request.Form("state") returns&lt;br /&gt;
: null in that case.&lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
: &lt;span style="color: Blue;"&gt;&lt;em&gt;&lt;strong&gt;/WEBMASTER&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
: &lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;</description>
      <guid isPermaLink="true">http://www.programmersheaven.com/mb/aspfaq/354916/355072/re-oddest-problem-with-requestform/#355072</guid>
      <pubDate>Mon, 05 Mar 2007 23:13:42 -0700</pubDate>
      <category>Active Server Pages</category>
    </item>
  </channel>
</rss>