为什么PHP变量仍然没有定义?

为什么PHP变量仍然没有定义?,php,Php,我正在处理三个PHP文件。两个用作网页,另一个用于外部服务器端脚本。服务器端脚本包含在两个web页面文件中,我要做的是在第一个页面上有一些按钮,根据单击的按钮,用数据填充第二个页面,然后重定向到它 使用下面的代码,我们的想法是点击按钮,找出点击了哪个按钮,然后调用函数运行适当的查询并设置所需的变量。我不明白为什么变量没有设置 感谢所有看这个的人 第一页的按钮(index.php): 正如前面几个人指出的,您重定向到另一个文件。在这一点上,所有本地定义的变量都消失了——您不再有权访问它们 查看PH

我正在处理三个PHP文件。两个用作网页,另一个用于外部服务器端脚本。服务器端脚本包含在两个web页面文件中,我要做的是在第一个页面上有一些按钮,根据单击的按钮,用数据填充第二个页面,然后重定向到它

使用下面的代码,我们的想法是点击按钮,找出点击了哪个按钮,然后调用函数运行适当的查询并设置所需的变量。我不明白为什么变量没有设置

感谢所有看这个的人

第一页的按钮(index.php):


正如前面几个人指出的,您重定向到另一个文件。在这一点上,所有本地定义的变量都消失了——您不再有权访问它们

查看PHP会话。会话将允许您将这些变量从一个请求转移到另一个请求。但是,只有在运行某种形式的Web服务器时,会话才会起作用

更新:还需要注意的是,正如其他人(再次)指出的,$selected_button=“Option One”仅适用于函数detailBuilder的“范围”。因此,调用detailBuilder()会在函数中创建一个名为$selected_button的变量,然后立即丢弃它

更新2.0:很抱歉更新这么多。下面是设置会话的示例:

更新3.0:稍微更新了代码

第一件事。确保您启动了会话

session_start();
您必须在任何php脚本开始时调用
session\u start()
!这意味着每次执行的第一个文件的顶部应该有session_start()

外部脚本:

$_SESSION["selected_option"] = "Option One";
最初未定义的脚本:

$selected_details  = $_SESSION["selected_option"];
?>
<h4><?=$selected_details?></h4>
$selected\u details=$\u会话[“selected\u选项”];
?>

下面是您阅读的内容:-教程中的第一个链接…您知道当页面更改(页眉位置)时,所有脚本都会终止并开始新的流程,对吗?您需要将其作为get-var、cookie或其他临时存储进行传递。位置:details.php?selected_button=选项一。。。或者某些代码没有意义,因此不清楚您打算做什么。我不知道您是否已使用
include
功能正确地在每个页面上包含文件。但是,在函数内(括号之间)声明的变量不能在该函数外到达。我们说变量在函数范围内。该函数也不返回任何内容。对于初学者,是的。如果您的表单总是将用户抛到details.php,那么您不妨发布到该脚本中。您可能需要更新以包含
session\u start()
-这可能确实是他的第一次牛仔竞技表演。我想知道我应该在兔子洞下走多远,但我至少可以包括这一点。好主意,谢谢。
session_start();
$_SESSION["selected_option"] = "Option One";
$selected_details  = $_SESSION["selected_option"];
?>
<h4><?=$selected_details?></h4>