2013-05-01 73 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