gpt4 book ai didi

php - 在 PHP 中包含文件时可以使用 $_GET 变量吗?有可能吗,甚至来自 AJAX 调用?

转载 作者:可可西里 更新时间:2023-11-01 00:11:49 25 4
gpt4 key购买 nike

我有一个 PHP 文件可以处理发送确认电子邮件。我还有一个使用 AJAX 进行各种更新的日历。当 AJAX 调用更新文件时,它会使用新信息更新数据库,我希望发送确认电子邮件。

所以从 AJAX 调用的 php 文件中,我想我应该 include("email-sender.php?stage=confirm2a&job={$slot->job_id} 调用电子邮件 php页面,使用 $_GET 变量告诉它发送哪些电子邮件以及发送给谁。

但出于某种原因,当您使用附加到字符串的 ?key=value $_GET 对时,我无法使包含工作。 PHP.net 告诉我您可以在包含中使用 $_GET 变量,但是当我设置一个简单的测试时,它似乎不起作用。

我的测试页面有一个链接,单击该链接时会向页面提交一个 ajax 调用以及包含一个变量“农场”的数据,该变量等于值“动物”。像这样:

$("a.testlink").click(function() {
var mydata = "farm=animal";
$.ajax({
url: "ajaxPHP.php",
data: mydata,
success: function(rt) {
alert(rt);
}
});

所以 ajaxPHP.php 说:

if($_GET['farm']) {
$var = $_GET['farm'];
echo $var;
}

此时,单击链接时,成功警报会显示“动物”。没错。

但如果我将 ajaxPHP.php 更改为:

if($_GET['farm']) {
$var = $_GET['farm'];
include("ajaxInclude.php?farm={$var}");
}

还有一个名为 ajaxInclude.php 的文件,上面写着:

if($_GET['farm']) {
$var = $_GET['farm'];
echo $var;
}

然后当我点击链接时,我得到一个空的警告。因此,包含不适用于附加到末尾的查询字符串。

有什么帮助吗?

添加

所以现在我有以下内容:

$stage = "confirm2a";
include("email-sender.php");
$stage = "confirm2b";
include("email-sender.php");

然后在 email-sender.php 中,显然有很多这样的代码:

if($stage == "confirm2a") { 
email Person 1 etc...
}
if($stage == "confirm2b") {
email Person 2 etc...
}

但是当我运行脚本时,只有第 1 个人收到了电子邮件,而且只有一次。不知道为什么...

最佳答案

您可以在包含的脚本中处理变量,而不是将它们附加到包含路径本身:

$var = "foo";
include("script.php");

-- script.php 的内容--

echo $var; // 'foo'

在我看来,无论如何这要干净得多。在回显任何变量之前,您可能希望检查以确保值存在于 script.php 中。

关于php - 在 PHP 中包含文件时可以使用 $_GET 变量吗?有可能吗,甚至来自 AJAX 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com