PHP升级之后$SESSION丢失

              要在生产环境为一个内部系统升PHP版本,由5.3升成5.4.16

             生成以后发现不能login,一路打断点过去,发现服务器端两个页面跳转的时候,取不到$SESSION

              悲催的上网找解决方案,结果发现各种说法,

              先去查浏览器cookie, cookie是可用的, sessionID也能正常拿的到

              再去看代码, 代码写得很正常, 开头session_start, 中间$SESSION[XXX] = XXXX , 都很正常

              百思不得其解,快要发疯的时候

              我想起来, PHP是把session保存在哪里的呢

              Tomcat是可以选择序列化在数据库里,或者写本地文件,或者干脆保存在内存里

              PHP原来默认是保存在txt文件中, 保存的path是PHP.ini中的    session.save_path 


              阿弥陀佛,原来是升级PHP之后, 系统默认把session.save_path 的所有权交给了root, 而不是我当前运行PHP的用户

              PHP没权限把session写入这个path中,当然会丢失了。

              FFFFuck  狗日的PHP!!!!


欢迎大家这么多年的捧场,为了更好地更舒服的写东西,思考东西,我决定从今天开始(20161017)把自己的所有文章和创作都逐步转移到自媒体上,请大家扫下面的二维码关注,接着收看更多有价值的干货


好的,下面是一个使用会话(session)来传递变量,并进行Web重定向的HTML示例: ```html <!DOCTYPE html> <html> <head> <title>Web重定向示例</title> </head> <body> <h1>欢迎使用Web重定向示例</h1> <form action="redirect.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br><br> <button type="submit">登录</button> </form> </body> </html> ``` 在上面的示例中,我们创建了一个包含登录表单的HTML页面。当用户提交表单时,它将重定向到`redirect.php`页面,该页面将检查用户提供的用户名和密码,并根据结果重定向到不同的页面。 下面是`redirect.php`的示例代码: ```php <?php session_start(); // 模拟检查用户提供的用户名和密码 if($_POST['username'] == 'admin' && $_POST['password'] == '123456'){ // 如果用户提供的用户名和密码是正确的,则将变量$is_logged_in设置为true,并将其存储在会话(session)中 $_SESSION['is_logged_in'] = true; // 重定向到受保护的页面 header('Location: protected.php'); exit; } else { // 如果用户提供的用户名和密码是错误的,则将变量$is_logged_in设置为false,并将其存储在会话(session)中 $_SESSION['is_logged_in'] = false; // 重定向到登录失败页面 header('Location: login_failed.php'); exit; } ?> ``` 在上面的示例中,我们使用`session_start()`函数启动会话(session),并检查用户提供的用户名和密码。如果用户名和密码正确,则将`$_SESSION['is_logged_in']`变量设置为`true`,并将用户重定向到受保护的页面`protected.php`。如果用户名和密码错误,则将`$_SESSION['is_logged_in']`变量设置为`false`,并将用户重定向到登录失败页面`login_failed.php`。 在受保护的页面`protected.php`中,我们可以使用以下代码检查用户是否已登录: ```php <?php session_start(); // 检查用户是否已登录 if(!isset($_SESSION['is_logged_in']) || $_SESSION['is_logged_in'] !== true){ // 如果用户未登录,则将其重定向到登录页面 header('Location: login.php'); exit; } ?> <!-- 受保护的内容 --> <!DOCTYPE html> <html> <head> <title>受保护的页面</title> </head> <body> <h1>欢迎访问受保护的页面</h1> <p>只有已登录用户才能看到这个页面。</p> </body> </html> ``` 在上面的示例中,我们使用`session_start()`函数启动会话(session),并使用`$_SESSION['is_logged_in']`变量检查用户是否已登录。如果用户未登录,则将其重定向到登录页面`login.php`。如果用户已登录,则显示受保护的内容。 希望这个示例可以帮助你了解如何使用会话(session)来传递变量,并进行Web重定向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值