我有一个非常奇怪的问题: 我创建了简单的基于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运行时,它的工作非常完美。它记录到文件“你好我在发送脚本!”和所有其他的东西。 我不知道我哪弄错了:(
答案 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__);
查看差异和路径。