php - "AND $_SESSION[' user_id '] = posted_by"不工作

标签 php mysql session

基本上我有一个网站,人们可以在其中发布主题或讨论,我添加了一个工作正常的 edit_post 功能,但在测试中我意识到通过更改 URL 人们可以编辑其他人的帖子,我尝试实现检查这样只有发布帖子的人才能编辑它,但运气不好,我没有收到任何错误,但现在不允许其他用户编辑,但也不允许主题创建者编辑。

if ( isset($_GET['edit'])) {

    $id =   $_GET['edit'];
    $res =  mysql_query("SELECT users.user_id, users.username, users.profile, topics.topic_id, topics.category, topics.sub_category, topics.subsub_category, topics.topic_data, 
            topics.posted_by, topics.posted, topics.view, topics.invisipost
    FROM    `topics` 
    JOIN    `users` on topics.posted_by = users.user_id WHERE topic_id='$id'"); 
    $rows = mysql_fetch_array($res);
}
if ( isset($_POST['topic_data'])) {
    $topic_data = $_POST['topic_data'];
    $id = $_POST['id'];
    $sql = "UPDATE topics SET topic_data='$topic_data' WHERE topic_id='$id' AND '".$_SESSION['user_id']."'='$posted_by'";
    $res = mysql_query($sql) or die("Could not update".mysql_error());
    header("Location: view_topic.php?topic_id=$id");
}

最佳答案

您的查询应如下所示:

"UPDATE topics SET topic_data='$topic_data' WHERE 
topic_id='$id' AND posted_by ='".$_SESSION['user_id']."'";

因为 posts_by 是列...

关于php - "AND $_SESSION[' user_id '] = posted_by"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720485/

相关文章:

php - 使用 GROUP BY 获取最新条目

mysql - SQL Server 是否优化常量表达式?

php - 与循环结果比较时,mysql结果重复

javascript - 如何在 Express 4.0 中发送 Flash 消息?

javascript - Angular js json.stringify 到 php

php - 如果没有评论,则选择(获取)文章

php - 如何检查随机字符生成器的重复结果

php - 如何连接来自不同数据库的两个表

.net - OracleConnections 会超时吗?如果不是,为什么我的 Oracle session (在 v$session 中)消失了?

javascript - 我如何在 React 中使用 PHP Session?