【发布时间】:2011-08-06 10:05:00
【问题描述】:
有没有办法在 php 脚本之间传递值和变量?
正式地,我尝试编写一个登录页面,当用户首先输入错误的输入时,另一个脚本将检查输入,如果输入错误,站点将返回到最后一个脚本页面并显示类似“输入错误”的警告。为此,我需要从我猜想的脚本中传递值。
问候... :P
【问题讨论】:
标签: php parameter-passing arguments
有没有办法在 php 脚本之间传递值和变量?
正式地,我尝试编写一个登录页面,当用户首先输入错误的输入时,另一个脚本将检查输入,如果输入错误,站点将返回到最后一个脚本页面并显示类似“输入错误”的警告。为此,我需要从我猜想的脚本中传递值。
问候... :P
【问题讨论】:
标签: php parameter-passing arguments
你不能include(或include_once或require)另一个脚本吗?
【讨论】:
include 另一个脚本时,它的代码会“粘贴”在包含的脚本中,因此它会得到与您直接在第一个脚本中编写代码相同的内容。
include 找不到指定的文件会引发警告,require 会抛出致命异常。
您应该查看session variables。这涉及在服务器上存储与特定参考号(“会话 ID”)相关联的数据,然后浏览器在每次请求时发送该参考号(通常作为 cookie)。服务器可以看到同一个用户正在访问该页面,并设置$_SESSION 超全局来反映这一点。
例如:
a.php
session_start(); // must be called before data is sent
$_SESSION['error_msg'] = 'Invalid input';
// redirect to b.php
b.php
<?php
session_start();
echo $_SESSION['error_msg']; // outputs "Invalid input"
【讨论】:
快速的方法是使用全局变量或会话变量。
global $variable = 'something';
“更好”的做法是包含脚本并通过参数传递变量,例如
// script1.php contains function 'add3'
function add3( $value ) {
return $value + 3;
}
// script2.php
include "script1.php";
echo 'Value is '.add3(2); // Value is 5
【讨论】:
global $variable; $variable = 'something';所以声明和赋值不在一行。
通过 GET 传递信息:
header('Location: otherScript.php?var1=val1&var2=val2');
会话:
// first script
session_start();
$_SESSION['varName'] = 'varVal';
header('Location: second_script.php'); // go to other
// second script
session_start();
$myVar = $_SESSION['varName'];
发帖:看看this。
【讨论】:
如果你真的需要,我会说你也可以在缓存中存储一个变量。
【讨论】:
我使用extract() 方法在PHP 脚本 之间传递变量。它看起来像下面的例子:
1. 文件 index.php
<?php
$data = [
'title'=>'hello',
'content'=>'hello world'
];
extract($data);
require 'content.php';
2. 文件 content.php :
<?php
echo $title;
echo $content;
【讨论】: