2010-02-27 10 views
1

예 .. 나는 어떤 문제가 발생합니까? 그룹이 admin 인 경우 사용자를 식별하는 그룹을 확인하는 페이지 admin 페이지가 나타납니다. . 그룹이 사용자 인 경우 사용자 페이지가 나타납니다 .. 상황 : 사용자 이름과 암호를 입력하면 유효성 검사 페이지가 빈 페이지와 함께 나타납니다 ... 코드에 어떤 문제가 있는지 알 수 없습니다 ... plz 나를 guys..help .. 여기 유효성 검사 페이지 오류

코드입니다 :

<?php 
session_start();    
if($_POST['id']!=null && $_POST['pass']!=null){ 

    $username=$_POST['id']; 
    $password=$_POST['pass']; 


[email protected]_connect('localhost','root') 
    or die("Could not connect".mysql_error()); 
    if ([email protected]_select_db("fyp",$link)){ 
    echo mysql_error(); 
    } 

$db_select = mysql_select_db('fyp',$link); 
if (!$db_select) { 
die("Database selection failed: " . mysql_error()); 
} 

    $sql="SELECT * from access where username='".$username."' AND password='".$password."'"; 
    $result=mysql_query($sql); 
    if(!$result){ 
    die(mysql_error()); 
    } 
    $numrecord=mysql_num_rows($result); 
    if($numrecord>0){ 
     if($group=="admin"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:adminpage.php"); 
     } 
     elseif($group=="user"){ 
     $_SESSION['id']=$username; 
     $_SESSION['pass']=$password; 
     $_SESSION['group'] = $row['group']; 
     mysql_close($link); 
     header("Location:userpage.php"); 
     } 
    } 

    else{ 
    mysql_close($link); 
    header("Location:login.php?error=2"); 
    } 
} 
else{ 
    header("Location:login.php?error=1"); 
    } 

?> 
+0

암호는 데이터베이스에 어떻게 저장됩니까? cleat 텍스트 또는 해시로? 지금 일반 텍스트 암호를 확인하고 있습니다. 어쩌면 결과를 얻지 못할 수도 있고 스크립트가 죽을 수도 있습니다. –

답변

0

mysql_fetch_array 또는 databse에서 실제로 행을 가져 오는 데 다른 기능을 사용하지 않습니다. 이 시도 :

$numrecord=mysql_num_rows($result); 
if($numrecord>0){ 

    $row = mysql_fetch_array($result); //////////// 
    $group = $row['group']; 

    if($group=="admin"){ 
    $_SESSION['id']=$username; 
    $_SESSION['pass']=$password; 
    $_SESSION['group'] = $row['group']; 
    ................ 

은 또한, 보안 문제를 방지하기 위해 쿼리에 mysql_real_escape_string 기능을 사용해야합니다.

+0

감사합니다 sarfraz ... ur 코드 succes..thanks 나중에 .. – user273551

+0

@ ejah85 : 당신은 환영합니다 – Sarfraz