2015-01-22 2 views
0

내 테이블 사용자 이름, 암호 및 요소에 3 개의 열이 있습니다. 요소의 값은 1입니다. 따라서 웹 페이지를 만들었습니다. 사용자가 올바른 사용자 이름과 암호를 삽입하면 PHP에서 요소가 1인지 확인한 다음 원하는 내용을 수행하고 요소를 0으로 변경합니다.하지만 PHP가 0이면 아무것도. 내 문제는 그것이 흰색 화면을 표시합니다.PHP : 다른 열을 선택하는 방법

<?php 
    require_once("function/func_connect.php"); 
    require_once("function/func_check.php"); 
    require_once("function/websend.php"); 
$objLogin = checkPassword($_POST['user_name'],$_POST['user_password'],$Cfg["table"]["user"]); 
if($objLogin == false) 
{ 
     include("state/login_failed.html"); 
     exit(); 
} 
if($objLogin == true) 
{ 
// I think the problem cause here How do I fix? 
    mysql_query("SELECT element FROM authme WHERE username = $_POST['user_name']"); 
    echo "success"; 
} 
    mysql_close(); 
?> 

감사의 말씀과 나쁜 영어로 죄송합니다.

+0

mysql_ * 함수 사용을 중단하십시오. 그들은 비추천적이고 안전하지 않은 것으로 간주됩니다. ['PDO'] (http://php.net/manual/en/book.pdo.php) –

+0

개발 중에 PHP에서'Display Errors'도 켜야합니다. 그 질문의 필요성. 그것은 당신에게 구문 오류를 보여줬을 것입니다. –

답변

2

기본 오류는 문자열 값을 따옴표로 묶지 않는다는 것입니다.

mysql_query("SELECT element FROM authme WHERE username = $_POST['user_name']"); 

, 그냥 중요한

mysql_query("SELECT element FROM authme WHERE username = '$_POST['user_name']'"); 

일해야하지만, 당신은 넓은 SQL injections 열려 있습니다. 최대한 빨리 수정해야합니다.

error reporting을 켜야 만 흰색 화면이 나타나지 않고 오류를 볼 수 있습니다.

참고 : you shouldn't use mysql_* functions in new code. 그들은 더 이상 유지되지 않습니다 and are officially deprecated. red box을 참조하십시오. prepared statements에 대해 자세히 알아보고 PDO 또는 MySQLi-this article을 사용하면 어떤 결정을 내리는 데 도움이됩니다. PDO를 선택하면 here is a good tutorial입니다.

관련 문제