一位朋友向我指出了他的旧网站,并说“提交表单刚刚停止工作,我确信这很简单。”什么打破在这个JavaScript 1.2代码片段?
表单要求孩子查看书中的某个单词,并根据答案,将孩子重定向到成功页面或失败页面。它使用JavaScript 1.2,大约2001年
你可以看到这种形式在行动在:
http://www.secrethidingplaces.com/login1.html
任何想法,为什么它的失败?
的HTML做到这一点:
<script src="password.js" type="text/javascript" language="JavaScript1.2">
</script>
<script type="text/javascript" language="JavaScript1.2">
<!--
function showRightPage()
{
return window.location.href = "extra.html" ;
}
function showWrongPage()
{
return window.location.href = "sorry2.html" ;
}
//-->
</script>
,然后这样的:
document.write ('<form name="questionForm" action="javascript:checkAnswer()" method="post">') ;
...
document.write ('<input type="text" name="userAnswer" value="" size="90">') ;
document.write ('<INPUT TYPE="image" NAME="submit" SRC="stock/btn_send.gif" width="121" height="41" BORDER="0" ALT="submit">') ;
document.write ('\</p>') ;
document.write ('\</form>') ;
我假设有一个从./password.js丑陋的东西在CheckAnswer。我可以破解的形式绕过JavaScript和直行到成功页面:
document.write ('<form name="questionForm" action="extra.html" method="post">') ;
,但我想帮助我的朋友让他的孩子们现场再次合作。 CheckAnswer功能如下。这里有什么问题吗?
function checkAnswer()
{
currentAnswer = answersArray [ choiceNumber ] ;
if (agt.indexOf("msie") != -1)
{
rawAnswer = document.questionForm.userAnswer.value ;
}
else
{
rawAnswer = document.callThis.document.questionForm.userAnswer.value ;
}
lcAnswer = rawAnswer.toLowerCase () ;
includedAnswer = lcAnswer.indexOf ("currentAnswer") ;
zadaAnswer = lcAnswer.indexOf ("zada") ;
brendanAnswer = lcAnswer.indexOf ("brendan") ;
nineAnswer = lcAnswer.indexOf ("nine") ;
thirtyAnswer = lcAnswer.indexOf ("thirty") ;
if (choiceNumber == 0)
{
if (includedAnswer == -1 && zadaAnswer == -1 && brendanAnswer == -1)
{
checked = "wrong" ;
}
}
if (choiceNumber == 8)
{
if (includedAnswer == -1 && zadaAnswer == -1 && nineAnswer == -1)
{
checked = "wrong" ;
}
}
if (choiceNumber == 16)
{
if (includedAnswer == -1 && zadaAnswer == -1 && thirtyAnswer == -1)
{
checked = "wrong" ;
}
}
if (choiceNumber != 0 && choiceNumber != 8 && choiceNumber != 16)
{
if (includedAnswer == -1 && zadaAnswer == -1)
{
checked = "wrong" ;
}
}
if (checked == "wrong")
{
showWrongPage() ;
}
else
{
showRightPage() ;
}
}
谢谢!
请格式化您的代码。 – svinto 2010-04-23 18:34:51
支架汤有这样的东西吗? – 2010-04-23 18:53:55