저는 PHP에 익숙하지 않으므로 저와 같이있어주세요. 나는 사용자가 존재하는지 여부에 대해 데이터베이스를 쿼리하는 로그인 폼을 만들고있다. 이 스크립트는 내 서버에서 제대로 작동하지만 일단 대학 서버에서이 스크립트를 사용해 보았을 때 제목에 오류가 발생했습니다. 문제는 SQL 쿼리와 관련이 있다고 생각하지만 솔직히 말해서는 안됩니다. 도움이된다면 고맙겠습니다. 감사합니다.PHP 오류 메시지 : mysql_num_rows()는 매개 변수 1이 리소스가 될 것으로 예상하고, 부울은 주어진 것입니다.
<?php
$dbhost="localhost";
$username="v22comp_B09052";
$password="-";
$db="v22comp_B09051-12-13";
$table="secrets";
// Connect to the database
mysql_connect("$dbhost", "$username", "$password") or die ("Can not connect to the database");
mysql_select_db("$db") or die ("Database is not selectable");
//Post input
$inputusername=$_POST['uid'];
$inputpassword=$_POST['upassword'];
//Check input
$sql="SELECT * FROM $table WHERE username='$inputusername' and password='$inputpassword'";
$sqlop=mysql_query($sql);
//If a row matches, output a string informing the user that they are logged in. If not, output a string informing them that they are not
$rowmatch=mysql_num_rows($sqlop);
if($rowmatch==1)
{
echo "You are now logged in";
}
else
{
echo "Invalid ID or password";
}
?>
mysql_query()가 실패하면 유효한 'Resource'가 아닌 FALSE를 반환합니다. 왜 mysql_num_rows()를하려고 할 때 에러가 발생하는지. 쿼리를 수행 한 후 오류를 확인하십시오. mysql_error()에 의해 제공된 데이터가 유용 할 수있다. – Havenard
[SQL injection attacks] (http://bobby-tables.com)에 취약합니다. 방어적인 프로그래밍 방법을 배울 때까지이 코드 작업을 중단하십시오. –
쿼리가 실패했는지 확인하십시오 :'$ sqlop = mysql_query ($ sql) or die ('Error');' – WebNovice