我正在制作一个涉及登录和保存会话等的网站。在我的一个页面上,php登录检查代码在文件开始处不执行。完全一样。所有这一切都是正常的HTML之后。它附加到一个js文件。任何原因,为什么不会被称为?提前致谢!PHP不在html开头执行
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location:index.php");
}
?>
我正在制作一个涉及登录和保存会话等的网站。在我的一个页面上,php登录检查代码在文件开始处不执行。完全一样。所有这一切都是正常的HTML之后。它附加到一个js文件。任何原因,为什么不会被称为?提前致谢!PHP不在html开头执行
<?php
session_start();
if (!isset($_SESSION['username'])) {
header("Location:index.php");
}
?>
您的代码是正确的,但通常您尝试错误地找到此代码。
把这个代码在顶部或更好地从一个函数调用这个看这个
<?
function checkAdminLogin()
{
session_start();
if (!isset($_SESSION['login_admin']))
{
header("location:index.php?user=login");
}
}
?>
和它保存为islogin.php
,利用此功能在以往任何时候ü希望
说在home.php看起来像这样
<?php
include("islogin.php");
checkAdminLogin();
?>
这真的不会比Quinn做的更好。 – Ben 2012-07-24 06:05:24
谢谢!这工作。 – 2012-07-26 18:32:31
哎呀不,它不。我结束了我的JavaScript做到了通过ajax(我已经提出请求onLoad) – 2012-07-26 22:02:33
session_start()
和任何header('...')
应位于呼叫页面的开头。这些是开始/继续每个页面的会话。标题可以设置页面内容,到期时间,重定向和其他信息。如果任何HTML或输出在其调用之前完成,则代码将不会执行。
但是之前没有HMTL – 2012-08-05 23:32:10
如果您在代码之前输出任何html,它将不起作用。
你可以使用元重定向,这将避免这个问题。
<?php
session_start();
if (!isset($_SESSION['username'])) {
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=index.php">';
}
?>
嗯我试试这个 – 2012-08-05 23:32:56
'它附加到一个js文件' - 这是什么意思?它是什么? – asprin 2012-07-24 05:23:46
你怎么知道它不执行?也许会话变量已经设置好了。 “什么是附加到一个JS文件”是什么意思?你的HTML文件实际上是JS? – Joey 2012-07-24 05:23:53
啊。让我澄清 - 也有一个JavaScript文件,如'' – 2012-07-24 05:26:30