Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 包括/要求不工作-在线支付脚本_Php_Wordpress_Mailing_Payu - Fatal编程技术网

Php 包括/要求不工作-在线支付脚本

Php 包括/要求不工作-在线支付脚本,php,wordpress,mailing,payu,Php,Wordpress,Mailing,Payu,我有一个很奇怪的问题: 我创建了一个简单的基于Wordpress的商店。我出售电子书并通过电子邮件发送。我使用在线支付,并有插件与他们合作。它在php文件中有内置网关。我想将我的代码注入这个脚本,以实现销售自动化。看起来是这样的: <?php //1. Get payment info from payment service via $_POST //2. Chceck all hashes etc. //3. Get status to variable e.g. $status if

我有一个很奇怪的问题: 我创建了一个简单的基于Wordpress的商店。我出售电子书并通过电子邮件发送。我使用在线支付,并有插件与他们合作。它在php文件中有内置网关。我想将我的代码注入这个脚本,以实现销售自动化。看起来是这样的:

<?php
//1. Get payment info from payment service via $_POST
//2. Chceck all hashes etc.
//3. Get status to variable e.g. $status
if ($status == 99)//everything is ok
{
    $order_id = $_POST["no_of_transaction"];
    log_to_file("Yeah i am workig. id =".$order_id."with status ".$status);
    include $_SERVER["DOCUMENT_ROOT"]."/sell_stuff.php";
    log_to_file("Yeah i am still workig");
}
?>
<?php
echo "Yeah i am workig";
$oder_id = 100; //my own order
include $_SERVER["DOCUMENT_ROOT"]."/sell_stuff.php";
echo "Yeah i am still workig";
?>

sell_stuff.php:

<?php
log_to_file("Hello i am in sending script!");
//i assume that $order_id is still visible
$order = mysql_fetch_assoc(mysql_query("SELECT * FROM order where id=".$order_id));
$mail->to = $order['email'];
$mail->attachment = "/upload/pdf/".$order['book'].'.pdf';
$mail->send();
?>

这种方法根本不起作用:(我试图将include更改为要求并使用ABSPATH,而不是$_SERVER[“DOCUMENT\u ROOT”],但仍然失败。日志文件中记录的最后一件事是“是的,我正在工作。id=xxx,状态为99”。 我创建了test.php文件,如下所示:

<?php
//1. Get payment info from payment service via $_POST
//2. Chceck all hashes etc.
//3. Get status to variable e.g. $status
if ($status == 99)//everything is ok
{
    $order_id = $_POST["no_of_transaction"];
    log_to_file("Yeah i am workig. id =".$order_id."with status ".$status);
    include $_SERVER["DOCUMENT_ROOT"]."/sell_stuff.php";
    log_to_file("Yeah i am still workig");
}
?>
<?php
echo "Yeah i am workig";
$oder_id = 100; //my own order
include $_SERVER["DOCUMENT_ROOT"]."/sell_stuff.php";
echo "Yeah i am still workig";
?>

…当我通过www.mystore.com/test.php运行它时,它的工作非常完美。它会记录到文件“Hello I am in sending script!”和所有其他内容。 我不知道我在哪里出错:(

试着放下“/”,然后像这样使用它:

$_SERVER["DOCUMENT_ROOT"]."sell_stuff.php";
另外$\u服务器[“DOCUMENT\u ROOT”]正在生成指向www根文件夹的路径,如

www.serwer.com/www/
如果您的站点位于:

www.serwer.com/www/www2/
它将不包括在内。如果您将使用:

__DIR__."/sell_stuff.php";
它将获取文件所在位置的路径

www.serwer.com/www/www2/
你可以随时:

var_dump($_SERVER["DOCUMENT_ROOT"]);
var_dump(__DIR__);
要查看差异和获得的路径,请尝试删除“/”,并像以下那样使用它:

$_SERVER["DOCUMENT_ROOT"]."sell_stuff.php";
另外$\u服务器[“DOCUMENT\u ROOT”]正在生成指向www根文件夹的路径,如

www.serwer.com/www/
如果您的站点位于:

www.serwer.com/www/www2/
它将不包括在内。如果您将使用:

__DIR__."/sell_stuff.php";
它将获取文件所在位置的路径

www.serwer.com/www/www2/
你可以随时:

var_dump($_SERVER["DOCUMENT_ROOT"]);
var_dump(__DIR__);

查看差异和您得到的路径。

在include try之前(出于调试目的)
ini\u set('display\u errors',true);error\u reporting(E\u ALL)
。弹出任何消息吗?您不应该依赖于$\u服务器变量,而应该依赖于调用脚本的位置。类似这样的内容:
include uu DIR u./../inc/sell _stuff.php'
在include try(出于调试目的)
ini\u集('display\u errors',true);错误报告(E\u ALL)
。弹出任何内容?您不应该依赖于$\u服务器变量,而应该依赖于调用脚本的位置。类似这样的内容:
包括$\u DIR./../inc/sell\u stuff.php'
var\u dump($\u SERVER[“DOCUMENT\u ROOT”]);var\u dump($\u DIR uu)是将文件移动到更深的方法。如果您的主根目录是www.site.www/www/,则将其移动到www.site.www/www/www2/,然后检查上面的内容。Yep dir显示当前文件夹,$\u SERVER[“DOCUMENT\u root”]仍然是主文件夹,但在我的情况下是不可逆的,因为使用sell\u stuff.php位于主文件夹:/
var\u dump($\u SERVER[”DOCUMENT_ROOT“];var_dump(uuu DIR_uuu);
是将文件移动到更深的方法。如果您的主根是www.site.www/www/,则将其移动到www.site.www/www/wwww2/,然后检查上面的内容。Yep DIR显示当前文件夹,$\u SERVER[“DOCUMENT_ROOT”]仍然是主文件夹,但在我的情况下是不可逆的,因为sell_stuff.php位于主文件夹中:/