簡體   English   中英

從數據庫表中發送ID(例如URL中的GET參數)是一種好習慣嗎?

[英]Is it good practice to send ID from database table like GET parameter in URL?

我只想問一件事。 我從數據庫中選擇書籍並將其顯示為列表。 當用戶按下書名時,需要他去書內頁。 我認為它很簡單,帶有獲取參數(ID)的make href(此ID參數是從數據庫中選擇的)。 例如: <a href="book/?id=12">Book title</a> 這樣做是一種好習慣嗎? 或者最好發送其他參數,而不是id

只要查詢字符串不包含敏感信息,就可以了。 這樣傳遞ID是絕對正常的,甚至是標准的。

附帶說明一下,如果您對SEO感興趣,則可能要在URL中傳遞書名,因為URL內容會在一定程度上影響您的排名。 因此,使用諸如book/{book-id}-{bookname}類的URL可能是個好主意,例如book/12344-critique-of-pure-reason

UPDATE

正如@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

}

因此,請確保您正在執行此操作,否則數據庫將不安全。

是的,沒問題,您也可以發送POST請求而不是GET,我認為會更好。

解決方案1

book/?ids=12,13,14

解決方案2:提交表格如下

<input name="id" value="12"/>
<input name="id" value="13"/>
<input name="id" value="14"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM