我遇到了一些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