2013-03-09 65 views
-4

我創建了一個使用php mysql和ajax的評論系統,但不停地geting一個語法錯誤,我找不到壩錯誤這是comments.php代碼,如果有人幫我一個會明白,php + ajax +評論系統錯誤

的comments.php

<?php 

mysql_connect("localhost","root",""); //connect to the database: change user and pass to your own DB's user and pass 
mysql_select_db("ajaxComment"); //change this to the name of your mysql database 
if(isset($_POST['type'] == "addcomment")) { 
    $author = mysql_real_escape_string($_POST['author']); 
    $message = mysql_real_escape_string($_POST['message']); 
    //the mysql_real_escape_string() is to prevent sql injections and such. 
    if($author == "" || $message == "") { //one of the fields was empty... 
     die("<p><font color='red'>Error: Please fill out BOTH fields.</font></p>"); //...tell them 
    } 
    $q1 = mysql_query("INSERT INTO `comments` (`author`, `message`) VALUES ('$author', '$message')") or die("<p>Mysql Error: <b>".mysql_error()."</b></p>"); //if there was a mysql error, let them know 
    echo "<p><font color='green'>Comment added successfully. You should see it in a few seconds.</font></p>"; 
} elseif(isset($_POST['type'] == "getcomments")) { //ajax wants the comments. 
    $q1 = mysql_query("SELECT * FROM `comments`"); 
    $n1 = mysql_num_rows($q1); 
    if($n1 == 0) { //no comments found 
     die("<p><font color='red'>No comments were found.</font></p>"); 
    } 
    echo "<table border=1>"; 
    echo "<tr><td><b>Author</b></td><td><b>Comment</b></td></tr>"; 
    while($r1 = mysql_fetch_assoc($q1)) { //if there were any comments, loop through them 
     $a = $r1['author']; 
     $m = $r1['message']; 
     echo "<tr><td>$a</td><td>$m</td></tr>"; 
    } 
    echo "</table>"; 
} else { 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Ajax Comment Tutorial</title> 
<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script> 
<!--The above code will get the jquery AJAX library and include it into the page--> 
<script type="text/javascript"> 
(document).ready(function() { 
    $("submit").click(function(){ //this will execute code if the submit button was clicked 
     var user = $("#author").val(); //receive the contents of the field with the ID "author" and put it into the user var 
     var comment = $("#message").val(); //same as above, but with the message field instead. 
     $.post("comments.php",{type: "addcomment",author: user,message: comment},function(data){$("#return").html(data)}); 
     //the first parameter of the above, is the page to send the post data too. In this example, this page is called comments.php, so we send it there. 
     //the second parameter is the post data, it goes: {pn: pd} where pn is the name you use in PHP's $_POST and pd is the data it will contain. 
     //the third parameter is for the return data, in this case we sent it to the "return" div we made below our form. The first two parameters are not required. 
     return false; //this will stop the page submitting, so it won't refresh. 
    }); 
}); 
    function getComments() { //this function will collect the comments 
     $.post("comments.php",{type: "getcomments"},function(data){$("#comments").html(data)}); 
     //for an explanation on this, simply read the click function above. 
    } 
     setInterval("getComments()",10000); //gets the comments every 10 seconds. 
</script> 
</head> 

<body> 
    <div style="font-size: 18px;"> 
     <p>Current Comments: </p> 
     <div id="comments"></div> <!--This div will be filled with AJAX--> 
     <hr /> 
     <p>Add a comment:</p> 
     <form action="comments.php" method="post"> 
      <p>Username: <input type="text" name="author" id="author" /></p> 
      <p>Comment: <textarea name="message" cols="70" rows="10" id="message"></textarea></p> 
      <p><input type="submit" name="submit" value="Add Comment" id="submit" /></p> 
     </form> 
     <div id="return"></div> <!--This div will be filled with the return data from the comment processing script at the top--> 
    </div> 
</body> 
</html> 
<?php } ?> 
+1

錯誤信息? – dfsq 2013-03-09 15:54:54

+1

您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068)並應使用[現代替換](http://php.net/manual/en/ mysqlinfo.api.choosing.php)。 – Quentin 2013-03-09 15:55:38

+0

JavaScript語法錯誤或PHP語法錯誤?什麼行號?什麼是錯誤信息? – Quentin 2013-03-09 15:56:11

回答

0

PHP錯誤是在這一行:

if(isset($_POST['type'] == "addcomment")) { 

你可能希望它是:

if (isset($_POST['type']) && $_POST['type'] == "addcomment") { 
+0

你是對的謝謝你的幫助,但現在我有另一個問題..沒有數據存儲在數據庫中或顯示在屏幕上 – 2013-03-09 16:10:44

+0

沒問題。我會建議你使用良好的IDE進行開發。然後它會告訴你這個錯誤。 – dfsq 2013-03-09 16:12:04

+0

我使用Dreamweaver和記事本++無論如何感謝您的幫助 – 2013-03-09 16:15:09