需要帮助在CodeIgniter中创建注册/登录表单

时间:2016-02-08 23:00:22

标签: php mysql codeigniter

因此我们在同一页面上,我正在按照本教程进行操作:

http://www.kodingmadesimple.com/2015/08/create-simple-registration-form-codeigniter-email-verification.html

除了启动CodeIgniter文件之外,上面的完全我的代码是什么样的。但是这里是那些无法查看链接的人:

我有模特:

<?php
class user_model extends CI_Model
{
function __construct()
{
    // Call the Model constructor
    parent::__construct();
}

//insert into user table
function insertUser($data)
{
    return $this->db->insert('user', $data);
}

//send verification email to user's email id
function sendEmail($to_email)
{
    $from_email = 'team@mydomain.com'; //change this to yours
    $subject = 'Verify Your Email Address';
    $message = 'Dear User,<br /><br />Please click on the below activation link to verify your email address.<br /><br /> http://www.example.com/user/verify/' . md5($to_email) . '<br /><br /><br />Thanks<br />Mydomain Team';

    //configure email settings
    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.mydomain.com'; //smtp host name
    $config['smtp_port'] = '465'; //smtp port number
    $config['smtp_user'] = $from_email;
    $config['smtp_pass'] = '********'; //$from_email password
    $config['mailtype'] = 'html';
    $config['charset'] = 'iso-8859-1';
    $config['wordwrap'] = TRUE;
    $config['newline'] = "\r\n"; //use double quotes
    $this->email->initialize($config);

    //send mail
    $this->email->from($from_email, 'Mydomain');
    $this->email->to($to_email);
    $this->email->subject($subject);
    $this->email->message($message);
    return $this->email->send();
}

//activate user account
function verifyEmailID($key)
{
    $data = array('status' => 1);
    $this->db->where('md5(email)', $key);
    return $this->db->update('user', $data);
}
}
?>

控制器:

 <?php
 class user extends CI_Controller
 {
public function __construct()
{
    parent::__construct();
    $this->load->helper(array('form','url'));
    $this->load->library(array('session', 'form_validation', 'email'));
    $this->load->database();
    $this->load->model('user_model');
}

function index()
{
    $this->register();
}

function register()
{
    //set validation rules
    $this->form_validation->set_rules('fname', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('lname', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
    $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email|is_unique[user.email]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|matches[cpassword]|md5');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required');

    //validate form input
    if ($this->form_validation->run() == FALSE)
    {
        // fails
        $this->load->view('user_registration_view');
    }
    else
    {
        //insert the user registration details into database
        $data = array(
            'fname' => $this->input->post('fname'),
            'lname' => $this->input->post('lname'),
            'email' => $this->input->post('email'),
            'password' => $this->input->post('password')
        );

        // insert form data into database
        if ($this->user_model->insertUser($data))
        {
            // send email
            if ($this->user_model->sendEmail($this->input->post('email')))
            {
                // successfully sent mail
                $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please confirm the mail sent to your Email-ID!!!</div>');
                redirect('user/register');
            }
            else
            {
                // error
                $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                redirect('user/register');
            }
        }
        else
        {
            // error
            $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
            redirect('user/register');
        }
    }
}

function verify($hash=NULL)
{
    if ($this->user_model->verifyEmailID($hash))
    {
        $this->session->set_flashdata('verify_msg','<div class="alert alert-success text-center">Your Email Address is successfully verified! Please login to access your account!</div>');
        redirect('user/register');
    }
    else
    {
        $this->session->set_flashdata('verify_msg','<div class="alert alert-danger text-center">Sorry! There is error verifying your Email Address!</div>');
        redirect('user/register');
         }
     }
 }
 ?>

观点:

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CodeIgniter User Registration Form Demo</title>
    <link href="<?php echo base_url("bootstrap/css/bootstrap.css"); ?>" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container">
<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <?php echo $this->session->flashdata('verify_msg'); ?>
    </div>
</div>

<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h4>User Registration Form</h4>
            </div>
            <div class="panel-body">
                <?php $attributes = array("name" => "registrationform");
                echo form_open("user/register", $attributes);?>
                <div class="form-group">
                    <label for="name">First Name</label>
                    <input class="form-control" name="fname" placeholder="Your First Name" type="text" value="<?php echo set_value('fname'); ?>" />
                    <span class="text-danger"><?php echo form_error('fname'); ?></span>
                </div>

                <div class="form-group">
                    <label for="name">Last Name</label>
                    <input class="form-control" name="lname" placeholder="Last Name" type="text" value="<?php echo set_value('lname'); ?>" />
                    <span class="text-danger"><?php echo form_error('lname'); ?></span>
                </div>

                <div class="form-group">
                    <label for="email">Email ID</label>
                    <input class="form-control" name="email" placeholder="Email-ID" type="text" value="<?php echo set_value('email'); ?>" />
                    <span class="text-danger"><?php echo form_error('email'); ?></span>
                </div>

                <div class="form-group">
                    <label for="subject">Password</label>
                    <input class="form-control" name="password" placeholder="Password" type="password" />
                    <span class="text-danger"><?php echo form_error('password'); ?></span>
                </div>

                <div class="form-group">
                    <label for="subject">Confirm Password</label>
                    <input class="form-control" name="cpassword" placeholder="Confirm Password" type="password" />
                    <span class="text-danger"><?php echo form_error('cpassword'); ?></span>
                </div>

                <div class="form-group">
                    <button name="submit" type="submit" class="btn btn-default">Signup</button>
                    <button name="cancel" type="reset" class="btn btn-default">Cancel</button>
                </div>
                <?php echo form_close(); ?>
                <?php echo $this->session->flashdata('msg'); ?>
            </div>
        </div>
    </div>
</div>
</div>
</body>

我在mySQL中设置了我的数据库,连接到我的本地服务器时,我的表单就好了。

但是在填写表单并点击“注册”后,我在Safari中遇到了这个错误:

http://i.stack.imgur.com/zbhL9.png

知道是什么导致了这个以及如何解决它?

1 个答案:

答案 0 :(得分:0)

如果您使用codeigniter 3

您的基本网址是空白的,这就是为什么$config['base_url'] = ''; 您可以将其留空将在大部分时间内工作,但您可能会将其运行为错误。

$config['base_url'] = 'http://localhost/project/';

设置您的基本网址。

$config['base_url'] = 'http://www.example.com/';

或实时域示例

User.php

更新:

检查您的控制器等,确保您的文件名首字母大写,并且与类相同。示例:class User extends CI_Controller {}brew cask install dropbox

相关问题