Ajax php脚本返回包含错误

时间:2012-02-25 23:49:04

标签: php ajax

已解决 - 请参阅帖子底部

嘿大家先发帖,所以如果格式不准确,我会事先道歉;不过这是我的问题..

我有一个简单的表单,用于将用户电子邮件添加到数据库。我正在利用ajax提交表单和php来处理(添加到DB)一个有效的表单提交。

ajax脚本正在正确发送数据 - 我正在使用firebug来验证表单数据是否正在传递 - 我已经验证了ajax调用中指定的php脚本是否正确接收数据。

问题在于传递回ajax成功函数的数据。我在php脚本中有一个include调用,包括一个用于连接到我的数据库的类,以及过多的DB函数(运行quires,设置DB表,关闭DB连接......等等)。当ajax success函数返回数据时,返回的数据中包含php'missing include'错误。

Theories I have that is causing this: 

1。)无论出于何种原因,当ajax成功函数返回数据时,正在处理php脚本中的include调用

2.。)include调用永远不会在服务器端处理,而是充当返回字符串

问题:我可以在我正在使用的方法中使用包含调用吗?

希望我已经包含了足够的信息,如果没有,请告诉我还需要什么。谢谢你的帮助。 =]

以下是代码:

AJAX SCRIPT:

 $.ajax({
    type: "POST",
    url: "xxxx/include/module/mailing_list/mailvalidation.php",
    data: formData,
      beforeSend: function(){
         //validation code for form\\
      },
      success: function(data){
        alert("successful submissio: " + data);
      }
  )};

PHP SCRIPT:

include("xxxx/library/database/class_lib_db.php");
cleanPost();
if (userInDB){
    insertUserInfo();   
    echo "You ajax post was submitted " . $_POST['first_name'] . " " . $_POST['last_name'];
} else {
    echo "Your already registred " . $_POST['first_name'] . " " . $_POST['last_name'];  
}

以下是ajax数据中返回的错误:

  

警告:include(xxxx / library / database / class_lib_db.php)   [function.include]:无法打开流:没有这样的文件或目录   在   /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.php   在第77行

     

警告:include(xxxx / library / database / class_lib_db.php)   [function.include]:无法打开流:没有这样的文件或目录   在   /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.php   在第77行

     

警告:include()[function.include]:打开失败   'xxxx / library / database / class_lib_db.php'包含在内   (include_path ='。:/ usr / lib / php:/ usr / local / lib / php')in   /home/xxxx/public_html/xxxx/include/module/mailing_list/mailvalidation.php   在第77行

分辨

我在php脚本中编辑了include调用

之前:include("xxxx/library/database/class_lib_db.php");

之后:include("../../../../xxxx/library/database/class_lib_db.php");

注意:在使用ajax之前,我从未使用'../'引用我的包含电话

1 个答案:

答案 0 :(得分:1)

尝试将include函数中的路径更改为

include("../../../library/database/class_lib_db.php");

如果您正在向“xxxx / include / module / mailing_list / mailvalidation.php”发出ajax请求,PHP脚本中的include语句实际上指向“xxxx / include / module / mailing_list / xxxx / library /数据库/ class_lib_db.php“