前台js验证,使用ci框架可以直接使用封装好的验证方式,这里可能配置有问题,报 找不到方法的错误,自己没能解决。。 转换思路使用 js 验证,严格来说在ci 框架里不是很规范。
function login(){
var username = $("#un").val();
username=Trim(username);
var password = $("#pw").val();
if(username !=""&& password!=""){
document.getElementById('ms').innerHTML="";
document.form_login.action = "<?php echo site_url('form/index');?>";
document.form_login.submit();
}else{
var a = "<span style='color:red'>用户名或密码不能为空!</span>";
document.getElementById('ms').innerHTML=a;
// alert("用户名或者密码不能为空!");
}
}
//去除空格
function Trim(str)
{
return str.replace(/(^s*)|(s*$)/g, "");
}
controller :
class Form extends CI_Controller
{
public function index()
{
$this->load->helper('form');
$this->load->helper('url');
//$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
//设置表单验证规则
$this->form_validation->set_rules('username', '用户名', 'required');
$this->form_validation->set_rules('password', '密码', 'required',
array('required' => 'You must provide a %s.')
);
if ($this->form_validation->run() == FALSE) {
$this->load->view('login');
} else {
$username = $_POST['username'];
$password = $_POST['password'];
$con = mysqli_connect("10.10.0.65", "root","root","desktop") //选择数据库之前需要先连接数据库服务器
or die("数据库服务器连接失败");
$query = @mysqli_query($con,"select username, userflag from t_user "
."where username = '$username' and password = '$password'")
or die("SQL语句执行失败");
//判断用户是否存在,密码是否正确
if($row = mysqli_fetch_array($query))
{
session_start(); //标志Session的开始
//判断用户的权限信息是否有效,如果为1或0则说明有效
if($row['userflag'] == 1 or $row['userflag'] == 0)
{
$_SESSION['username'] = $row['username'];
$_SESSION['userflag'] = $row['userflag'];
//域名重定向
redirect('welcome/index');
//$this->load->view('index');
//header("Location:index");
//确保重定向后,后续代码不会被执行
exit;
//echo "<a href="main.php" mce_href="main.php">欢迎登录,点击此处进入欢迎界面</a>";
}
else
//如果权限信息无效输出错误信息
{
echo "用户权限信息不正确";
}
}
else
//如果用户名和密码不正确,则输出错误
{
echo "<script language=javascript>alert('用户名或密码错误!');history.back();</script>";
// redirect('welcome/login');
// $this->load->view('login');
// echo "用户名或密码错误";
}
//echo $username,$password;
}
}
麻痹。贴出来才发现 这块还是不规范,不需要再次连接数据库,但是 。。先实现功能再说吧
页面上验证 是否是登陆用户,否则要求重新登陆
<?php
session_start();
if(isset($_SESSION['username']))
{
// if($_SESSION['userflag'] == 1)
// //$log_name = $_SESSION['username'];
// //echo "欢迎管理员".$_SESSION['username']."登陆";
// //echo "<script language=JavaScript> welcome()</script>";
// if($_SESSION['userflag'] == 0)
// //echo "欢迎用户".$_SESSION['username']."登陆";
}
else
{
echo "<script language=javascript>alert('登陆已超时,请重新登陆!');</script>";
// header("Location:login");
$this->load->view('login');
exit () ;
//redirect('welcome/login');
}
?>