我想要做的基础是检查用户值。
如果他们在那里返回true
并返回页面,否则返回false
并打印空值。
$query = sprintf("SELECT * from Users where username = ? and password = ?");
$params1 = array( $username, $password);
$stmt = sqlsrv_query($conn, $query, $params1);
if ($stmt === false)
{
die(print_r(sqlsrv_errors(), true));
}
$Users = array();
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$username1 = $row['username'];
$password1= $row['password'];
}
$Users["username"] = $username1;
$Users["password"] = $password1;
//echo json_encode($Users);
echo "you are here";
if ($username1==null)
{
return false;
echo "null values";
}
else {
return true;
if (!empty($_SERVER['HTTP_REFERER']))
header("Location: ".$_SERVER['HTTP_REFERER']);
else
echo "No referrer.";
}
echo "\n\nyou're at the end though";
sqlsrv_free_stmt($stmt);
sqlsrv_close( $conn );
}
else {
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
正如您所看到的,我正在尝试调试程序并查看程序的进展情况。它达到了重点
//echo json_encode($Users);
echo "you are here";
之后似乎没有其他工作可做,我也不知道为什么。
答案 0 :(得分:5)
在您工作echo
后直接:
if ($username1==null)
{
return false;
...
}
else
{
return true;
...
}
...
因此,return
语句会导致执行此操作。来自manual:
如果在函数内调用,则立即返回语句 结束当前函数的执行,并将其参数作为 函数调用的值。 return也结束了执行 eval()语句或脚本文件。
如果从全局范围调用,则执行当前脚本 文件已结束。
另请注意,您应该检查查询返回的行数,现在如果没有找到行,您将收到undefined variable
警告。
答案 1 :(得分:1)
在你输入thw之前你需要检查行计数if if statment如果它不是0则返回true否则返回false这样的东西
if(sqlsrv_num_rows($stmt)
{
// your code be here
return true;
}else{
// your code be here
return false;
}