Я работаю над страницей регистрации в CodeIgniter. Проблема в том, что мои данные не приходят через . Следующий код всегда выдает «fail»:
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: В соответствии с запросом, это то, что выводит сервер: (Я скрыл URL, я не раскрыта)
<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?
Обновление 4: Меня перенаправили в CodeIgniter, установив для base_url значение http://www.url.com вместо http://url.com
После изменения это решило проблему! :)