Javascript I';我试图用php、mysql和ajax制作一个图像上传网站,但是我一直没有得到任何输出

Javascript I';我试图用php、mysql和ajax制作一个图像上传网站,但是我一直没有得到任何输出,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,我正试图建立一个图像上传网站,用户可以发布他们的图像和其他登录用户可以回复他们。我正试图使用php、mysql和ajax实现这一点。我实际上是在遵循一个教程,我已经修改了他们的代码以适合我的网站。但每次我点击提交,页面似乎都会刷新,因为我被重定向到网站的顶部,新评论不会像我希望的那样发布在旧评论的顶部,而且我的数据库中的commentstable中也没有插入新评论的信息 代码如下: 这是一个php文件,我在其中显示图像并打印注释,并设置一个textarea以输入用户的新注释。在这个文件中,我导入

我正试图建立一个图像上传网站,用户可以发布他们的图像和其他登录用户可以回复他们。我正试图使用php、mysql和ajax实现这一点。我实际上是在遵循一个教程,我已经修改了他们的代码以适合我的网站。但每次我点击提交,页面似乎都会刷新,因为我被重定向到网站的顶部,新评论不会像我希望的那样发布在旧评论的顶部,而且我的数据库中的commentstable中也没有插入新评论的信息

代码如下:

这是一个php文件,我在其中显示图像并打印注释,并设置一个textarea以输入用户的新注释。在这个文件中,我导入了一个javascript文件,其中包含一个名为postcomment()的函数,该函数执行ajax部分。comments表有一个名为commentForImageId的列,该列存储发布特定注释的图像的id

<?php 
//image is displayed above this set of code with all the required data

date_default_timezone_set('Asia/Kolkata');//to set my country's timezone
?>

<form method="post" action="" onsubmit="return postcomment();">
    <input type="hidden" id="imageId" value="<?php echo $imageId; ?>">
    <input type="hidden" id="datetime" value="<?php echo date('Y-m-d H:i:s'); ?>">
    <textarea id="comment" placeholder="Write comment"></textarea><br>
    <button type="submit">post comment</button>
</form>

<div id="allcomments">
    <?php

    $sql= "SELECT * FROM commentstable ORDER BY datetime DESC";
    $result=mysqli_query($conn,$sql);
    while($row=mysqli_fetch_assoc($result))
    {   
        $commentForImageId=$row['commentForImageId'];

        if($commentForImageId==$imageId){
            $username=$row['commentByUserName'];
            $comment=$row['comment'];
            $datetime=$row['datetime'];
    ?>
    <hr>
    <div class="comment_div"> 
    <p class="comment"><?php echo $comment; ?></p>
    <p class="username">Posted By:<?php echo $username; ?></p>  
    <p class="datetime"><?php echo $datetime; ?></p>
    </div>
    <hr>

    <?php
}}?>
</div>
下面是commentsystem.php。这里,“dbh.php”是建立与数据库连接的数据库处理文件:

<?php
session_start();

include 'dbh.php';

if(isset($_SESSION['id'])){//if user has logged in
    if(isset($_POST['comment']) && isset($_POST['datetime']) && isset($_POST['imageId']))
    {
    //if user has submitted the comment
    $comment=$_POST['comment'];
    $datetime=$_POST['datetime'];
    $imageId=$_POST['imageId'];
    $username=$_SESSION['username'];
    $userId=$_SESSION['id'];

    $sql="INSERT INTO commentstable (commentForImageId, commentByUserId, commentByUserName, likes, numberOfReplies, comment, datetime) VALUES ('$imageId', '$userId', '$username', 0, 0, '$comment', '$datetime')";
    $result=mysqli_query($conn,$sql);

    ?>

    <div class="comment_div"> 
        <p class="comment"><?php echo $comment; ?></p>
        <p class="username">Posted By:<?php echo $username; ?></p>  
        <p class="datetime"><?php echo $datetime; ?></p>
    </div>

    <?php
    exit;
}   
}
else{   
    header("LOCATION: signup.php");
}
?>

我会给按钮一个类,例如postcomment和调用this
$('.postcomment')。单击(function(){$.ajax….return false;})


另外,请确保将$imageId设置为commentsystem.php中所需的设置值

查看控制台,使用php的错误报告以及查询/查询检查错误。另一方面,您的代码极易受到黑客的SQL注入攻击和javascript注入攻击。在你被黑客攻击之前,你应该先修复它们,但不要出现任何错误。只是因为什么都没有发生,所以我无法理解发生了什么错误。关于sql注入,谢谢hanshenrik指出了这一点,而且一旦代码开始工作,我确实会处理它。不过,再次感谢:)你还说你想上传图像;我没有看到任何与此相关的代码,也没有处理/上传。你说你没有犯错误;我没有看到任何错误检查。再一次,看看你的JS和php控制台,你能解释一下为什么它不能像我以前使用的那样工作吗?是的,它现在工作得很好,但是我很好奇为什么没有使用JQuery$它就不能工作。ajax是一种JQuery方法
<?php
session_start();

include 'dbh.php';

if(isset($_SESSION['id'])){//if user has logged in
    if(isset($_POST['comment']) && isset($_POST['datetime']) && isset($_POST['imageId']))
    {
    //if user has submitted the comment
    $comment=$_POST['comment'];
    $datetime=$_POST['datetime'];
    $imageId=$_POST['imageId'];
    $username=$_SESSION['username'];
    $userId=$_SESSION['id'];

    $sql="INSERT INTO commentstable (commentForImageId, commentByUserId, commentByUserName, likes, numberOfReplies, comment, datetime) VALUES ('$imageId', '$userId', '$username', 0, 0, '$comment', '$datetime')";
    $result=mysqli_query($conn,$sql);

    ?>

    <div class="comment_div"> 
        <p class="comment"><?php echo $comment; ?></p>
        <p class="username">Posted By:<?php echo $username; ?></p>  
        <p class="datetime"><?php echo $datetime; ?></p>
    </div>

    <?php
    exit;
}   
}
else{   
    header("LOCATION: signup.php");
}
?>