2013-05-01 76 views
0

我只是想從一個文本框中的字段來讀取,通過AJAX的值傳遞給PHP,然後將數據存儲在MySQL表。該表已經建立並準備就緒,我需要的只是插入值。傳遞從阿賈克斯一個字符串,PHP

這裏是我的js文件

var address = $("input#email").val(); 
    //If submission is valid 
    if(submitForm == "true"){ 
     $.ajax({ 
      url: "bin/process.php", 
      type: "POST", 
      data: {email: address}, 
      success: function(response) { 
      $('#message').html(response); 
      } 
     }); 
     return false; 
    } 

然後我的PHP看起來像這樣

<?php 

     function process($email){ 

     //Connect to the database 
     $con = mysql_connect('localhost', 'root', '') ; 
     if(!$con){ 
      retun mysql_error(); 
     } 

     //Insert Data into the Table 
     $sql = 'INSERT INTO Users(email) VALUES ('$email')' ; 
     $query = mysql_query($sql, $con) 
     if(!$query){ 
      return mysql_error(); 
     } 

     return "Thank you for your submission!"; 
     } 

     echo process(trim($_POST['email'])); 
    ?> 

現在我收到此錯誤

Parse error: syntax error, unexpected T_STRING /opt/lampp/htdocs/mysite/bin/process.php on line 3 

所以看來我沒有正確地傳遞地址值,但我無法弄清楚爲什麼。作爲參考,我按照這篇文章的說明:Jquery ajax call from javascript to PHP

我不太瞭解最後一個回聲線,但我嘗試了多種方法,他們都給了我同樣的錯誤。

在此先感謝!

+1

您正在使用[一個** **過時數據庫API](http://stackoverflow.com/q/12859942/19068)和應使用[現代更換](http://php.net/manual/en/mysqlinfo.api。 choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin 2013-05-01 13:10:42

+0

字符串連接使用'.'即'回聲「var爲:」是$ var;' – Waygood 2013-05-01 13:11:48

回答

3

你拼寫功能失常:funtion process($email){

應該function process($email){

什麼像樣的文本編輯器或IDE會趕上立即爲您服務。

+0

我不認爲這是正確的。 = – 2013-05-01 13:10:29

+0

你爲什麼不這麼認爲? – 2013-05-01 13:11:18

+2

檢查問題的功能被寫入正確我不認爲誤輸入爲funtion – 2013-05-01 13:11:57

1

從單一qoutes查詢更改這個

$sql = "INSERT INTO Users(email) VALUES ('$email')" ; 

因爲單引號將無法解析的變量。

3

我發現3個錯誤在你的代碼

  1. retun mysql_error(); // return spelling wrong
  2. $sql = 'INSERT INTO Users(email) VALUES ('$email')' ; // syntax error
  3. $query = mysql_query($sql, $con); // semicolon missing

糾正代碼...

<?php 
     function process($email){ 

     //Connect to the database 
     $con = mysql_connect('localhost', 'root', '') ; 
     if(!$con){ 
      return mysql_error(); 
     } 

     //Insert Data into the Table 
     $sql = "INSERT INTO Users(email) VALUES ('$email')" ; 
     $query = mysql_query($sql, $con); 
     if(!$query){ 
      return mysql_error(); 
     } 

     return "Thank you for your submission!"; 
     } 

     echo process(trim($_POST['email'])); 
    ?> 
+1

謝謝,這有助於很多。 TIL我需要一個更好的文本編輯器。 – Dan 2013-05-01 13:35:16

+0

歡迎:)並且您可以使用Dreamweaver或記事本++ – 2013-05-01 13:39:52