2011-12-12 1 views
1

내 웹 사이트 로그인 시스템을 만들고 있습니다. 나는 그들이 로그인 할 때 사용하는 사용자의 사용자 ID (데이터베이스 중 일명 기본 키)를 잡아 할로그인시 userAccount 값 가져 오기

내가 사용하고 3 개 개의 파일이 있습니다.

/index.php을 - 즉, 기본적으로 사용자 이름과 암호 필드가있는 로그인 양식.

양식을 제출되면
<?php 
session_start(); 

require_once('../inc/db/dbc.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(); 
} 
?> 

입니다 check_buyer.php 간다 : 그것은이 PHP 코드를 포함 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로 보내지 만 코드 echo 'buyerid: '.$_SESSION['uID'];을 사용하여 구매자 ID를 출력하지 않습니다. 여기서 내가 뭘 잘못하고 있니?

답변

0

header() 리디렉션을 주석 시도하고 세션 데이터가 실제로 check_buyer.php 바로 거기

+0

설정되어 있는지 기능 validateUser()에 당신이 그것을 설정 한 후 바로 $_SESSION['uID'] 에코? –

+0

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

+0

예 check_buyer.php에서 – GuZzie