重复表单并在使用 MYSQL 和 Codeigniter 时遇到问题
Posted
技术标签:
【中文标题】重复表单并在使用 MYSQL 和 Codeigniter 时遇到问题【英文标题】:Duplicating forms and having troubles with MYSQL and Codeigniter 【发布时间】:2012-10-29 19:46:42 【问题描述】:表单在页面中重复。虽然我不能上传图片:( 我不记得有任何循环。我非常需要帮助。这是我的
view_register.php
<body>
<h1>IMAGE HERE</h1>
<div id="body">
<br/>
<p class="body">
<!--trial-->
<?php
echo form_open('start');
$firstname = array(
'name' => 'firstname',
'value' => set_value('firstname')
);
$lastname = array(
'name' => 'lastname',
'value' => set_value('lastname')
);
$email = array(
'name' => 'email',
'value' => set_value('email')
);
$dateofbirth = array(
'name' => 'dateofbirth',
'value' => set_value('dateofbirth')
);
$gender = array(
'name' => 'gender',
'value' => set_value('gender'),
'style' => 'margin:10px'
);
$username = array(
'name' => 'username',
'value' => set_value('username')
);
$password = array(
'name' => 'password',
'value' => ''
);
$confpass = array(
'name' => 'confpass',
'value' => ''
);
?>
<!--trial ends here-->
<strong>User Information: </strong>
<div align="right"><font color="red">*</font>Denotes Required Field</div>
<div align="left">
First Name<font color="red">*</font>:
<?php echo form_input($firstname)?>
<br/>
Last Name<font color="red">*</font>:
<?php echo form_input($lastname)?>
<br/>
Email Address<font color="red">*</font>:
<?php echo form_input($email)?>
<br/>
Date Of Birth:
<?php echo form_input($dateofbirth)?>
<br/>
Gender:
<?php
echo form_radio($gender, 'Male');
echo "Male";
echo form_radio($gender, 'Female');
echo "Female";
?>
<br/>
<strong>Account Information:</strong><br/>
Username<font color="red">*</font>:
<?php echo form_input($username)?><br/>
Password<font color="red">*</font>:
<?php echo form_password($password)?><br/>
Password Confirmation<font color="red">*</font>:
<?php echo form_password($confpass)?><br/>
<?php
echo validation_errors();?>
<?php echo form_submit(array('name'=>'register'), 'Register');?>
<?php echo form_reset(array('name'=>'reset'), 'Reset')?>
</div>
</body>
这是我的 user.php。我不太确定代码。这些大多是我看过的表单教程..
class User extends CI_Controller
private $view_data = array();
function _construct()
parent::_construct();
$this->view_data['base_url']=base_url();
function index()
$this->register();
function register()
$this->load->library('form_validation');
$this->form_validation->set_rules('firstname', 'First Name', 'trim|required|max_length[100]|min_length[1]|xss_clean');
$this->form_validation->set_rules('lastname', 'Last Name', 'trim|required|max_length[100]|min_length[1]|xss_clean');
$this->form_validation->set_rules('email', 'Email Address', 'trim|required|max_length[100]|xss_clean|valid_email');
$this->form_validation->set_rules('dateofbirth', 'Date of Birth', 'trim|max_length[100]|min_length[1]|xss_clean');
$this->form_validation->set_rules('gender', 'Gender', 'trim|max_length[6]|min_length[6]|xss_clean');
$this->form_validation->set_rules('username', 'User Name', 'trim|required|alpha_numeric|callback_username_not_exists|max_length[100]|min_length[6]|xss_clean');
if ($this->form_validation->run() == FALSE)
//not run
$this->load->view('view_register', $this->view_data);
else
//good
$firstname=$this->input->post('firstname');
$lastname=$this->input->post('lastname');
$email=$this->input->post('email');
$dateofbirth=$this->input->post('dateofbirth');
$gender=$this->input->post('gender');
$username=$this->input->post('username');
$password=$this->input->post('password');
$this->User_model->register_user($firstname, $lastname, $email, $dateofbirth, $gender, $username, $password);
$this->load->view('view_register', $this->view_data);
然后我就卡住了。点击注册后,显示Page404 Not Found,甚至没有验证。
【问题讨论】:
请正确解释你的问题,不要强迫别人猜测,否则人家很难帮你。 好的。首先,整个表单在页面中复制。接下来,如果我单击注册按钮,则不会进行任何验证,也不会将其添加到数据库中。最后,单击注册按钮会将我定向到显示 PAGE404 Not Found 的页面。 @MD.SahibBinMahboob 这是正在发生的事情的照片。抱歉,如果我的问题不清楚facebook.com/photo.php?fbid=491072737592358&l=63e418361e 【参考方案1】:首先。寻找新的教程,那里有很多零意义的代码。我强烈推荐这个系列:http://net.tutsplus.com/sessions/codeigniter-from-scratch/
接下来。您找不到页面,因为您的表单操作无处可去。行内:
echo form_open('start');
您试图在控制器中调用一个名为“start”的函数,但控制器中没有名为 start 的函数。该函数称为寄存器。
接下来。在查看是否有任何发布数据之前,您正在运行表单验证,并且您实际上是在可以有任何发布数据之前运行它。
您获得表单两次可能是因为您将相同的视图加载到页面中两次,一次是在表单验证失败时,它显然会在您第一次加载时再次加载,然后在您调用用户模型时再次加载.
老实说,这里唯一的答案是取消您所做的一切,重新安装 CI 并按照我在上面给您的教程系列进行操作。您正在遵循的教程给了您非常糟糕的做法,您需要忘记他们教给您的内容。一步一步地按照 Nettuts 教程进行操作,并确保在继续之前了解它所告诉您的内容。不要只是复制、粘贴和交叉手指。
【讨论】:
非常感谢!我现在会看教程:)以上是关于重复表单并在使用 MYSQL 和 Codeigniter 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
Java - 使用用户表单输入将图像上传到网站,将它们保存在 MySQL 数据库中,并在网站上显示图像