所以我使用一些逻辑来检查搜索客户端的人是否为搜索提供了足够的信息,但由于某种原因,我的一个字符串在if语句中被强制转换为false,即使它有一个值。 ..
// get lookup parameters
$clientID = $db->real_escape_string($_POST["clientID"]);
$fistName = $db->real_escape_string($_POST["firstName"]);
$lastName = $db->real_escape_string($_POST["lastName"]);
$phone = $db->real_escape_string($_POST["phone"]);
// check if enough parameters were provided
if (!($clientID) && !($firstName && $lastName) && !($phone)) {
// die
printf("Invalid search parameters.");
exit();
}
当我提供clientID或电话号码时没有问题,但是当使用名字和姓氏时,它会输入if。我让它在if中打印变量的值,它显示$ firstName =" Andrew",$ lastName =" [insert my lastname]"。如果我将它们打印为bools,则$ firstName为true,$ lastName为false。
我不知道为什么它会将一个字符串转换为true而另一个字符串为false,除非它考虑字符串中的内容可能?我的姓氏以" F"开头。真的在这里肆无忌惮地抛出疯狂的想法。
答案 0 :(得分:0)
// get lookup parameters
$clientID = $db->real_escape_string($_POST["clientID"]);
$firstName = $db->real_escape_string($_POST["firstName"]);
$lastName = $db->real_escape_string($_POST["lastName"]);
$phone = $db->real_escape_string($_POST["phone"]);
// check if enough parameters were provided
if (!$clientID && !$firstName && !$lastName && !$phone) { //No need for all the brackets
// die
echo'Invalid search parameters.';//echo
exit;
}