所以我的主页只需点击一个按钮即可将其他php页面加载到其中,因此它可以是单页网站,而无需一次加载所有内容。
的index.php
<?php
session_start();
?>
<head>
$('#btnPetShop').one( "click", function(){
$( "#page_shop" ).load( "shop.php" );
});
</head>
<body>
<?php
echo session_status();/----Always returns 1, no matter if logged in or not----/
if(isset($_SESSION['admin']))
{
if($_SESSION['admin']==1)
{
/----this part works, I am logged in as admin----/
}
}
?>
<div id="page_shop"></div>
</body>
shop.php
<?php
if(isset($_SESSION['admin']))
{
if($_SESSION['admin']==1)
{
}
else{}
}
else{} <----I end up here as if $_SESSION['admin'] is not set----/
/----code entered here loads fine----/
?>
想法是在shop.php中的每篇文章上创建一个删除和编辑按钮(如果您以管理员身份登录)。 问题是$ _SESSION [&#39; admin&#39;]在index.php上被识别,但不在shop.php中识别
我尝试直接输入shop.php的内容并且它可以正常工作,问题是我希望只需点击一下按钮即可加载。
答案 0 :(得分:0)
您需要在需要访问会话数据的每个页面中添加<f:image src="{uid}" treatIdAsReference="1" cropVariant="smartphone" maxWidth="{imagemaxwidth}" maxHeight="{imagemaxheight}" />
。
请参阅:http://php.net/manual/en/function.session-start.php
修改强>
由于我原来的答案中提到的解决方案不适合您,session_start();
在您的代码中返回1,这意味着您的服务器上启用了会话。只剩下一件事可以解释你的会话丢失了:
您正在使用AJAX请求加载session_status()
,该网址与shop.php
完全在同一个域中吗?尝试在index.php
之前添加完整路径,看看是否能解决问题。
为了清楚起见,如果shop.php
在index.php
上运行,则新代码将为:
http://localhost/test/index.php
答案 1 :(得分:0)
如果你想使用任何Session变量,那么(在任何PHP页面中)你必须首先声明session_start();
所以,在你的情况下,如果你有$ _SESSION [&#39; admin&#39;] =&#34; User1234&#34;在index.php上,如果你想在shop.php中使用$ _SESSION [&#39; admin&#39;]的值,你必须再次声明session_satart();然后使用它。例如,如果让我们考虑index.php有会话变量$ _SESSION [&#39; admin&#39;] =&#34; User1234&#34;现在你要打印&#34;欢迎用户1234&#34;在shop.php然后你可以做到如下所示。
index.php
<?php
session_start();
$_SESSION['admin'] = "User1234";
?>
<强> Shop.php 强>
<?php
session_start();
echo "Welcome, ". $_SESSION['admin']
?>
<强>输出:强>
Welcome, User1234
答案 2 :(得分:0)
好吧,我觉得愚蠢......我找到了解决方案。
我把它作为剧本
$('#btn_logout').click(function(){
<?php session_destroy();?>
});
这是一个很大的不,如果你这样做,你应该感到羞耻