2014-01-14 1 views
0

my mysql 서버 테이블 필드에서 $ _SESSION [ "mypermissions"] 세션 변수와 동일한 값을 설정하려고했습니다. 내가 시도하는 것은 무엇이든 공백이되거나 값이 0이된다. 나는 이것이 어리석은 질문이고 간단한 해결책이 있지만 아무 것도 작동하지 않는 것 같아. 여기까지 내 코드가 문제의 SQL 쿼리에 대한 하단 근처에 봐.SQL 쿼리가 값을 반환하지 않음, 세션 변수로 설정

<?php 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="comproject"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// If result matched $myusername and $mypassword, table row must be 1 row 
if($count==1){ 

session_start(); 
$_SESSION["myusername"] = $myusername; 

$sql = "SELECT permissions FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"; 
$_SESSION["mypermissions"] = mysql_query($sql); 

header("location:login_success.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
?> 
+1

문제는 '$ _SESSION [ "mypermissions"] =는 mysql_query ($의 SQL)이다 그러면 이런 결과 설정된 세션 변수에 기초하여 결과를 가져올 수있다 . 대신 쿼리에서 결과를 얻고 싶습니다. – Jon

+0

왜 같은 것을 두 번 선택 하시겠습니까? 먼저'SELECT *'와'SELECT permissions'를하지만,'WHERE' 조건은 같습니다. 첫 번째 쿼리의 결과에서 사용 권한을 추출 할 수 있습니다. – TiiJ7

답변

1

당신이 쿼리 결과를 가져 오지 않은 것 같다. `는 세션 변수에 자원을 할당되며

<?php 
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="comproject"; // Database name 
    $tbl_name="members"; // Table name 

    // Connect to server and select databse. 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 

    // username and password sent from form 
    $myusername=$_POST['myusername']; 
    $mypassword=$_POST['mypassword']; 

    // To protect MySQL injection 
    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 
    $myusername = mysql_real_escape_string($myusername); 
    $mypassword = mysql_real_escape_string($mypassword); 
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword' limit 1"; 
    $result=mysql_query($sql); 

    // Mysql_num_row is counting table row 
    $count=mysql_num_rows($result); 

    // If result matched $myusername and $mypassword, table row must be 1 row 
    if($count==1){ 
    session_start(); 
    $_SESSION["myusername"] = $myusername; 
    $row = mysql_fetch_object($result);//fetch object 
    $_SESSION["mypermissions"] = $row->permissions; // set permission to session 
    header("location:login_success.php"); 
    } 

else { 
echo "Wrong Username or Password"; 
} 
?> 
+0

@Shard : 이것을 시도 했습니까? –

0
$res = mysql_query($sql); 
$row = mysql_fetch_object($res); 
$_SESSION["mypermissions"] = $row->permissions; 
관련 문제