我是PHP新手,所以不知道這將如何結果。可以說我有一個添加好友頁面。並在數據庫中讓我們說我有一個名爲「朋友」和下列行表:my_id和friend_id和id_request。如何防止用戶生成的錯誤?
,現在我有一個PHP頁面,看起來像:addfriend.php ID = friendid
然後我用id從該鏈接中插入到數據庫我的ID和friendid。
問題是如果有人在地址欄中的鏈接中輸入「kdjfkldjlfk」會發生什麼?
我是PHP新手,所以不知道這將如何結果。可以說我有一個添加好友頁面。並在數據庫中讓我們說我有一個名爲「朋友」和下列行表:my_id和friend_id和id_request。如何防止用戶生成的錯誤?
,現在我有一個PHP頁面,看起來像:addfriend.php ID = friendid
然後我用id從該鏈接中插入到數據庫我的ID和friendid。
問題是如果有人在地址欄中的鏈接中輸入「kdjfkldjlfk」會發生什麼?
需要阻止這些情況並驗證
例如:
測試的$ _GET [「身份證」] isset並且friendid是真實的,你可以查詢數據庫,看到ID存在...
如果您的意思是「如果某人訪問URI不存在的ID會發生什麼?」,那麼這取決於您的PHP所發生的事情。
如果你的PHP沒有檢查它的SQL查詢得到了多少結果,那麼這個頁面很可能會吐出一個500內部服務器錯誤。
如果您設計得當,它會返回一個文檔,說明您不能添加不存在的用戶作爲朋友。
實際上,如果你設計得很好,那麼數據應該通過POST發送而不是GET,因爲添加朋友不是冪等事件。 (請參閱HTTP specification - GET應無副作用)
我實際上現在拉取$ id並再次使用它來查看該用戶是否存在該id。如果不是,那麼它會將頁面重新路由到404 .. – AAA
事實證明,PHP有一些非常酷的內置過濾器功能。你應該學習和使用它們:
if (filter_var($_GET['id'], FILTER_VALIDATE_INT) === false) {
// error
}
if (filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) === false) {
// error
}
if (filter_var($_GET['ip_address'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false) {
// error
}
其實我現在拉的是$ ID,並再次使用它來看看以下的用戶存在的ID。如果不是,那麼它會將頁面重新路由到404 .. – AAA