如何使用代码点火器从控制器向视图的标签分配值



我使用以下代码在html视图部分中显示登录表单

<form action="/TestApp/index.php/my_controller/validate" method="POST" method="GET">
  Username: <input name="name" type="text"><br />
  Password: <input name="word" type="password"><br />
  <label name = "error"></label><br />
  <input type="submit" value="Login">
</form>

在控制器内部,我验证用户名和密码。以下几行代码帮助我将文本框值输入控制器。

$uName = $_POST['uname'];
$pWord = $_POST['pword'];

我需要从控制器分配/设置字符串值来标记错误。

我该怎么做?请帮帮我。

控制器

class My_controller extends CI_Controller {
public function login()
{
    $this->load->view('login_view');
}
    public function validate()
    {
        $this->load->model('login');

        if((isset($_POST['name'])) && (isset($_POST['word'])) && !empty($_POST['name']) && !empty($_POST['word']))
        {
            $uName = $_POST['name'];
            $pWord = $_POST['word'];
            if($this->model_users->checkUser($uName) == 1) {
                if($this->model_users->checkPassword($uName) == $pWord) {
                    echo 'Loggedin!';
                    $this->session->set_userdata('login_state', TRUE);
                } else {
//                        Incorrect password;
                    redirect( '/' );
                    $error = "Incorrect password!";
                }
            } else {
//                    Username does not exist;
                redirect( '/' );
                $error = "Username does not exist!";
            }
        } else {
//                Username or Password field is empty;
            redirect( '/' );
            $error = "Username or Password field is empty!";
        }
    }
}

操作应该是

action="<?php echo base_url() ?>my_controller/validate"

autoload.php中加载url助手以及

一种正在验证的方法

$uName = $_POST['name']; # not uname
$pWord = $_POST['word']; # not uname

传递日期以查看

在控制器中

$data['error'] = "My Message here";

在视图中

if (!empty($error)) {
    ?>
    <label name ="error"></label>
    <?php
}
else{
}

带有验证的控制器部件代码

<?php
class Form extends CI_Controller {
	function index()
	{
		$this->load->helper(array('form', 'url'));
		$this->load->library('form_validation');
		$this->form_validation->set_rules('username', 'name', 'required');
		$this->form_validation->set_rules('password', 'word', 'required');
		
		if ($this->form_validation->run() == FALSE)
		{
			$this->load->view('myform');
		}
		else
		{
			$this->load->view('formsuccess');
		}
	}
}
?>

试试这个

视图内

 <?php echo form_open('my_controller/validate', ['method'=>'post']) ?>

控制器内部

$uName = $this->input->post['name'];
$pWord = $this->input->post['word'];

纠正此问题,

控制器内

$uName = $this->input->post('name');
$pWord = $this->input->post('word');
if($uName == "" || $pWord == ""){// change the conditions if required.
    $error = 1;
} else {
    $error = 0;
}
$data['error'] = $error;
$this->load->view("view_name",$data);

可视

if($error) { 
    echo "<label>Error has occurred</label>";// change error if required.
}

如果您正在尝试重定向,请使用flashdata()。在控制器中。

$this->session->set_flashdata("error","error message here");

可视

if($this->session->flashdata("error"){
    // echo label here
}

最新更新