CodeIgniter système de connexion à l'aide de md5()
Je suis nouveau dans CodeIgniter et à l'aide de CodeIgniter_2.1.3. Je suis NETTUTS CodeIgniter tutoriel. Je veux développer un système de connexion avec codeIgniter, qui fonctionne bien, sans md5() fonction [sans mot de passe crypté] . Puis-je créer un nouveau tableau avec le mot de passe crypté à l'aide de md5() fonction. Ensuite, le code de connexion ne fonctionne pas. Mon code est ::
view/login_form.php
<?php
//form design
echo form_open("login/validate") . "<br/>";
echo form_input("username", "Username") . "<br/> <br/>";
echo form_password("password", "password") . "<br/> <br/>";
echo form_submit("submit", "Login") . "<Br/> <Br/>";
echo anchor("login/sign_up", "Create Account");
?>
controllers/login.php
<?php
class Login extends CI_Controller {
function index() { //function of loading login page
$data['main_content'] = "login_form"; //name of login page
$this->load->view("includes/templet", $data);
}
function validate() { //form validation
$this->load->model("membership_model"); //load "membership_model"
$query = $this->membership_model->validate_user(); //check validation
if( $query ) { //if data found
$data = array( //value which is to be inserted into session
"username" => $this->input->post("username"),
"is_logged_in" => true
);
$this->session->set_userdata($data); //insert value into session
redirect("site/members_area"); //go to predefined page
}
else {
//if data not found then go to login_form page
$this->index();
}
}
//create account
function sign_up() {
$data['main_content'] = "sign_up";
$this->load->view("includes/templet", $data);
}
//insert data into database
function create_member() {
$this->load->library("form_validation"); //load form_validation library
$this->form_validation->set_rules("username", "Username", "trim|required");
$this->form_validation->set_rules("password", "Enter Password", "trim|required|min_length[4]|max_length[32]");
$this->form_validation->set_rules("re_password", "Confirm password", "trim|required|matches[password]");
$this->form_validation->set_rules("email", "Email Address", "trim|required|valid_email");
if( $this->form_validation->run() == FALSE ) {
$this->load->view("sign_up");
}
else {
$this->load->model("membership_model");
if( $query = $this->membership_model->create_member() ) {
//redirect("site/members_area");
$data['main_content'] = "signup_success";
$this->load->view("includes/templet", $data);
}
else {
$this->load->view("sign_up");
}
}
}
}
?>
modèle/membership_model
<?php
class Membership_model extends CI_Model {
function validate_user() {
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get("user");
if( $query->num_rows == 1 ) {
return true;
}
}
function create_member() {
$new_member_insert_data = array(
'username' => $this->input->post("username"),
'password' => md5($this->input->post("password")),
'email' => $this->input->post("email")
);
$insert = $this->db->insert("user", $new_member_insert_data);
return true;
}
}
?>
Ne pas utiliser MD5 pour le stockage de mot de passe c'est l'insécurité. Utiliser les Bcrypt. Aussi, ne pas essayer de réinventer la roue. CodeIgniter a beaucoup de revue par les pairs de l'authentification des bibliothèques qui serait plus sûr et plus facile à l'installation. Voir stackoverflow.com/questions/346980/... pour plus d'info.
1. Quel problème avez-vous exactement? 2. Je ne comprenais pas, VOULEZ-vous vraiment utiliser
1. Quel problème avez-vous exactement? 2. Je ne comprenais pas, VOULEZ-vous vraiment utiliser
md5()
, ou bien vous voulez l'utiliser NON?
OriginalL'auteur sabbir | 2013-06-27
Vous devez vous connecter pour publier un commentaire.
Je pense que la colonne "Mot de passe" dans votre tableau est moins de
varchar(32)
, md5 nécessite 32 type varchar.OriginalL'auteur Charles0429
Pour le mot de passe md5
vérifier la base de données de terrain, parce que md5 générer 32 charactors.. donc modifier le tableau champ de type varchar(32)
OriginalL'auteur Amir Iqbal
Juste modifier cette déclaration de
à
que
row()
dans votreIl fonctionne
OriginalL'auteur aishwarya redkar