Один мой дом работает в моем классическом ASP-классе - это создание простой формы входа в систему, страницы, которая обрабатывает форму путем сохранения значений в куки-файлах, а затем отображает страницу, которая берет значения из куки-файла и сохраняет их в переменных сеанса. а затем отображает результаты в html-странице.
Я обнаружил, что это домашнее задание работает должным образом в версиях / установках Firefox для IE, Chrome, Opera, Safari, Maxthon, Avant и SOME. Это сильно сбило меня с толку. Firefox был моим любимым браузером уже пару лет. У меня дома Firefox 5 и 9, на 64-битных машинах Win7. И все возвращается как «неопределенный» на этих двух машинах. Win XP 32 бит / Firefox на компьютерах в школе делает это домашнее задание правильно. Это приводит меня к мысли, что проблема заключается в комбинации 64-битной ОС и Firefox.
Вот мой код:
Register.asp
<form name="frmLogon" id="frmLogon" method="post" action="session.asp">
<h3>Logon</h3>
<label for="txtUserName">
Username:
<input type="text" name="txtUserName" maxlength="20" />
</label>
<br /><br />
<label for="txtPassword">
Password:
<input type="text" name="txtPassword" maxlength="20" />
</label>
<input type="hidden" name="hidSessionID" value="Session.SessionID"/>
<br /><br />
<center>
<input type="submit" value="Submit" name="btnSubmit"/>
<input type="reset" value="Reset" name="btnReset" />
</center>
</form>
</body>
Session.asp
<body>
<%
// Populate the cookie
Response.Cookies("registration")("UserName") = Request.Form("txtUserName");
Response.Cookies("registration")("Password") = Request.Form("txtPassword");
Response.Cookies("registration")("SessionID") = Session.SessionID;
Response.Cookies("registration")("Date") = Date();
Response.Cookies("registration")("Referer") = Request.ServerVariables("HTTP_REFERER");
Response.Cookies("registration")("RemoteIP") = Request.ServerVariables("REMOTE_ADDR");
// script required to set expiration date. (Not shown in textbook or sample code...)
var dtmDate;
dtmDate = new Date()
intMonth = dtmDate.getMonth() + 1
dtmDate.setDate(dtmDate.getDate() + 7)
strExpireDate = intMonth + "/" + dtmDate.getDate() + "/" + dtmDate.getFullYear()
Response.Cookies("registration").Expires = strExpireDate
Response.Redirect("Display.asp");
%>
</body>
Display.asp
<body>
<%
Break();
Response.write("<font color='blue'>The cookies keys and values:</font>");
Break();
Response.write("UserName: " + (Request.cookies("registration")("UserName")));
Break();
Response.write("Password: " + (Request.cookies("registration")("Password")));
Break();
Response.write("SessionID: " + (Request.cookies("registration")("SessionID")));
Break();
Response.write("Date: " + (Request.cookies("registration")("Date")));
Break();
Response.write("Referer: " + (Request.cookies("registration")("Referer")));
Break();
Response.write("RemoteIP: " + (Request.cookies("registration")("RemoteIP")));
Break();
Response.write("<hr />");
Break();
// Assign the cookie values to Session variables
Session("UserName") = Request.Cookies("registration")("UserName")
Session("Password") = Request.Cookies("registration")("Password")
Session("SessionID") = Request.Cookies("registration")("SessionID")
Session("Date") = Request.Cookies("registration")("Date")
Session("Referer") = Request.Cookies("registration")("Referer")
Session("RemoteIP") = Request.Cookies("registration")("RemoteIP")
// Display the session variables populated from the cookie.
Response.write("<font color='blue'>The session variables, populated by the cookies keys and values:</font>");
Break();
Response.write("UserName: " + Session("UserName"))
Break();
Response.write("Password: " + Session("Password"))
Break();
Response.write("SessionID: " + Session("SessionID"))
Break();
Response.write("Date: " + Session("Date"))
Break();
Response.write("Referer: " + Session("Referer"))
Break();
Response.write("Remote IP: " + Session("RemoteIP"))
Break();
Response.write("<hr />");
Break();
// Display the session variables populated from the cookie.
Response.write("<font color='blue'>The unformatted output of the 'Response.Write(Request.ServerVariables('HTTP_COOKIE'))' command:</font>");
Break();
Response.Write(Request.ServerVariables("HTTP_COOKIE"))
function Break()
{
Response.write("<br></br>")
}
%>
</body>
Может кто-нибудь объяснить, почему все это упражнение возвращает «неопределенные» переменные только в Firefox на 64-битной Win 7?