我只想问一件事。我从数据库中选择书籍并将其显示为列表。当用户按书名时,需要他预订内页。我认为这很简单,使用get参数(ID)进行href(此ID参数是从数据库中选择的)。例如:<a href="book/?id=12">Book title</a>
。这样做是好的做法吗?或者更好地发送其他参数,而不是id
答案 0 :(得分:2)
只要查询字符串不包含敏感信息,就可以了。像这样传递ID是绝对正常的,甚至是标准的。
作为旁注,如果您对SEO感兴趣,您可能希望在URL中传递书名,因为URL内容会在一定程度上影响您的排名。因此,拥有像book/{book-id}-{bookname}
这样的网址可能是一个好主意,例如book/12344-critique-of-pure-reason
。
<强>更新强>
正如@Fred -ii-合理地指出,您必须确保您受到SQL注入的保护。由于您愿意使用简单的整数ID,因此实现起来非常简单(在最基本的层面上):
<?php
if (!empty($_GET['id'])) {
// Filter value of $_GET['id'] to prevent SQL injection
//
// This particular line removes all characters
// except digits, plus and minus sign from the passed parameter.
$requestedId = filter_var($_GET['id'], FILTER_VALIDATE_INT);
// continue with querying your database
}
所以,确保你这样做,否则你的数据库是不安全的。
答案 1 :(得分:0)
是没问题你也可以发送POST请求而不是GET,我认为会更好。
答案 2 :(得分:0)
解决方案1
book/?ids=12,13,14
解决方案2:提交表格如下
<input name="id" value="12"/>
<input name="id" value="13"/>
<input name="id" value="14"/>