Я реализую простую форму бюллетеня, используя PHP и CodeIgniter, как часть большого проекта.
Мой HTML-код выглядит следующим образом.
<form method="POST" action='http://sit.com/index.php/Users/subscribenews'>
<div class="input-group">
<input type="email" id="pkemailid" name="pkemailid">
<span class="input-group-btn">
<button class="btn btn-lg btn-primary" type="submit"> Go
</button>
</span>
</div><!-- /input-group -->
</form>
В моем контроллере я обрабатываю значение как
$emailid = $this->input->post('pkemailid');
Когда я делаю var_dump переменной $ _POST, я получаю следующее
array(0) { }
Самая большая проблема заключается в том, что я могу выполнить это правильно на моем сервере WAMP на локальном хосте, но это не работает на размещенном сервере.
Интересно, что если я изменю POST на GET, то он начинает работать.
эта линия
<input type="email" id="pkemailid" name="pkemailid">
попробуйте изменить его на
<input type="text" id="pkemailid" name="pkemailid">
type = «email» — это только HTML 5, и я точно не знаю, но codeigniter может не поддерживать значения HTML 5.
===== изменить
так что мое предложение, когда вы находитесь на стадии притягательной реальности, пытаясь найти ошибку — получите свежую новую копию codeigniter, установите на свой сервер, убедитесь, что вы открыли страницу приветствия.
Теперь сделайте простейшую возможную форму и выведите что-то из метода контроллера, чтобы убедиться, что вы отправляете форму правильному методу. Затем добавьте скрытое поле формы со значением и выведите это значение из вашего метода.
Если все это работает, то это не ваш сервер, у вас есть ошибка в исходном коде. И если это не работает, то у вас есть проблема с сервером.
Других решений пока нет …