当在PHP中包含URL时,Laravel 5 - 会话不起作用

时间:2015-08-05 02:25:11

标签: php session laravel laravel-5

我是Laravel和PHP的新手。

成功登录后,页面会重定向到索引

控制器代码如下:

Session::save();
Redirect::to('index')

index.php代码如下:

include(URL('index/index_top'));
include(URL('index/top_banner'));

问题在于:会话数据在index.php中可用,但在index_top.php中不可用。页面index.php显示正常。

我的英语很差,希望你能明白我的意思 在这里,我刚发现sessionid在include()之后发生了变化,为什么?我怎样才能保留sessionid。

附加
routes.php如下:
Route::group(['prefix' => 'index'], function()
{
Route::get('index_top','index\indexController@showIndexTop');
Route::get('top_banner','index\indexController@bannerShow');
...
}

top_banner.php如下:
<div class="top_banner">
<?php if($resultcode == 0){
$i = 0;
foreach ($banner["body"] as $info) {
$i++;
if($i==1){
echo "<img src='";
echo( $info['adpic']);
echo "'style='width:1200px;height:145px'/>";
...

1 个答案:

答案 0 :(得分:2)

问题是您的包含语句。而不是包含本地视图,意味着PHP将被包含并在相同的上下文中执行,您需要包含 URL ,这意味着单独的请求将是已发送,其结果将包括在内。此请求没有像Cookie一样附加任何上下文信息,这有助于识别您的会话,这是会话数据不可用的原因

替换

include(URL('index/index_top'));
include(URL('index/top_banner'));

include('index/index_top.php'); //or whatever local path to index_top.php is
include('index/top_banner.php'); //or whatever local path to top_banner.php is