有没有高手统一的制定一下CI session的使用方法啊?
大家好,刚接触CI,参考手册打算弄个 用户登录验证的测试,但是总是不知道怎样用session,也看过论坛的帖子,但是还是不行.test_model.php
<?php
class Test_model extends CI_Model {
public function __construct()
{
$this->load->database();
/*
里面有个表users
字段 userid username userpwd
内容 1 testname testpwd
*/
}
public function get_user()
{
$query = $this->db->get('users');
return $query->result_array();
}
}
tests.php
<?php
class Tests extends CI_Controller {
public function __construct()
{
parent::__construct();
// $this->load->library('session');
$this->load->model('test_model');
// $this->load->library('encrypt');
}
public function testlogin()
{
$data['title'] = 'member center';
$this->load->view('memberdir/testlogin',$data);
}
public function testlogincheck()
{
//$this->load->library('session');
$data['member'] = $this->test_model->get_user();
$data['title'] = 'member center';
$this->load->view('memberdir/testlogincheck',$data);
}
}
testlogin.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title ?> - test</title>
</head>
<body>
<form name="form" method="post" action="http://<?phpecho $_SERVER['SERVER_NAME']?>/index.php/tests/testlogincheck">
帐号:<input type="text" name="uname" /> <br> <br /><br />
密码:<input type="password" name="pword" /> <br>
<input type="submit" name="button" value="登入" />
</form>
</body>
</html>
testlogincheck.php
<?php
$uname = $_POST['uname'];
$pword = $_POST['pword'];
?>
<?php foreach ($member as $member_item): ?>
<?php
if($uname != null && $pword != null && $member_item['username'] == $uname && $member_item['userpwd'] == $pword)
{
//将帐号写入session,方便验证使用者身份
//$_SESSION['username'] = $uname;
//$newdata = array(
// 'status' => 'OK',
// );
//$this->session->set_userdata($newdata);
//session_start();
// 注册登陆成功的 admin 变量,并赋值 true
//$_SESSION["admin"] = true;
// $this->session->set_userdata('theusername', $uname);
echo '登入成功!';
echo '<meta http-equiv="refresh" content="2;url=testloginedindex">';
}
else
{
echo '登入失败!';
echo '<meta http-equiv="refresh" content="2;url=testlogin" >';
}
?>
<?php endforeach ?>
testloginedindex.php
<?php
// 防止全局变量造成安全隐患
//$admin = false;
// 启动会话,这步必不可少
//session_start();
// 判断是否登陆
//if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true)
//{
echo "您好,你已经登录";
?>
<?php
// }
// else
echo "你还没有登录";
?>
A PHP Error was encounteredSeverity: Warning
Message:session_start() : Cannot send session cookie - headers already sent by (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: tests/testloginedindex.php.php
Line Number: 14
A PHP Error was encounteredSeverity: Warning
Message:session_start() : Cannot send session cache limiter - headers already sent (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: tests/testloginedindex.php.php
Line Number: 14
你还没有登录
A PHP Error was encounteredSeverity: Warning
Message:Cannot modify header information - headers already sent by (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: libraries/Session.php
Line Number: 672
如果按照手册上面内容写的话,就任何页面都出现这个错误.是我配置的问题吗?还是什么问题呢?
你这个是BOM问题,就是说你写代码的编辑器不行~
看手册就可以用好session的~ 另存为无BOM的utf-8格式。 我现在也没抽出时间按照楼上说的进行测试.
我直接又重新实现了一遍.
用的notepad++.我记得一直都是选择的 utf-8 无bom那个选项啊.
好像是.
重写了一遍.session可以了.
同时也对CI更清楚了一点.
:time:
页:
[1]