2012-07-10 93 views
2

我想創建一個使用Ajax PHP和MySQL網站的評論系統。爲此,我想發送點擊按鈕的ID來上傳評論(這將設置爲文章名稱)到sql數據庫(以及評論和其他東西...)Ajax,PHP和mysql評論系統

該系統我目前正在相當奇怪..如果我將它複製到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文件,因爲這是唯一的價值沒有上傳到數據庫...

任何任何想法!?

+0

當您在網站上運行它是什麼螢火蟲說什麼? – JoeCortopassi 2012-07-10 22:01:23

+0

我不使用螢火蟲...給我一秒我會下載並看看它說什麼 – simonthumper 2012-07-10 22:03:03

+0

歡迎來到SO,如果這是作業,請標記爲這樣,你會得到較少的擴建工作你有。今天的教師只是吮吸,你不應該被指責。 – Louis 2012-07-10 22:08:51

回答

0

您沒有對變量進行編碼以用於查詢字符串。

,你能做些什麼來解決這個問題,使用encodeURIComponent(所有值...),如:

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