1

我正在尝试创建一个使用会话的 PHP 论坛页面。每次我尝试发表评论时,我都会收到同样的错误,不知道我哪里出错了

这是我的表单代码:

session_start();

if(!isset($_SESSION['user_id'])){

    require('login_tools.php');

    load();

    }

    $page_title = 'Post Message';

    include('includes/header.html');

    echo "<h1>Home</h1>

        <p>You are now logged in, {$_SESSION['first_name']} 

{$_SESSION['last_name']}

        </p>";

    echo '<form action = "post_action.php" method = "POST" accept-charset = "utf-8">
        <p>Subject:<br/>

        <input name = "subject" type = "text" size = "64"</p>`

        <p>Message:<br/>

        <textarea name = "message" rows = "5" cols = "50">

        </textarea></p>

        <p><input type = "submit" value = "Submit"></p>

        </form>';

这是发布操作的代码:

session_start();
    require('login_tools.php');


    if(!isset($_SESSION['user_id'])){

    load();
    }

    $page_title = 'Post Error';

    include('includes/header.html');

    echo '<div id = "content">';

    if($_SERVER['REQUEST_METHOD']=='POST'){

        if(empty($_POST["subject"])){

            echo '<p class = "main">Please enter a subject for this post</p>';
            }

        if(empty($_POST["message"])){

            echo '<p class = "main">Please enter a message for this 

邮政

'; }

            if(!empty($_POST['subject']) && !empty($_POST['message'])){

                require('../connect_db.php');

                $q = "INSERT INTO forum
                    (first_name,last_name,subject,messsage,post_date)

                    VALUES(

                    '{$_SESSION[first_name]}',

                    '{$_SESSION[last_name]}',

                    '{$_POST[subject]}',

                    '{$_POST[message]}',

                    NOW())";

                    $r = mysqli_query($dbc,$q);

                        if(mysqli_affected_rows($dbc)!=1){

                            echo '<p>Error</p>'.mysqli_error($dbc);
                            }
                            else{
                                load('forum.php');
                                }

                    mysqli_close($dbc);
                    }
        }
4

2 回答 2

2

有一个拼写错误

 $q = "INSERT INTO forum
                    (first_name,last_name,subject,messsage,post_date)

它应该是message

于 2013-03-27T11:51:45.807 回答
0

生成 SQL 的 PHP 语句在 $_SESSION 的成员名称周围缺少引号。

我会写

$q = "INSERT INTO forum
          (first_name,last_name,subject,messsage,post_date)

          VALUES('" .

              $_SESSION['first_name'] . "','" .

              $_SESSION['last_name'] . "','" .

              $_POST['subject'] . "','" .

              $_POST['message'] . "'," .

              "NOW())";
于 2013-03-27T12:00:44.350 回答