在php中传递函数和文件之间的变量

时间:2013-01-12 11:44:39

标签: php variables

我有一个名为admin.php的文件,其中有一个名为send的按钮。我想要做的是当我点击它,在用户页面上看到一个链接user.php。我怎么能这样做?

我有一个文件,其中包含所有函数,名为functions.php,其中有一个名为onSubmit($ var)的函数;我使用值$ _POST ['send']初始化变量$ var是admin.php但是当我在文件user.php中调用该函数时,我无法告诉他变量$ var是谁所以我得到'undefined'指数”。

还有其他办法吗?

编辑添加代码 这是admin.php

<input type="button" name="send" value="Submit" /><br/>      

require 'functions.php';  
$posted = $_POST['send'];  
onSubmit($posted);  

这是user.php

require 'functions.php';  
onSubmit($var);  //here it says undefined index var because it doesn't know who the variable is
if($isSent == 1) { 

<a style="visibility:visible;" href="test3.html" id="test3">Test3</a> <br/>  

}  

这是functions.php

global $isSent;  
function onSubmit($var) {  
if(isset($var)) {  
$isSent = 1;  
}  
}

3 个答案:

答案 0 :(得分:2)

基本上你需要使用如下的会话:

if(isset($_SESSION['makeVisible']) && $_SESSION['makeVisible'] == true){
    echo '<button>Button init</button>'; //you could also use html like the comment below.
}
/*
if(condition){?> <!-- this is now html --> <button>Button init</button><?}
*/

然后在管理页面上设置此变量:

if(isset($_POST['submitButton'])){
    $_SESSION['makeVisible'] == true;
}

您还需要一个表单才能使用此方法,但还有其他方法,但我更喜欢这个方法。

<form name="buttonMakerThing" method="POST">
    <input name="submitButton" value="Make button init Visible" type="submit"/>
</form>

如果没有action,表单默认将表单信息“POST”到当前页面。使条件if(isset($_POST))返回true 您需要在网站上的每个php页面的顶部添加$_SESSION声明才能使其生效。它必须在每页的第一行!例如:

01: | <?php session_start();
02: |//rest of script;

请详细了解$_SESSIONS unnsetting / destroying您的会话及其更多用途:) http://php.net/manual/en/reserved.variables.session.php

答案 1 :(得分:1)

如果你有定义函数的functions.php,只需将它包含在admin.php文件中,然后你可以从那里调用函数并传递值。

答案 2 :(得分:1)

对,我已经对缓存进行了一些研究,这就是我想出来的。它可能不是100%正确,但它是一个开始,就像我说我从来没有尝试过自己大声笑

在你的admin.php我把这个功能放在:

if(isset($_POST['send'])){
    if($enabled == true){
        $enabled == false;
    }
    else{
        $enabled == true;
    }
     apc_add('enabled',$enabled);
}

现在'获取'我们的$enabled var:

$enabled = apc_fetch('enabled');

然后检查客户页面中的var:

if($enabled == true){
    echo ' button';
}

现在我唯一没有完全看到的是apc_函数的安全性和客户端使用情况。我相信它适用于服务器的所有客户端,但我不是100%肯定。这里php manual给出了更好的例子。

这是我想到的方法。但我再次确定它的安全性,但我相信你能找到一些东西来保证它的安全。该视频实际上是Youtube API的教程。但他确实将变量保存到缓存文本文件中,这对您来说应该是有用的。