将带有变量的文件URL传递到Postmark,导致文件未找到问题

时间:2015-10-26 20:19:02

标签: php

所以我使用Postmark发送电子邮件,而我所需的类需要一个变量作为邮件正文,如下所示:

$email->to(Input::post('email'))->subject("Verify Your Email Address")->html_message($html)->send();

如果我将$html设置为普通html,则可以正常工作。

我想要做的是从我的网站发送另一个php文件的内容作为这个html。

我试过了:

$Vdata = file_get_contents('verification.php'); 

这个工作正常,但是一旦我尝试传递变量就会给我一个错误:

  

找不到文件错误

并发送一封空白电子邮件,例如:

$Vdata = file_get_contents('verification.php?url=blah');

基本上我只需要$html作为verification.php?url=blah的内容,这样我就可以将变量传递给该文件。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您正在执行本地文件包含,这仅表示文件名。不允许使用网址(特别是查询字符串),因为您执行HTTP请求。 PHP将寻找一个文件,其名称字面上包含?ur等等......这当然不存在。

如果你想使用查询字符串,那么你必须使用一个完整的绝对URL,包括协议:

include('http://....?url=...');

然而,这非常低效,而且非常危险。因为您现在正在执行url中指定的文件。您将获得其输出,而不是文件中的原始PHP代码。

如果要将数据传递给包含的文件,则只需要变量:

$foo = 'bar';
include('test.php');

并使用查找/使用文件中的那些变量。