默认的session存储方法为文件形式,在MAC里面的路径是/private/var/tmp。
若要用数据库存储session的话,需在Conf/config.php里面加入'SESSION_TYPE' => 'Db',,这是由于ThinkPHP/Common/function里面有个函数function session($name,$value='')是这样写的:
if(C('SESSION_TYPE')) { // 读取session驱动
$class = 'Session'. ucwords(strtolower(C('SESSION_TYPE')));
// 检查驱动类
if(require_cache(EXTEND_PATH.'Driver/Session/'.$class.'.class.php')) {
$hander = new $class();
$hander->execute();
}else {
// 类没有定义
throw_exception(L('_CLASS_NOT_EXIST_').': ' . $class);
}
}
当SESSION_TYPE不为空,即为真的时候,就会执行上面的代码,$class就会赋值为'SessionDb',就会引入执行ThinkPHP/Extend/Driver/Session/SessionDb.class.php这个文件,然后执行此类的execute()函数。
要用数据库存储,当然要那一个数据库表了,这个表在SessionDb.class.php的开始部分有给出,SQL语句是这样:
CREATE TABLE think_session (
session_id varchar(255) NOT NULL,
session_expire int(11) NOT NULL,
session_data blob,
UNIQUE KEY `session_id` (`session_id`)
);
此时在Action里面的显示视图的函数可写echo session_id();来输出保存的session,在数据表think_session用select显示内容,也可看到,不过data是空的。再在前面加上一句$_SESSION['username']='admin';,刷新再查数据表即可看到data有内容了。
如果用Redis保存的话,则config.php改为'SESSION_TYPE' => 'Redis','REDIS_HOST'=>'127.0.0.1','REDIS_PORT'=>6379,,然后在Session下新建SessionRedis.class.php,类似地,里面有Class SessionRedis,有函数execute,有open、cloas、read、write、destroy、gc等函数。
分页类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php里,要用的时候,用一句import('ORG/Util/Page');就引入了。下面是代码,有注释:
public function index(){
import('ORG.Util.Page');//引入Page类
$count=M('wish') -> count();//求出wish的条数
$page= new Page($count,6);//实例化Page,第一个参数是总条件,第2个为每页显示多少条
$limit= $page->firstRow . ',' . $page->listRows;//显示第几页的limit
$wish = M('wish') -> order('time desc') -> limit($limit) -> select();//找出要显示的wish
$this->wish = $wish;//将wish赋值分配过去,让Tpl显示视图可以直接用
$this->page = $page->show();//分配过去
//var_dump($wish);die;
$this-> display();
}
视图HTML显示页码时,直接用{$page}就可以了。原代码如下:
<table class='table'>
<tr>
<th>ID</th>
<th>发布者</th>
<th>内容</th>
<th>发布时间</th>
<th>操作</th>
</tr>
<foreach name='wish' item='v'>
<tr>
<td><{$v.id}></td>
<td><{$v.username}></td>
<td><{$v.content|replace_phiz=###}></td>
<td><{$v.time|date='Y-m-d h:m:s',###}></td>
<td><a href=''>删除</a></td>
</tr>
</foreach>
<tr>
<td colspan=5 align='center'><{$page}></td>
</tr>
</table>
thinkphp虽然很熟,但是一直没过他做过网站
@香港服务器 觉得这个框架挺好的
有印象,不知以前谁教过
博主的页面背景音乐不错哦,麻烦您有空的话给我发邮箱里呗?