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