2014-12-28 1 views
0

주어진 사용자 이름이 주어진 테이블 중 적어도 하나에 존재하는지 확인하고 존재하는 경우 해당 사용자에게 사용자 이름이 이미 있다는 메시지. UNION 문을 사용하여 코드를 작성했지만 메시지가 표시되지 않습니다. 내 코드가 잘못된 점을 알려주시겠습니까? 감사등록 페이지의 주어진 사용자 이름이 두 테이블 중 일부에 존재하는지 확인하는 방법

if (mysql_num_rows(queryMysql("SELECT * FROM doctor 
        WHERE username='$username' UNION SELECT * FROM patient 
        WHERE username='$username'"))) 
       $error = "That username already exists<br /><br />"; 
      else 
       { 
       queryMysql("INSERT INTO doctor (fname,lname,username,email,password,gender,age,specialty,doctorID) VALUES('$fname','$lname','$username','$email', '$password','$DoctorG','$DoctorAge','$specialty','$Doctor_ID')"); 
       die("<h4>Account created</h4>Please Log in.<br /><br />"); 
       } 
+0

'경우 (mysql_num_rows도 ($를 제거되기 때문에

function exists($detail, $table, $column, $value) { $stmt = mysql_query("SELECT '$detail' FROM '$table' WHERE '$column' = '$value'"); if(mysql_num_rows($stmt) >= 1) { return true; } else { return false; } } if(exists('username', 'doctor', 'username', $username) === false && exists('username', 'patient', 'username', $username) === false) { echo 'user doesn\'t exists'; } else { echo 'user exists'; } 

당신은 정말 mysql_* 대신 mysqli_* 또는 PDO을 사용하는 것이 좋습니다 the_query_result)> 0)'?? –

+0

@AvinashBabu 당신이 좀 더 간략하게 설명해 주시겠습니까 – Waaaaat

+1

이 코드의 실행 위치를 알려 주시면 SQL 주입 취약점을 사용하여 해킹하고 싶습니다. 나는 그것을 해킹하고자하는 것에 대해 농담하고 있지만, 사람들이 사이트에 불쾌한 일을하기 위해 그것을 공개했습니다. SQL 인젝션을 검색하십시오. – Daniel

답변

1

다음과 같은 시도 할 수 있습니다 : 그것은 depracted하고