2013-04-10 101 views
0

現在我的登錄頁面正常工作。如果用戶名和密碼都正確,它將返回值1,並引導您進入一個名爲studentloggedin.php的頁面。 在我的數據庫表中,我有一個名爲'職業'的字段,其中有'學生'或'講師'兩個值。使用PHP代碼從MySQL數據庫中進行選擇

我的問題是創建一個if語句,如果用戶是學生將其引導我studentloggedin.php否則將指導您lecturerloggedin.php

我已經嘗試做了查詢,但它絕不是工作..請幫助:)我的代碼是在這裏:

<?php 
session_start(); 
//*********Server Information to establish a connection ****** 

$host  = 'localhost'; 
$user  = 'kurtfarrugia'; 
$password = '1234'; 
$database = 'kurt_farrugia'; 

$link = mysql_connect($host,$user,$password) or die('Error in Server information'); 
mysql_select_db($database,$link) or die('Can not Select Databasse'); 

//***************End Connection Establishment*************************************** 
//*******Form Information******** 

$userName = mysql_real_escape_string($_POST['username']); //User Name sent from Form 
$password = mysql_real_escape_string($_POST['password']); // Password sent from Form 

$rememberMe = strip_tags($_POST['rememberMe']); 
setcookie("username", $_POST['username']); 

//*********retrieving data from Database********** 

$query = "select * from tbladmin where admin_usr_name='$userName' and   
admin_pwd='$password'"; 

$res = mysql_query($query); 

$rows = mysql_num_rows($res); 

//**********it ensures that the script does not continue unless the username varaible  is not null and not empty 
if (!empty($_POST['username'])) { 
    $username = mysql_real_escape_string(strip_tags(trim($_POST['username']))); 
} else { 
    //die('Hey turd, go back and fill in your username!'); 
    header("Location: login_fail2.php"); die; 
} 

/*if ($rememberMe) { 
    setcookie("loggedIn", "yes", time()+3600); 

    header ("Location: studentloggedin.php"); die; 
      } 
else { 
    echo "Username and/or password is incorrect."; 
} 


if ($_COOKIE['loggedIn'] == "yes") { 
    header ("Location: studentloggedin.php"); 
    die(); 
} 
*/ 
// HERE is the query 

//$result2 = mysqli_query($con,"SELECT occupation FROM tbladmin WHERE admin_usr_name ='$username'" == 'student'); 
//$row == mysqli_fetch_array($result) 

//**********if $userName and $password will match database, The above function will return 1 row 
if($rows==1) 
//{ 
{ 
//***if the userName and password matches then register a session and redrect user to the studentloggedin.php 

//$_SESSION['userName']; 
//$_SESSION['password']; 

    header("location:studentloggedin.php"); 
} 
//} 

else 
{ 
    header("Location: login_fail2.php"); die; 
} 

?> 
+2

請停止使用mysql_ *功能..切換到PDO或mysqli_ * – alwaysLearn 2013-04-10 11:31:20

+0

嘗試改變部分'header(「location:studentloggedin.php」);'to header(「Location:studentloggedin.php」);' - 感覺HTTP頭很模糊 – verbumSapienti 2013-04-10 11:37:19

回答

0

剛剛嘗試下面:

$result2 = mysqli_query($con,"SELECT occupation FROM tbladmin WHERE admin_usr_name ='$username'"); 


$rows = $result2->num_rows; 

if($rows==1) 
    header("location:studentloggedin.php"); 
else 
header("location:lecturerloggedin.php"); 
+0

不需要第二個查詢,你可以從第一個查詢,你只需要在那裏添加if。 – 2013-04-10 11:38:30

+0

你的代碼有一個邏輯瑕疵,你需要檢查職業而不是返回的行數。 – 2013-04-10 11:48:49

0

有一個在您的查詢的錯誤:

//$result2 = $mysqli_query($con,"SELECT occupation FROM tbladmin WHERE admin_usr_name ='$username'" == 'student'); 
//$row == mysqli_fetch_array($result) 

你不能使用= to something ==別的東西。

這裏是整個代碼,因爲我認爲應該工作

<?php 
session_start(); 
//*********Server Information to establish a connection ****** 

$host  = 'localhost'; 
$user  = 'kurtfarrugia'; 
$dbpassword = '1234'; 
$database = 'kurt_farrugia'; 

//Open connection 
$mysqli = new mysqli($host, $user, $dbpassword, $database); 
if (mysqli_connect_errno()) 
{ 
    printf("Connection failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

//***************End Connection Establishment*************************************** 
//*******Form Information******** 

$userName = mysql_real_escape_string($_POST['username']); //User Name sent from Form 
$userPassword = mysql_real_escape_string($_POST['password']); // Password sent from Form 

// $rememberMe = strip_tags($_POST['rememberMe']); 
setcookie("username", $_POST['username']); 

//*********retrieving data from Database********** 


$result2 = $mysqli->query("SELECT * FROM `tbladmin` WHERE `admin_usr_name` = '".$userName."' and `admin_pwd` = '".$userPassword."'"); 
if($row = $result2->fetch_assoc()) 
{ 
    if($row['occupation'] == 'student') 
    { 
     // redirect logged student 
    } 
    else if($row['occupation'] == 'lecturer') 
    { 
     // redirect logged lecturer 
    } 
} 
else 
{ 
    //username doesn't exist redirect to fail page 
} 

//**********it ensures that the script does not continue unless the username varaible  
is not null and not empty 
if (!empty($_POST['username'])) { 
$username = mysql_real_escape_string(strip_tags(trim($_POST['username']))); 
} else { 
    //die('Hey turd, go back and fill in your username!'); 
     header("Location: login_fail2.php"); die; 
    } 
?> 
0

這裏有你需要

if (!isset($_POST['username']) || $_POST['username'] != '') { 
    // redirect back to the form 
} 
if (!isset($_POST['password']) || $_POST['password'] != '') { 
    // redirect back to the form 
} 

$userName = mysqli_real_escape_string($_POST['username']); 
$password = mysqli_real_escape_string($_POST['password']); 

$query = "SELECT * FROM tbladmin WHERE admin_usr_name = '$userName' AND   
     admin_pwd = '$password'"; 

$res = mysqli_query($query); 
$numrows = mysqli_num_rows($res); 

if ($numrows == 1) { 
    // here you can add the code with remember me 
    $dataRow = myqli_fetch_row($res); 
    $username = $dataRow['admin_usr_name']; 

    if ($dataRow['ocupation'] == 'student') { 
     // redirect to student php file 
     exit; 
    } else { 
     // redirect to lecturer 
     exit; 
    } 
} else { 
    // redirect to login incorrect 
    exit; 
}