#php #codeigniter
#php #codeigniter
Вопрос:
Просто пытаюсь найти лучший способ заставить мое пользовательское сообщение об ошибке работать. Isset, похоже, не работает в codeigniter.
И по какой-то причине мои входные данные отображают число '1'
Контроллер
<?php
class Step_3 extends MX_Controller {
private $error = array();
public function index() {
if(($this->input->server('REQUEST_METHOD') == 'POST') amp;amp; $this->validate()) {
$data['db_hostname'] = $this->input->post('db_hostname');
}
if ($this->error['db_hostname']) {
$data['error_db_hostname'] = $this->error['db_hostname'];
} else {
$data['error_db_hostname'] = '';
}
if ($this->input->post('db_hostname')) {
$data['db_hostname'] = $this->input->post('db_hostname');
} else {
$data['db_hostname'] = 'localhost';
}
}
private function validate() {
if (!$this->input->post('db_hostname')) {
$this->error['db_hostname'] = 'Hostname required!';
}
}
} // End Of
При просмотре примера файла
<input type="text" name="db_hostname" value="<?php echo $db_hostname; ?>" id="input-db-hostname" class="form-control" size="50"/>
<?php if ($error_db_hostname) { ?>
<div class="text-danger"><?php echo $error_db_hostname; ?></div>
<?php } ?>
Ответ №1:
Ваша функция «validate» ничего не возвращает, поэтому ваш первый оператор if никогда не будет true. Также на данный момент входные данные автоматически будут иметь значение ‘localhost’. Возможно, было бы лучше проверить наличие пустой строки и пробелов на всякий случай, например:
if ("" == trim($this->input->post('db_hostname')))
Комментарии:
1. Что насчет этой области $this->ошибка [‘db_hostname’] не удается установить isset
2. Что произойдет, если вы явно присвоите значение error[‘db_hostname’], а затем используете
(isset($this->error['db_hostname']))
, правильно ли оно тогда оценивается?3. никто не продолжает говорить, что не может использовать isset, я пробовал null ! ==
4. Теперь отображается сообщение, но я попробовал его снова, но теперь говорю, что здесь ошибка Undefined index: db_localhost $this->error [‘db_hostname’]
5. Попробуйте вместо этого использовать array_key_exists us2.php.net//manual/en/function . array-key-exists.php