以登录用户的身份发布评论


Post comment as logged in user

我有一个系统,你可以在其中发布评论,它会写入数据库,用户需要写下他们的名字和评论。

我试图实现的是,如果用户登录,它会检索他们的用户名并将其作为名称发布。

我的登录工作非常好

这就是我目前拥有的

$_SESSION['user_username']= $username;

这是链接到用户发布评论的表单的脚本。当我试图发布评论时,我得到了一个line 7 error

if (isset($_POST['comment_submit'])) {
$statement = $pdo->prepare('INSERT INTO comments (comment_username, comment_description, comment_art)
VALUES (:comment_user, :comment_desc, :comment_article)');
    $criteria = [
        'comment_user' => $_POST[$username],
        'comment_desc' => $_POST['comment_description'],
        'comment_article' => $_GET['article_id']
    ];
$stmt->execute($criteria);
}

有人知道为什么这不起作用吗?

根据您的评论,代码,

$_SESSION['user_username']= $username;

应该像一样

 $username= $_SESSION['user_username'];

变量$username未初始化。

也可使用

 $criteria = [
        'comment_user' => $username, //Edited
        'comment_desc' => $_POST['comment_description'],
        'comment_article' => $_GET['article_id']
    ];