PHP和基本的RESTful服务; GET请求所有记录与一条记录

时间:2016-04-21 23:21:15

标签: php rest get

我的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),它返回一个值。但是,当我没有通过身份证时,我无法让它给我所有记录。
有关我应该在何处进行更改的任何想法?

1 个答案:

答案 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作为字符串)
  •   
     

因为这些都被认为是空的

     

See the manual