【发布时间】:2016-04-21 23:21:14
【问题描述】:
我的 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>
我能够验证我的第一个条件(输入用户名、密码和 id)它返回一个值。但是,当我没有传入 id 时,我无法让它给我所有记录。
关于我应该在哪里进行更改的任何想法?
【问题讨论】:
-
返回所有记录的方法在哪里?
-
我不知道您在这里的确切使用情况,但如果请求中未发送某些数据,您似乎将返回所有用户。我不确定这是一个好主意,因为 1)如果您的用户数据库变得足够大,那么您将移动大量数据,并且 2)您基本上是在公开整个用户数据库。如果浏览器可以看到所有用户,那么其他人也可以。
-
@GordonM,是的,这很有意义。就我上面的问题而言,这仅与我的班级有关。我们只学习了非常 REST 的基本概念以及它的工作原理。这绝对不是现实世界意义上的优雅解决方案,但它的主要目的是作为起点