跨多个网页制作 PHP 全局变量
Making a PHP variable global accross multiple web pages
我是 PHP 的新手,如果这是一个幼稚的问题,我很抱歉,但我想构建一个 php 函数库,该函数库利用跨多个页面的全局变量。我正在使用这 3 个文件进行测试:
functions.php
<?php
function report()
{
echo "Value = ".$GLOBALS["var"];
}
?>
index.php
<?php
$var = "ABC";
require "functions.php";
echo "<h1>index.php</h1>";
report();
?>
<br /><br />
<input type=button onClick="location.href='page2.php'" value="Page2">
page2.php
<?php
require "functions.php";
echo "<h1>page2.php</h1>";
report();
?>
index.php
调用的 report
函数按预期响应 Value = ABC
。但是当单击 Page2
按钮时,page2.php
调用的 report
函数显示 functions.php
中的 $GLOBALS["var"]
引发的 Undefined index
错误。
我想在从 page2.php
引用时使用 $GLOBALS["var"]
。谁能告诉我如何启用它?感谢您的帮助!
首先,这里有一些您应该阅读的关于 $_SESSIONS
变量的链接。
- PHP.net - Sessions
- Whosebug - How php sessions works
我已经更新了你的代码,让你成为一个例子。
functions.php
<?php
function report()
{
if(isset($_SESSION['var']))
echo "Value = ". $_SESSION['var'];
}
?>
index.php
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
$_SESSION['var'] = "ABC";
require('functions.php');
echo "<h1>index.php</h1>";
report();
?>
<br><br>
<input type="button" onClick="location.href='page2.php'"
value="Page2">
</body>
page2.php
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
require ('functions.php');
echo "<h1>page2.php</h1>";
report();
?>
</body>
</html>
建议:声明您的变量。或者在引用它们之前使用 isset() 检查它们是否已声明。
其次你需要定义一个会话
<?php
function report()
{
echo "Value = ". **$_SESSION['var']**;
}
?>
并在您的所有页面中使用 :)
即,对于第 1 页,
<?php
session_start();
$_SESSION['var'] = "XYZ";
require('functions.php');
report();
?>
还有 fot page2,
<?php
session_start();
require ('functions.php');
report();
?>
希望对您有所帮助:)
我是 PHP 的新手,如果这是一个幼稚的问题,我很抱歉,但我想构建一个 php 函数库,该函数库利用跨多个页面的全局变量。我正在使用这 3 个文件进行测试:
functions.php
<?php
function report()
{
echo "Value = ".$GLOBALS["var"];
}
?>
index.php
<?php
$var = "ABC";
require "functions.php";
echo "<h1>index.php</h1>";
report();
?>
<br /><br />
<input type=button onClick="location.href='page2.php'" value="Page2">
page2.php
<?php
require "functions.php";
echo "<h1>page2.php</h1>";
report();
?>
index.php
调用的 report
函数按预期响应 Value = ABC
。但是当单击 Page2
按钮时,page2.php
调用的 report
函数显示 functions.php
中的 $GLOBALS["var"]
引发的 Undefined index
错误。
我想在从 page2.php
引用时使用 $GLOBALS["var"]
。谁能告诉我如何启用它?感谢您的帮助!
首先,这里有一些您应该阅读的关于 $_SESSIONS
变量的链接。
- PHP.net - Sessions
- Whosebug - How php sessions works
我已经更新了你的代码,让你成为一个例子。
functions.php
<?php
function report()
{
if(isset($_SESSION['var']))
echo "Value = ". $_SESSION['var'];
}
?>
index.php
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
$_SESSION['var'] = "ABC";
require('functions.php');
echo "<h1>index.php</h1>";
report();
?>
<br><br>
<input type="button" onClick="location.href='page2.php'"
value="Page2">
</body>
page2.php
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
require ('functions.php');
echo "<h1>page2.php</h1>";
report();
?>
</body>
</html>
建议:声明您的变量。或者在引用它们之前使用 isset() 检查它们是否已声明。
其次你需要定义一个会话
<?php
function report()
{
echo "Value = ". **$_SESSION['var']**;
}
?>
并在您的所有页面中使用 :)
即,对于第 1 页,
<?php
session_start();
$_SESSION['var'] = "XYZ";
require('functions.php');
report();
?>
还有 fot page2,
<?php
session_start();
require ('functions.php');
report();
?>
希望对您有所帮助:)