试图找出让我的自定义错误消息正常工作的最佳方法。 Isset似乎在codeigniter中不起作用。
由于某些原因,我的输入显示了数字'1'
控制器
<?php
class Step_3 extends MX_Controller {
private $error = array();
public function index() {
if(($this->input->server('REQUEST_METHOD') == 'POST') && $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 } ?>
答案 0 :(得分:0)
您的&#34;验证&#34;函数不会返回任何内容,因此您的第一个if语句永远不会成立。 此时输入将自动具有&#39; localhost&#39;的值。测试空字符串和剥离空格可能更好,以防万一:
if ("" == trim($this->input->post('db_hostname')))