MySQL查询问题 - 未通过的PHP变量包括

时间:2015-12-02 16:58:20

标签: php mysql

正如标题所示,我无法执行MySQL查询。查询几乎成功,因为所有数据字段都存储在我的数据库中,除了一个。查询本身是一个评论系统,用于登录用户对任何给定的博客帖子发表评论。我遇到的问题是变量' $ post_id'无法识别,因此' $ comment_post_ID'没有存储在我的数据库中。

' $ POST_ID'在blogs.php中定义,并且在回显此变量之后,它确实存在并且已成功定义。但是,此变量不会传递到commentsubmit.php,后者包含在定义变量的同一文件中。为什么会这样?

以下是我的所有代码:

blogs.php(显示所有用户的所有帖子,或者只有一个帖子,如果在网址中设置了?id。如果设置了?id,则用户可以评论他们正在查看的单个帖子。)

<?php
if (isset($_GET['id'])) {
    $conn = mysqli_connect("localhost", "root", "mypassword", "mydbname");

if (mysqli_connect_errno($conn)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit;
}

$post_id = mysqli_real_escape_string($conn, $_GET['id']);

$blog_post = "SELECT * FROM blogs WHERE id = '$post_id'";
$blog_query = mysqli_query($conn, $blog_post);

while ($row = mysqli_fetch_array($blog_query)) {
    $title = $row['title'];
    $body = $row['body'];
    $author = $row['author'];
    $author_username = $row['author_username'];
    $datetime = time_ago($row['datetime'], $granularity=2);
}

include ("./fullpageblog.php");

if (isset($_SESSION['id'])) {   
    include ("./blogcomment.php");
    include ("./commentsubmit.php");
}

echo "$post_id";

mysqli_close($conn);
}
?>

blogcomment.php(供用户发表评论的表格)

<div class="row col-sm-12">
<div id="fullPageBlog">     
    <div id="center-border"></div>
        <form action="commentsubmit.php" method="post">
            <textarea maxlength="1000" id="blogComment" name="content" placeholder="Write your response..."></textarea>
            <input type="submit" name="comment" value="Publish" />
        </form>
        <script type="text/javascript">$('#blogPost').elastic();</script>
    </div>
</div>

commentsubmit.php(评论查询本身)

<?php
session_start();

if (isset($_POST['comment'])) {
    $conn = mysqli_connect("localhost", "root", "mypassword", "mydbname");

    if (mysqli_connect_errno($conn)) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        exit;
    }

    $comment_post_ID = $post_id;
    $comment_author = $_SESSION['full_name'];
    $comment_author_email = $_SESSION['email'];
    $comment_author_username = $_SESSION['username'];
    $comment_date = date("Y-m-d H:i:s");
    $comment_content = mysqli_real_escape_string($conn, $_POST['content']);
    $user_ID = $_SESSION['id'];

    $comment_submit = "INSERT INTO comments (comment_ID, comment_post_ID, comment_author, comment_author_email, comment_author_username, comment_date, comment_content, user_ID) VALUES ('', '$comment_post_ID', '$comment_author', '$comment_author_email', '$comment_author_username', '$comment_date', '$comment_content', '$user_ID') ";
    $comment_query = mysqli_query($conn, $comment_submit);

    mysqli_close($conn);

    header("Location: blogs.php");
    die();
}
?>

2 个答案:

答案 0 :(得分:0)

您不包含/要求blogs.php脚本中的commentsubmit.php脚本,因此blogs.php中的代码永远不会在直接发送到{{1除非您在请求最终到达上面commentsubmit.php中显示的代码部分之前在服务器上自动发生了一些其他请求处理(即服务器端重写或类似)。

答案 1 :(得分:-2)

 <?php
     $con = mysql_connect("localhost","root","password");
     $con=mysql_select_db("database_name");
     error_reporting(0);
     session_start();

if(isset($_POST["submit"])){
     $comment_author = $_POST['full_name'];
     $comment_author_email = $_POST['email'];
     $comment_author_username = $_POST['username'];

    $sql="select * from table_name where `full_name`='"$comment_author "',`email`='"$comment_author_email "',`username`='"$comment_author_username "'";
    $qur=mysql_query($sql);
    $row= mysql_fetch_array($qur);
    $num= mysql_num_rows($qur);
}
 if($num>0){

 $_SESSION["full_name"]=$full_name;
 $_SESSION["email"]=$comment_author_email;
 $_SESSION["username"]=$comment_author_username;
 }
else{
  echo"Username and Password are wrong";
 }

?>