2011-12-12 82 views
1

我正在爲我的網站創建登錄系統。我想抓住用戶的用戶ID(又名主鍵從數據庫中),當他們登錄到使用在登錄時獲取userAccount的值

我有3個文件,我使用的是:

的index.php - 這基本上是帶有用戶名和密碼字段的登錄表單。它包含此PHP代碼:

<?php 
session_start(); 

require_once('../inc/db/dbc.php'); 
?> 

一旦提交表單,它進入check_buyer.php(/check_buyer.php)

<?php 
session_start(); #recall session from index.php where user logged 

require_once('../inc/db/dbc.php'); 

$connect = mysql_connect($h, $u, $p) or die ("Can't Connect to Database."); 
mysql_select_db($db); 

$LoginUserName = $_POST['userName']; 
$LoginPassword = mysql_real_escape_string($_POST['userPass']); 
//connect to the database here 
$LoginUserName = mysql_real_escape_string($LoginUserName); 
$query = "SELECT uID, uUPass, dynamSalt, uUserType FROM User WHERE uUName = '$LoginUserName';"; 

$result = mysql_query($query); 
if(mysql_num_rows($result) < 1) //no such USER exists 
{ 
    echo "Invalid Username and/or Password"; 
} 
$ifUserExists = mysql_fetch_array($result, MYSQL_ASSOC); 

function isLoggedIn() 
{ 
    if(isset($_SESSION['valid']) && $_SESSION['valid']) 
     #header('Location: buyer/'); # return true if sessions are made and login creds are valid 
    echo "Invalid Username and/or Password"; 
    return true; 
} 

function validateUser() { 
    $_SESSION['valid'] = 1; 
    $_SESSION['uID'] = (isset($ifUserExists['uID'])) ? $ifUserExists['uID'] : null; 
    echo 'sessuID: '.$_SESSION['uID']; 
    $_SESSION['uUserType'] = 1; // 1 for buyer - 2 for merchant 
} 

$dynamSalt = $ifUserExists['dynamSalt']; #get value of dynamSalt in query above 
$SaltyPass = hash('sha512',$dynamSalt.$LoginPassword); #recreate originally created dynamic, unique pass 

if($SaltyPass != $ifUserExists['uUPass']) # incorrect PASS 
{ 
    echo "Invalid Username and/or Password"; 
} 

else { 
validateUser(); 
} 
// If User *has not* logged in yet, keep on /login 
if(!isLoggedIn()) 
{ 
    header('Location: index.php'); 
    die(); 
} 
?> 

如果憑證是有效的,用戶是發送到login_new /買方/ index.php文件

<?php 
session_start(); 
if($_SESSION['uUserType'] != 1) // error 
{ 

    die(" 
    <div class='container_infinity'> 
     <div class='container_full' style='position:static;'> 
     <img src='img/error/noAccess.png' style='float:left;' /> <br /> 
     <h2>403 Error: You may not view this page. Access denied.</h2> 
     </div> 
    </div> 
    "); 
} 

function isLoggedIn() 
{ 
    return ($_SESSION['valid'] == 1 && $_SESSION['uUserType'] == 1); 
} 

//if the user has not logged in 
if(!isLoggedIn()) 
{ 
    header('Location: ../index.php'); 
    die(); 
} 
?> 

<?php 
    if($_SESSION['valid'] == 1 && $_SESSION['uUserType'] == 1){ 
     #echo "<a href='../logout.php'>Logout</a>"; 
     echo 'buyerid: '.$_SESSION['uID']; 
     require_once('buyer_profile.php'); 
    } 
    else{ 
     echo "<a href='../index.php'>Login</a>"; 
    } 
?> 

的問題是,當我是勞杜松子酒與有效的憑據它發送給我的login_new/buyer/index.php帳戶,但不輸出買方ID使用代碼echo 'buyerid: '.$_SESSION['uID'];我在這裏做錯了什麼?

回答

0

嘗試徵求意見的header()重定向和呼應$_SESSION['uID']後立即將其設置在功能validateUser()看到如果會話數據在check_buyer.php實際設置在那裏

+0

? –

+0

???????????????????????? –

+0

是的,在check_buyer.php – GuZzie