我正在製作一個涉及登錄和保存會話等的網站。在我的一個頁面上,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