2015-10-24 59 views
0

我嘗試過不同的方法,但仍無法解決問題。加載的第一頁是兩個按鈕 - 註冊或登錄。 當人登錄時,他們被分配到狀態1(普通用戶)或狀態2(管理員)。 我想根據用戶的狀態將登錄頁面鏈接到菜單。管理員和普通用戶將有不同的菜單。代碼似乎不起作用,它所做的只是迴應狀態。我正在使用PHP。 要登錄用戶,必須輸入兩個字段 - >他們的「用戶名」 - $ un和「密碼」 - $ pw。狀態= $ ST根據訪問級別將菜單鏈接到登錄頁面PHP

這是我在我的process_user_login代碼:

<?php 
session_start(); 
?> 
<!DOCTYPE HTML>  
<html> 
<head> 
    <meta charset="utf-8"> 
    <title> 
     Untitled Document 
    </title> 
</head> 
<body> 

<?php 
$un = $_POST['Username']; 
$pw = $_POST['Password']; 
$st = $_POST['Status']; 
echo $un; 
echo $pw; 
echo $st; 

//code to populate user table goes here 
mysql_connect("localhost", "****", "*****") or die(mysql_error()); 
mysql_select_db("database name***") or die(mysql_error()); 
//Find user details from User table using the username entered and comparing the entered password with the one retrieved form the user table 
$result = mysql_query( "SELECT Username, Password, Status 
         FROM User 
         WHERE Username = '$un' "); 
         echo "Successfully Logged In" 
       or die(mysql_error()); 
     while ($row = mysql_fetch_array($result)) { 
     //Print out the contents of each row into a table 
     $stored_password = $row['Password']; 
     if ($stored_password == sha1($pw)){ 
     echo "Stored Username is ". $row['Username']; 
     echo "<br />"; 
     echo "Stored Status is ". $row['Status']; 
     echo "<br />"; 

} 

else{ 
    echo " Incorrect password - "; 
    echo "<a href= '****myurl****'> Please try again</a>"; 
} 
} 
?> 

<?php 
echo "<link href='user_login.css' rel='stylesheet' type='text/css'/>"; 
?> 

我真的很感激,如果我能得到一些幫助,如果你也可以告訴我,我應該把它,這將是甚至更好。

謝謝大家的幫助!

+0

'如果($狀態== ADMIN_STATUS){//顯示管理員鏈接這裏。 }其他{//其他鏈接。 }'?也不需要像樣式表一樣「回顯」所有的HTML。 – Script47

回答

0

所有首先,我不認爲你應該使用$_POST他們的狀態。當然,你想從數據庫中獲得個人的狀態。否則你是允許用戶選擇自己的狀態?

2-其次使用mysqli_或PDO作爲並列於過時mysql_

檢查protection against sql injection

有你能做到這幾個方面。以下是我想做的。

3-我倒是檢查數據庫對個人等等東西線:

$check = $conn->query("SELECT * FROM users WHERE username = '$un'"); 
     $row = $check->fetch_assoc(); 

4-然後我會得到相對應的用戶費爾德狀態如此:

$status= $row['status']; 

那麼我成立了一個if語句,如:

if($status == 1){ 
    $isAdmin ="link_to_admin_page"; 
    //$isAdminStr ="Admin Page"; 
} 
else 
    $isAdmin ="link_to_other_page"; 
    //$isAdminStr ="User Page"; 

你也可以添加鏈接的串入if語句,所以當用戶看到的鏈接它要麼說管理頁面或用戶頁面。我已經評論說,上述咬出來的if語句

6-然後你可以回聲出變量來顯示你所需要的

相關問題