2013-12-21 82 views
0

我正在PHP中構建一個小管理面板。 我的服務器是5.4版本,我已經幾個問題做...這裏是代碼:在會話中檢查PHP 5.4錯誤

PHP腳本,用於檢查帳戶有效

<?php 
session_start(); 
if(isset($_POST['submit'])) 
{ 
$connessione=mysql_connect("localhost","root","password"); 
    mysql_select_db('albo'); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$username=mysql_real_escape_string($_POST['username']); 
$password=mysql_real_escape_string($_POST['password']); 
$query = "SELECT * FROM amministrazione WHERE username = '$username' AND password = '$password' "; 
$ris = mysql_query($query, $connessione) or die (mysql_error()); 
$riga=mysql_fetch_array($ris); 

$cod=$riga['username']; 
if ($cod == NULL) $trovato = 0 ; 
else $trovato = 1; 

if($trovato === 1) { 
$_SESSION['login_user']='OK'; 

    echo '<script language=javascript>document.location.href="logout.php"</script>'; 

} else { 
echo '<script language=javascript>document.location.href="index.html"</script>'; 

} 
} 
?> 

受保護的頁面,只有註冊成員可以輸入:

<?php 
session_start(); 
if(isset($_SESSION['user_login'] = 'OK')){ 
     echo "welcome to protected page."; 
    } 
    else { 
     header('location:login.php'); 
     die;  
    } 
    ?> 

,我得到的錯誤是:

解析錯誤:語法錯誤,意想不到的 '=',希望 '' 或 ')' 在/ var/WWW/adminte第3行的stscript/memberarea.php

我不明白問題在哪裏,而且如果我的5.4的語法是正確的。 謝謝你:-) 祝你週末愉快!

請問候

+0

你混合mysqli_ *和mysql_ *函數 –

+0

請註明的答案是正確的,如果他們給你什麼你在哪裏尋找。 – Jite

回答

2
if(isset($_SESSION['user_login'] = 'OK')){ 

可能應該是

if(isset($_SESSION['user_login']) && $_SESSION['user_login'] == 'OK')){ 
2

你混合mysqli_mysql_功能,

使用

if(isset($_SESSION['user_login']) && $_SESSION['user_login']== 'OK')){ 

,而不是

if(isset($_SESSION['user_login'] = 'OK')){ 
+0

非常感謝你們!現在代碼似乎可以工作(針對某個部分),期望當我登錄到login.php頁面時出現這個問題,這意味着代碼表示會話不是記錄用戶的確切會話。如果(isset($ _ SESSION ['user_login'])&&($ _SESSION ['user_login'] =='OK')){ echo「welcome to protected page。」; } else { header('location:login.php'); 死亡; } ?> 我去login.php,而不是得到消息「歡迎來到受保護的頁面」。我真的不明白髮生了什麼! :-(任何想法? 非常感謝你的時間! – GCiri

+0

如果你包含'if(isset($ _ SESSION ['user_login'])&&($ _SESSION ['user_login'] =='OK'))''這個代碼在你的所有頁面中檢查登錄並顯示歡迎頁面,如果你想登錄,你需要使用'unset($ _ SESSION);'清除會話,或者如果你想銷燬所有的會話,然後使用session_destroy(); –

+0

是的,我知道,但問題是,我把代碼檢查登錄的頁面,結果爲未記錄,因爲它將我重定向到登錄頁面,而不是顯示歡迎message.I認爲有一些錯誤創建會話,我試圖解決它,但我不知道發生了什麼,任何建議?謝謝你太多了! – GCiri