-3

フォームがページ内で複製されています。私は写真をアップロードすることはできません:( そのためのループがあったことを覚えていません.私はひどく助けが必要です.これは私のものです.

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>
    &nbsp;
    <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 と表示され、検証すら行われません。

4

1 に答える 1

0

初め。新しいチュートリアルを見つけてください。意味のないコードがたくさんあります。このシリーズを強くお勧めします: http://net.tutsplus.com/sessions/codeigniter-from-scratch/

次。フォーム アクションがどこにも導かないため、ページが見つかりません。行で:

echo form_open('start');

コントローラーで「start」という関数を呼び出そうとしていますが、コントローラーにはstartという関数がありません。この機能をレジスタと呼びます。

次。投稿データがあるかどうかを確認する前にフォーム検証を実行しており、投稿データが存在する前に実際に実行しています。

おそらく、フォームの検証が失敗したときに同じビューをページに 2 回ロードしているため、フォームを 2 回取得しています。

正直なところ、ここでの唯一の答えは、行ったことを核にし、CI を再インストールして、上記で説明した一連のチュートリアルに従うことです。あなたがフォローしているチュートリアルは、あなたに非常に悪い習慣を与えているので、彼らがあなたに教えたことを忘れる必要があります. 先に進む前に、Nettuts のチュートリアルを 1 ステップずつ実行し、その内容を理解していることを確認してください。単にコピーして貼り付けて指を交差させないでください。

于 2012-11-09T14:12:54.683 に答える