我的PHP类有一个涉及RESTful服务的项目,我们有一个基本服务设置如下:
$request = $_SERVER["REQUEST_METHOD"];
switch($request) {
case 'GET':
$user = $acctReader->read($_GET["username"], $_GET["password"]);
if (isset($_GET["id"]) && $user == true) {
// echo method to return single record from db after validating that $user is an account in a separate table
} elseif (!isset($_GET["id"] && $user == true) {
// echo method to return ALL records from db
}
case 'POST':
case 'PUT':
case 'DELETE':
default
}
我正在使用GET来响应用户验证,如果他们输入有效的用户名/密码但不明确请求单个ID,他们应该查看所有记录
这是我的html的哪一部分:
<form action="TaskService.php" method="GET">
<label for="username">Username</label>
<input type="text" name="username" id="username" required/><br />
<label for="password">Password</label>
<input type="password" name="password" id="password" required/><br />
<label for="id">Task ID</label>
<input type="text" name="id" id="id" placeholder="optional"/>
<input type="submit" name="getTask" value="GET TASK"/>
</form>
我能够验证我的第一个条件(输入用户名,pw和id),它返回一个值。但是,当我没有通过身份证时,我无法让它给我所有记录。
有关我应该在何处进行更改的任何想法?
答案 0 :(得分:1)
即使$_GET["id"]
为空,也会设置为if (!empty($_GET["id"]) && $user == true) {
// echo method to return single record from db after validating that $user is an account in a separate table
} else {
// echo method to return ALL records from db
}
。你必须要么我们
if (isset($_GET["id"]) && $_GET["id"] != '' && $user == true) {
// echo method to return single record from db after validating that $user is an account in a separate table
} else {
// echo method to return ALL records from db
}
或
empty()
但要注意在字段可以包含
时使用{{1}}
- 0(0为整数)
- 0.0(0作为浮动)
- “0”(0作为字符串)
因为这些都被认为是空的