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

时间:2015-07-21 08:03:41

标签: 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 ($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");
}
?>

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更改为require并使用ABSPATH而不是$ _SERVER [“DOCUMENT_ROOT”]但它仍然失败。日志文件中记录的最后一件事是“”是的我是workig.id = xxx,状态= 99“。 我已经创建了这样的test.php文件:

<?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运行时,它的工作非常完美。它记录到文件“你好我在发送脚本!”和所有其他的东西。 我不知道我哪弄错了:(

1 个答案:

答案 0 :(得分:0)

尝试删除&#34; /&#34;,并将其用作:

$_SERVER["DOCUMENT_ROOT"]."sell_stuff.php";

另外$ _SERVER [&#34; DOCUMENT_ROOT&#34;]正在创建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__);

查看差异和路径。