我的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)是否返回一个值。 但是,当我不传入 id 时,我很难让它给我所有记录。
关于我应该在哪里进行更改的任何想法?
即使
$_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()
0
- (0 作为整数)
- 0.0(0 作为浮点数)
- "0"(0 作为字符串)
因为这些都被认为是空的
查看手册