【问题标题】:Ajax, PHP and mysql commenting systemAjax、PHP 和 mysql 评论系统
【发布时间】:2012-07-10 21:59:06
【问题描述】:

我正在尝试使用 ajax php 和 mysql 为网站创建评论系统。为此,我想将单击以上传评论(将设置为文章名称)的按钮的 id 发送到 sql 数据库(以及评论和其他一些东西......)

我现在的系统相当奇怪..如果我将它复制到 jsFiddle 中并链接到我服务器上正确的 php 文件,它工作正常并且按钮的 id 被上传到数据库.. 但是如果我将完全相同的内容上传到我的网站,它将无法正常工作......这就是我所拥有的:

HTML 格式:

<form id="addCommentForm"> 
<input type="email" name="email" onchange="checkEmail();" id="email" /> </br>
<div>
<p id="emailerror"> </p>
</div> </br>
<input type="text" name="username" id="username" /> </br>
<input type="text" name="content" id="content" /> </br>
<input type="Button" value="submit" id="Test" onclick="commentSend(this.id);return       false;"/>
</form>

javascript(外部):

function commentSend(clicked_id) 
{

var email = document.getElementById("email").value //gets the user's email
var username = document.getElementById("username").value //gets the user's username
var content = document.getElementById("content").value //gets the comment content
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  };
xmlhttp.open("GET","commentUpload.php?email=" + email + "&username=" + username +    "&content=" + content + "&articleName="+ clicked_id,true);
xmlhttp.send();

return false;

}

还有php:

<?php 
$con = mysql_connect("myserver","myusername","mypassword");
mysql_select_db("mydatabase", $con);

$articleName = mysql_real_escape_string($_GET['articleName']);
$email = mysql_real_escape_string($_GET['email']);
$username = mysql_real_escape_string($_GET['username']);
$content = mysql_real_escape_string($_GET['content']);

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$query = "INSERT INTO Comments (id, article, email, name, body)    VALUES (NULL, '" . $articleName ."', '" . $email ."', '" . $username . "', '". $content . "')";

mysql_query($query);

mysql_close($con);

?> 

我唯一能想到的是将变量 this.id 传递给外部 javascript 文件时出现一些错误,因为这是唯一没有上传到数据库的值...

任何人有任何想法!?

【问题讨论】:

  • 当你在你的网站上运行 Firebug 时会说什么?
  • 我不使用萤火虫...给我一秒钟,我会下载看看它说什么
  • 欢迎来到 SO,如果这是家庭作业,请标记为这样,您将不会因为以自己的方式做事而感到兴奋。今天那里的老师简直糟透了,你不应该为此受到责备。
  • 您使用的是什么示例评论文本?一种猜测是您的示例文本太长并且文章名称被推迟。尝试使用 POST 数据而不是 GET 来解决任何 url 长度问题。
  • 好吧,废话……显然它只是不适用于我的 safari 版本……:/ 我正在使用 beta 版本,任何人都可以为我确认这是否适用于最新的 safari 完整版发布?

标签: php javascript mysql ajax


【解决方案1】:

您没有对变量进行编码以便在查询字符串中使用。

您可以做些什么来解决这个问题,使用encodeURIComponent(适用于所有值...),例如:

var content = encodeURIComponent(document.getElementById("content").value);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多