一个简单的留言板功能,用户登录后,要编辑自己的留言,我是通过
$sql="select * from notepad where id='".$_GET['id']."'";
来选择到这条留言进行编辑,编辑页面的URL是http://xxxx/edit_message.php?id=100这种形式的,
问题来了:这种情况下现在我只要在URL上改下id,比如把id=100改成id=80就能编辑到别人的留言了,
如何设置权限只能编辑自己的留言?

解决方案 »

  1.   

    留言表中应该还有个字段是用户的id例如 user_id,  写sql语句是这样写:$sql="select * from notepad where id=$id and user_id = $user_id";  $user_id一般是session那得到的
      

  2.   

    搞一个隐藏域 值为创建者的ID JS里判断当前用户ID跟创建者ID是否一致 是的话就设置样式可编辑 不是的话就不可编辑 
    关键是修改之后提交时sql语句where条件里要加上传入的id  用户通过修改id来越权是改不成数据库的 这不就行啦