Ich habe ein Login-Formular in codeigniter erstellt, aber wenn ich mich mit den Benutzerdaten einloggen, die ich in der Datenbank registriert habe, schlägt es fehl ("Ungültiger Benutzername und Passwort"). Ich versuche dieses Problem zu lösen, bitte hilf mir! Mein Controller ist unter: login.phpUngültiger Benutzername und Passwort in codeigniter
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class login extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->helper('form');
$this->load->helper('url');
$this->load->helper('html');
$this->load->database();
$this->load->library('form_validation');
//load the login model
$this->load->model('login_model');
}
public function index()
{
//get the posted values
$username = $this->input->post("txt_username");
$password = $this->input->post("txt_password");
//set validations
$this->form_validation->set_rules("txt_username", "Username");
$this->form_validation->set_rules("txt_password", "Password");
if ($this->form_validation->run() == FALSE)
{
//validation fails
$this->load->view('login_view');
}
else
{
//validation succeeds
if ($this->input->post('btn_login') == "Login")
{
//check if username and password is correct
$usr_result = $this->login_model->get_user($username,
$password);
if ($usr_result > 0) //active user record is present
{
//set the session variables
$sessiondata = array(
'username' => $username,
'loginuser' => TRUE
);
$this->session->set_userdata($sessiondata);
redirect("index");
}
else
{
$this->session->set_flashdata('msg', '<div class="alert
alert-danger text-center">Invalid username and password!</div>');
redirect('login/index');
}
}
else
{
redirect('login/index');
}
}
}
}?>
Mein Modell: login_model.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class login_model extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
//get the username & password from tbl_usrs
function get_user($usr, $pwd)
{
$sql = "select * from tbl_users where username = '" . $usr . "' and
password = '" . md5($pwd) . "' and status = 'active'";
$query = $this->db->query($sql);
//echo $sql; exit;
return $query->num_rows();
}
}?>
Meine Ansicht: login_view.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Form</title>
<!--link the bootstrap css file-->
<link
href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
.colbox {
margin-left: 0px;
margin-right: 0px;
}
</style>
</head>
<body>
<div class="container" style="margin-top: 100px;">
<div class="row">
<div class="col-lg-6 col-sm-6">
<h1>Welcome!</h1>
</div>
<div class="col-lg-6 col-sm-6">
<ul class="nav nav-pills pull-right" style="margin-top:20px">
<li class="active"><a href="#">Login</a></li>
</ul>
</div>
</div>
</div>
<hr/>
<div class="container">
<div class="row">
<div class="col-lg-4 col-sm-4 well">
<?php
$attributes = array("class" => "form-horizontal", "id" => "loginform",
"name" => "loginform");
echo form_open("login/index", $attributes);?>
<fieldset>
<legend>Login</legend>
<div class="form-group">
<div class="row colbox">
<div class="col-lg-4 col-sm-4">
<label for="txt_username" class="control-
label">Username</label>
</div>
<div class="col-lg-8 col-sm-8">
<input class="form-control" id="txt_username"
name="txt_username" placeholder="Username" type="text" value="<?php echo
set_value('txt_username'); ?>" />
<span class="text-danger"><?php echo
-form_error('txt_username'); ?></span>
</div>
</div>
</div>
<div class="form-group">
<div class="row colbox">
<div class="col-lg-4 col-sm-4">
<label for="txt_password" class="control-label">Password</label>
</div>
<div class="col-lg-8 col-sm-8">
<input class="form-control" id="txt_password"
name="txt_password" placeholder="Password" type="password" value="<?php
echo set_value('txt_password'); ?>" />
<span class="text-danger"><?php echo
form_error('txt_password'); ?></span>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-12 col-sm-12 text-center">
<input id="btn_login" name="btn_login" type="submit"
class="btn btn-default" value="Login" />
<input id="btn_cancel" name="btn_cancel" type="reset"
class="btn btn-default" value="Cancel" />
</div>
</div>
</fieldset>
<?php echo form_close(); ?>
<?php echo $this->session->flashdata('msg'); ?>
</div>
</div>
</div>
<!--load jQuery library-->
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<!--load bootstrap.js-->
<script
src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js">
</script>
</body>
</html>
Hinweis: Sie müssen nicht die Controller und Modelle mit '>' https://www.codeigniter.com/user_guide/general/styleguide.html#php-closing- schließen? Tag – user4419336
Und auch nicht MD5 für Passwörter sehr sehr unsicher verwenden stattdessen http://php.net/manual/en/function.password-hash.php und http://php.net/manual/en/function. password-verify.php – user4419336
Danke 4 Vorschläge, findest du irgendeinen Fehler in meinem Code? Warum kann ich mich nicht anmelden? @ wolfgang1983 –