我有一个GET方法,允许用户访问他们之前在我的网站上发表的评论。然后我有一个post方法,让他们更新该评论。
我的正常解决方案是发送整个Comment
模型,让他们更新它,然后在POST回来时在数据库上更新它。但这会涉及将CommentID
发送到HiddenFor
,这很容易被操纵。
如何验证我的CommentID
方法中发送的GET
与我POST
中的<?php
function user_exists($username){
$username= sanetize($username);
$query= mysqli_query($connect, "SELECT COUNT('user_id') FROM users WHERE username= '$username'");
if(mysqli_num_rows($query)>0){
return TRUE;
}
}
相同,因此他们无法更改任何评论希望?
答案 0 :(得分:4)
如何验证在我的GET方法中发送的CommentID是否相同 我回来了吗?
基本上,您必须在POST
-
CommentID
中获得的POST
应该是有效的CommentID
,并且应该存在于数据库中。UserId
应与UserID
相关联的Comment
相同。因此,基本上您的Comment
也应包含UserId
列,您可以在更新时查看该列。确保在GET
-
CommentID
中按住Session
,在POST
操作中将CommentID
与Session
中的值进行比较。答案 1 :(得分:2)
请注意,您所描述的这种行为是正确的。通过POST和GET,API必须允许使用CommentID
进行数据操作。
您缺少以下内容:为此,必须对用户进行身份验证并具有相应的角色。只要允许用户进行这些更改就没有问题。请注意,如果用户未经过身份验证或授权,则在执行身份验证和授权时,他或她将无法执行任何此操作。如果您愿意,您甚至可以允许具有特定角色的用户执行GET而不是针对此特定情况的POST。