关于云主机Thinkphp框架Session跨页失效的问题

  在网站部署到云主机之后,前台一直能够正常显示,后台确登录不上去,验证码也无法显示,研究半天,才确定是Session跨页传递失效的问题。找网上各种解决方法,都是关于Php.ini文件的设置,可又解决不了问题,于是狠下心来研究,最后确定是Session路径的问题。由于Thinkphp的Session默认不是保存在网站目录下,导致Session无效的问题,最后更改Session的保存路径,成功解决了问题。

具体解决办法:

1、在index.php中定义session保存路径:

define(‘ROOT_PATH‘, str_replace("\\", ‘/‘, substr(dirname(__FILE__), 0, -9)));

2、在login.php中设置Session保存路径,开启Session

$savePath=ROOT_PATH."/tmp/";
session_save_path($savePath);
session_start();

3、验证码不显示的解决办法:在验证码生成方法中加入

ob_clean();

OK,成功搞定!

时间: 2024-10-07 20:08:21

关于云主机Thinkphp框架Session跨页失效的问题的相关文章

php 会话控制(禁用cookie后session为什么会失效?)

首先说明一点:session不一定必须依赖cookie,只是php默认客户端sessionid基于cookie方式保存. 到此,我想你也应该了解了php默认的session客户端保存方式是基于cookie的,所以一旦客户端禁用Cookie,那么session跨页将会失效,不知道这么描述是否合适,通俗的说无状态的东西要变的有状态,只能两边都进行比对,如果用cookie方式保存的SessionID,客户端这边的比对条件就放到cookie里,所以客户端禁用cookie,session便也会随之失效.p

Thinkphp框架下(同服务器下)不同二级域名之间session互通共享设置

在Thinkphp框架下根目录打开index.php 在头部加入如下代码即可: //入口文件 define('DOMAIN','abc.com');//abc.com换成自己的跟域名 //以下两行是为了子域名共享SESSION 注意 DOMAIN 需要改为实际的域名 ini_set('session.cookie_path', '/'); ini_set('session.cookie_domain', DOMAIN);

Thinkphp框架下设置session的过期时间

打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 'expire' => 3600, //SESSION过期时间,单位秒 'use_trans_sid' => 1, //跨页传递 'use_only_cookies' => 0, //是否只开启基于cookies的session的会话方式 ),

thinkphp框架下session 存入mongo

最近做系统的时候处理到session入数据库问题 , 由于是在thinkphp框架下, 查看了下框架session相关代码, 发现原框架默认支持mysql数据库 , 于是对原Session驱动做了相应修改 , 使其支持mongo数据库存储session 修改的相关文件是\Think\Session\Driver\Db\Db.class.php , 本人使用的是TP3.2,2版本 , 修改后的Db.class.php代码如下: <?php namespace Think\Session\Drive

UK8S 产品快报|支持快杰和 GPU 云主机、跨可用区、应用商店等特性

UK8S 是 UCloud 推出的 Kubernetes 容器云产品,完全兼容原生 API,为用户提供一站式云上 Kubernetes 服务.自上线以来,UK8S 一直紧跟开源 Kubernetes 的节奏,除了支持 Kubernetes 最新版本 1.14.6 外,近期 UK8S 又有哪些新动作? UK8S 应用商店 一.Helm 应用商店上线 Helm 是 Kubernetes 中的包管理工具,用于简化 Kubernetes 应用的部署和管理,可以将 Helm 理解为 Linux 下的 yu

解决使用elementUI框架el-upload跨域上传时session丢失问题

解决方法一: 1.使用elementUI框架el-upload跨域上传时,后端获取不到cookie,后端接口显示未登录,在添加了 with-credentials="true"后依然不生效 前端会报上面的错误,解决方式:后端把把*号改成httpServletRequest.getHeader("Origin") 解决方法二: 1.把config目录下的index.js文件打开,修改proxyTable属性的设置: 考虑到这个这个目标路径可能需要修改,所以打包后需要单

openstack云主机 跨项目迁移

1.面板或者后台修改网络类型为共享网络 openstack network set xxxxxxx --share 2.备份数据库 docker exec -it -u root mariadb mysqldump -uroot -pxxxxxxxxxxx nova instances > nova_instances.sql docker exec -it -u root mariadb mysqldump -uroot -pxxxxxxxxxxx nova instance_info_cac

ThinkPHP 框架模型

本文和大家分享的主要是ThinkPHP 框架模型相关内容,一起来看看吧,希望对大家学习php有所帮助. 1 在MainController.class.php 控制器中有一个test的方法,同时还有一个deng的方法,我想在test方法中使用deng方法 表示为 <?phpnamespace Home\Controller;use Think\Controller;class MainController extends controller{ public function test() {

[麦先生]初学Laravel框架与ThinkPHP框架的不同(2)

在经过了一段时间的开发后,我对Laravel框架的认识又在逐步的加深,对于这个世界占有量NO.1的框架...  我想说,我已经在逐步的感受到他的恐怖之处... 一.建表--Laravel在数据库建表上有自己独立内置的结构,可以完全不用借助原生SQL语句或者SQLyogEnt.Navicat 这样的建表工具,进行数据库的建立,增删改查,和数据交互;我想这可能是它牢牢占据NO.1的一大靓点;在ThinkPHP中则需要我们借助SQL语句或者建表工具去逐步完善数据 1.首先我们需要建立模型:我用的是gi