2014-06-21 23 views
-1

表單提交表單會話後,我們可以通過會話變量保存到變量中,我們可以檢查是否正確。但是,當我檢查出來它顯示錯誤請幫我檢查我登錄時的會話錯誤

<?php 
    include '../includes/config.php'; 
    if(isset($_POST['submit'])) 
    { 
     $email = $_POST['email']; 
     $pass = $_POST['password']; 
     $msg = "The email or password you entered is incorrect"; //error message 

     //email validation 
     if(empty($email) || empty($pass)){ 
      echo $msg; 
      header ("refresh:5; url=index.php"); 
      exit(); 
     } 

     if(!preg_match('/@/',$email)){ 
      echo $msg; 
      header ("refresh:5; url=index.php"); 
      exit(); 
     } 

     //search username and password from table users 
     $result = mysql_query("SELECT * FROM table_users"); 
     $fetch = mysql_fetch_array($result); 

     if($email == $fetch['email'] && $pass == $fetch['pass']){ 
      session_start(); 
      $_SESSION['email'] = $result['email']; 
      $_SESSION['type'] = $result['type']; 
      header('refresh:2; url=../panel/index.php'); 
      echo "Logged in.."; 
      exit(); 
     } 
     else 
      echo $msg; 
      header ("refresh:5; url=index.php"); 
    } 
    else 
    { 
     header('Location:../index.php'); 
    } 
?> 

這是管理員密碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Hotel Administration</title> 
<link rel="stylesheet" type="text/css" href="../../css/system.css" /> 
<?php 
    session_start(); 
    if(!isset($_SESSION['email'])) 
    { 
     die("The user must be logged in"); 
    } 
?> 
</head> 

<body> 

我要檢查出adminpage會話一個問題..有人說會話的錯誤消息幫助我出

+1

什麼是實際的錯誤信息使用花塊? – webnoob

+0

我認爲你需要會話變量沒有正確設置,因爲mysqli_fetch_array期望多一個參數MYSQLI_ASSOC用於按列名稱訪問數據或另一個參數通過索引號訪問數據。 –

+0

我得到這個會話的錯誤信息 –

回答

-1
SELECT * FROM table_users 

那是一個非常糟糕的主意,想,當有發生了什麼〜5K用戶在一段時間 做得更好

SELECT 1 FROM table_users WHERE username LIKE "$user" AND password = MD5("$password") LIMIT 1; 

除此之外,我建議在其他

if(!empty($fetch)) 
{ 
     session_start(); 
     $_SESSION['email'] = $result['email']; 
     $_SESSION['type'] = $result['type']; 
     header('refresh:2; url=../panel/index.php'); 
     echo "Logged in.."; 
     exit(); 
    } 
    else 
    { 
     echo $msg; 
     header ("refresh:5; url=index.php"); 
    } 
+0

偉大的現在OP很容易受到SQL注入。 'md5'也不適用於哈希密碼。 – PeeHaa

+0

@cpfaffinger歡呼!好友這爲我的日誌部分工作 –