2014-11-06 75 views
2

好了,下面的兩個腳本的想法很simple.First,在login.php,我們分配$_SESSION['username']=$username然後頁面重定向到index.php在腳本檢查if $_SESSION['username']是set.If是檢查,然後編輯配置文件註銷選項顯示,如果它沒有設置,然後顯示選項,如登錄和註冊。但即使表格填寫正確,也會顯示LogIn和註冊選項。它使用cookie enabled.But沒有,如果他們是disabled.Here是代碼沒有cookies不工作PHP會議使


Login.php

session_start(); 
. 
. 
. 
if(mysqli_num_rows($result)==1){ 
$row=mysqli_fetch_array($result); 
$_SESSION['username']=$username; 
$_SESSION['password']=$password; 
$location="http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/index.php"; 
header("Location:".$location."?".htmlspecialchars(SID)); 
} 

Index.php

session_start(); 
if(isset($_SESSION[SID.'username'])){ 
echo '&#10084;<a href="viewprofile.php">View Profile</a>'."<br>"; 
echo '&#10084;<a href="editprofile.php">Edit Profile</a>'."<br>"; 
echo '&#10084;<a href="logout.php">Logout</a>'."<br>"; 
} 
else{ 
echo '&#10084;<a href="login.php">Login</a>'; 
echo '&#10084;<a href="signup.php">Signup</a>'; 

現在,當我全部都是php.ini設置正確並且use_cookie=0trans_sid = 1,那麼如果我向login.php提供正確的信息,index.php將顯示其他代碼塊。有什麼問題?

回答

0

除非你使用的框架,你沒有提到,我會說你的參考書有可怕的錯別字。我看不到任何叫trans_sidPHP directive。存在最接近的是session.use_trans_sid指定:

session.use_trans_sid指定boolean session.use_trans_sid指定透明SID支持是否啓用。默認爲0(禁用)

use_cookie也不存在。

+0

那麼那些只是這兩個指令的捷徑...... – LalaByte 2014-11-06 15:56:27

+0

您能否發佈一個鏈接到支持您的聲明的官方PHP文檔? – 2014-11-06 15:58:31

+0

我只是用於我的方便,因爲我真的很沮喪。 – LalaByte 2014-11-06 15:59:28