내 웹 사이트 로그인 시스템을 만들고 있습니다. 나는 그들이 로그인 할 때 사용하는 사용자의 사용자 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를 출력하지 않습니다. 여기서 내가 뭘 잘못하고 있니?
설정되어 있는지 기능
validateUser()
에 당신이 그것을 설정 한 후 바로$_SESSION['uID']
에코? –?????????????? –
예 check_buyer.php에서 – GuZzie