drupal未定义的函数静态html和post to php

drupal未定义的函数静态html和post to php,php,drupal,drupal-7,drupal-modules,Php,Drupal,Drupal 7,Drupal Modules,我将自己的php文件放在/sites/all/modules/中,并通过$.post()从静态html页面(javascript函数)调用它,该页面也位于/sites/all/modules/中 然而,php似乎并没有像预期的那样执行,而是被调用了(ApacheHttpd中的访问日志显示它是发布到的) 如果我尝试手动请求相同的php页面,我会收到以下错误: 致命错误:在第x行的/full/path/to/sites/modules//中调用未定义的函数db_insert() 我在php页面中的e

我将自己的php文件放在/sites/all/modules/中,并通过
$.post()
从静态html页面(javascript函数)调用它,该页面也位于/sites/all/modules/中

然而,php似乎并没有像预期的那样执行,而是被调用了(ApacheHttpd中的访问日志显示它是发布到的)

如果我尝试手动请求相同的php页面,我会收到以下错误:

致命错误:在第x行的/full/path/to/sites/modules//中调用未定义的函数db_insert()

我在php页面中的
echo
语句在该错误上方正确输出,并且只使用
$\u GET['paramname']
。(和_POST,更改为测试直接请求)打印一些查询字符串参数以进行调试)

此外,当我向
看门狗添加呼叫时,我收到:

致命错误:在第x行的/full/path/to/sites/modules//中调用未定义的函数watchdog()


无法直接访问PHP页面吗?或者我需要导入Drupal库吗?或者我只是在Drupal的工作方式上遗漏了一些其他的东西?

您会遇到关于未定义函数的错误,因为您的PHP文件独立于Drupal,并且没有引导它

Drupal的方法是创建一个模块(请参见和),该模块定义了它处理的URL;然后,该URL将与
$.post()一起使用

作为引导Drupal方法的示例,请参阅每个Drupal安装附带的文件内容。(以下代码是从Drupal 7中使用的代码。)

代码从Drupal6更改为Drupal7,但在两个Drupal版本中都有定义


无论如何,正确的方法是创建一个模块。有关模块为什么应该使用引导Drupal的PHP文件的原因列表,请参见

您会收到关于未定义函数的错误,因为您的PHP文件独立于Drupal,而不是引导它

Drupal的方法是创建一个模块(请参见和),该模块定义了它处理的URL;然后,该URL将与
$.post()一起使用

作为引导Drupal方法的示例,请参阅每个Drupal安装附带的文件内容。(以下代码是从Drupal 7中使用的代码。)

代码从Drupal6更改为Drupal7,但在两个Drupal版本中都有定义


无论如何,正确的方法是创建一个模块。有关模块应该使用引导Drupal的PHP文件的原因列表,请参见

谢谢,我的初始测试使用了引导。另外还要感谢关于如何用drupal方式实现这一点的其他参考资料(长期的意图,只是想先静态地测试一些东西)。谢谢,引导用于我的初始测试。另外还要感谢大家提供了更多关于如何用drupal方式实现这一点的参考资料(长期打算,只是想先静态测试一些东西)。
/**
 * Root directory of Drupal installation.
 */
define('DRUPAL_ROOT', getcwd());

require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);