我遇到了一些Ruby CGI的问题。从当前页面重定向到新页面
我有一个主页(index.cgi
),它是HTML和Ruby的混合体,并且有一个登录表单。
点击提交按钮后,POST的操作是同一页面(index.cgi
),此时我检查以确保用户已将数据输入到正确的字段中。
我有一个计数器,每增加一个字段就会增加1。如果此计数器为0,我想将当前加载的页面更改为诸如contents.html之类的内容。
有了这个,我有:
if (errorCount > 0)
do nothing
else
....
end
我需要什么,把在那里我有......?
不幸的是我不能使用任何框架,因为这是大学课程,所以必须使用基本的Ruby。
至于使用您建议的CGI#标头方法,我尝试过使用它,但它不适合我。
如上所述,我的页面是index.cgi。这是使用“here doc”语句的Ruby和HTML的混合体。
在我的代码页的顶部,我有我的shebang行,后面跟着一个HTML头语句。
然后我做了CGI表单验证的一部分,在这个我已经尝试做类似的事情:print this.cgi({'Status'=>'302 Moved','location'=> '{http:/ /localhost:10000/contents.html'})
所发生的只是这行打印在浏览器窗口的顶部,位于我的index.cgi页面上方。
我希望这是有道理的。
没有看到源代码,我们的能力是有限的。 –
您必须在任何其他输出之前发送标题,否则CGI将为您创建默认标题。我通过一个非常简单的例子链接更新了我的答案。 – gioele
Gioele,非常感谢您的帮助。我犯了一个愚蠢的错误,在我的文件顶部放置“puts”Content-Type:text/html \ n \ n“”。我现在已经将它移动到我的表单验证脚本(具有重定向语句)下面并且它可以工作。 – Nick