我正在處理CodeIgniter中的註冊頁面。 問題是,我的發佈數據不通過。下面的代碼總是產生「失敗」:
class Signup extends CI_Controller {
function index()
{
if ($this->input->post())
{
echo 'success';
}
else
{
echo 'fail';
echo form_open('signup');
echo form_input('username', 'Username');
echo form_input('email_address', 'Email address');
echo form_submit('submit', 'Create Acccount');
echo form_close();
}
}
}
可能是什麼問題呢?
爲了使事情更有趣,在我的本地主機上,表單工作得很好。這是在遠程服務器發生故障時。
更新1:按照要求,這是服務器輸出:(我模糊的網址,我不披露下)
<form accept-charset="utf-8" method="post" action="http://www.url.com/signup">
<input type="text" value="Username" name="username">
<input type="text" value="Email address" name="email_address">
<input type="submit" value="Create Account" name="submit">
</form>
更新2:我看到本地主機和遠程服務器之間的另一個行爲差異:在提交表單後刷新(cmd R或F5)頁面時,本地主機上的瀏覽器要求我再次發送表單。遠程服務器上的相同頁面不會從瀏覽器調用該問題,因此看起來像是一些重定向或url問題導致了問題?
更新3:看來,在遠程服務器上,用戶正在被重定向301(永久移動)我仍然不知道在哪裏這個重定向的來源。重定向有效地殺死後數據,所以它解釋了爲什麼post()返回false。
那麼,有誰知道我爲什麼會被301'd?
更新4:我被代替中設置我的BASE_URL爲http://www.url.com的http://url.com
改變這種後的笨重定向,它解決了這個問題! :)
什麼是$這個 - 定義>輸入 - >後只工作()? – 2011-05-15 10:53:10
@Chris Rasys - 你是什麼意思? – Kriem 2011-05-15 10:54:24
這不能從你展示的片段中回答。安裝Xdebug並逐步完成請求,找出錯誤的位置。在旁註:控制器不應該回聲。 – Gordon 2011-05-15 10:56:39