【发布时间】:2016-04-21 11:04:11
【问题描述】:
我的 php 页面有点小问题,我只是不明白。我是新手,我不太了解我的查询。当我尝试执行我的程序时,出现这样的错误
警告:sqlsrv_has_rows() 期望参数 1 是资源,布尔值 给定
这是我的代码:
<?php
session_start();
try{
include 'connection.php';
$username = $_POST['user'];
$password = $_POST['pass'];
//check if login form is filled
if(empty($_POST['user']) || empty($_POST['pass'])){
echo '<script type="text/javascript">alert("Connection established."); </script>';
}
//search for user and password in the database
$query = "SELECT * FROM [Emkaandb].[dbo].[tbl_clientslogin] WHERE email='{$username}' AND .password='{$password}' AND active='1'";
$result = sqlsrv_query($conn, $query);
if($result == true){
die(print_r(sqlsrv_errors(),true));
}
if(sqlsrv_has_rows($result) !=1){
echo '<script type="text/javascript">alert("Invalid email or password."); </script>';
}else{
while($row = sqlsrv_fetch_array($result)){
$_SESSION['name'] = $row['name'];
}
header("location: Profile.php");
}
}catch (PDOException $e)
{
echo "Error!: " . $e->getMessage() . "
";
die();
}
?>
【问题讨论】:
-
以防万一您不知道。 sqlsrv 函数与 PDO 函数无关。因此在这段代码中捕获 PDOExceptions 几乎没有用处。
-
事实上,你必须明确地询问错误信息:sqlsrv_errors()。一旦你这样做了,你会发现你的 SQL 是无效的。
-
顺便说一句,您的代码似乎允许使用魔术密码
' OR 1=1--进行通用登录
标签: php html sql-server-2012-express