TP框架的SESSION <尾部封装了一个返回字符串长度的方法>

 自动判断session是否存在

1.session的用途

(1)用来存用户名等信息;

(2)防止跳过登录;

2.如果按照以前的方式,在每个页面或者方法里面都要判断session是否存在。

(1)造一个Fucontroller类,用来判断session是否存在。以后写方法,可以直接继承FuController类防止绕过登录

复制代码
复制代码
<?php
namespace HomeController;
use ThinkController;
class FuController extends Controller//造一个FuController类,用来判断session值是否存在。
{
    public function __construct()//造一个构造函数
    {
        if(session('?uid'))//判断session是否存在,如果存在,什么也不做。
        {
            
        }
        else//如果不存在
        {
            //$url = U("Home/Login/login");
            $this->redirect("Home/Login/login",array(),5,'请登录');//第一个参数是跳转的地址,第二个参数是要传的值,
                                        第三个参数是跳转的时间,第四个参数是跳转时的提示信息。 exit; } } }
复制代码
复制代码

(2)以后写操作方法的时候,注意继承的父类是FuController,而不是Controller。第一次走这个页面时会跳转到login方法里面,因为没有session值,会执行上面的$this->redirect("Home/Login/login",array(),5,'请登录') ,防止绕过登录

(3)写一个login方法。上面的test方法跳转到login方法以后会存上session,因为有了sesion值,操作方法会继续往下执行。

复制代码
复制代码
<?php
namespace HomeController;
use ThinkController;
class LoginController extends Controller
{
    public function login()
    {
        session("uid","zhangsan");//存一个session值
    }
}
复制代码
复制代码
 
 


 下面的是封装的一个输出字符串长度的方法,感觉也许会以后用到便和session放到一块了


输出字符串的长度

1.封装的方法写在同一个控制器里面

复制代码
复制代码
public function test()
    {
        $str = "volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:";//给str一个字符串
        $m = A("Main");//造一个Main控制器的对象
        echo $m->ChangDu($str);//输出$str的长度
    }
    
    public function ChangDu($str)//ChangDu方法,输出字符串的长度。
    {
        return strlen($str);
    }
复制代码
复制代码

2.封装的方法不在同一个控制器里面

(1)在Maincontroller.class.php里面只写下面的方法

复制代码
复制代码
public function test()
    {
        $str = "volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:";//给str一个字符串
        $m = A("Main");//造一个Main控制器的对象
        echo ChangDu($str);//输出$str的长度
    }
复制代码
复制代码

(2)在thinkphpApplicationHome里面写封装的方法functions.php,内容如下

<?php
function ChangDu($str)
{
    return strlen($str);
}

(3)这样写完以后在浏览器中输入http://localhost/thinkphp/index.php/Home/Main/test读取不到字符串的长度,还需要在配置文件里面加上一句代码:

"LOAD_EXT_FILE"=>"functions",//自动加载函数库类

还是那个这句代码后才能读取到字符串的长度。

原文地址:https://www.cnblogs.com/cyd123/p/7145962.html