如何使用会话将值从一个php页面传递到另一个页面

Posted

技术标签:

【中文标题】如何使用会话将值从一个php页面传递到另一个页面【英文标题】:how to pass value from one php page to another using session 【发布时间】:2012-09-17 20:48:06 【问题描述】:

我可以将值从一个页面传递到另一个页面,但我需要像这样传递值,

第 1 页:

Page4.php

Page3.php

我需要将Page1.php中的一个文本字段中的值传递给Page2.php中的一个文本字段,由于表单没有直接重定向到page2,我无法传递值,我尝试了会话,表单发布方法和其他一些方法,但我还没有成功。

如果您能帮助我提供代码或一些建议,我将非常高兴。

谢谢!

编辑…………

我找到了答案,感谢您的帮助,这实际上是我的一个粗心错误,我使用了 $_post 而不是 $_session。

它现在正在工作。

感谢您的帮助。

【问题讨论】:

向我们展示您的代码将是一个好的开始。 如果您不知道事件的顺序,可能会有些混乱。页面的 PHP 代码被执行,然后页面加载。如果您使用表单加载新页面,表单的输入标签将在下一页的 PHP 代码中的 $_REQUEST 下可用。从那里,您可以添加到 $_SESSION 或简单地分配给新页面上的表单值。 【参考方案1】:

使用这样的东西:

page1.php

<?php
session_start();
$_SESSION['myValue']=3; // You can set the value however you like.
?>

任何其他 PHP 页面:

<?php
session_start();
echo $_SESSION['myValue'];
?>

但要记住一些注意事项:您需要在任何输出、html、回显(甚至是空格)之前调用 session_start()

您可以在会话中不断更改该值 - 但它只有可以在第一页之后使用 - 这意味着如果您在第 1 页中设置它,您将无法使用直到您到达另一个页面或刷新页面。

变量本身的设置可以通过多种方式之一完成:

$_SESSION['myValue']=1;
$_SESSION['myValue']=$var;
$_SESSION['myValue']=$_GET['YourFormElement'];

如果您想在出现潜在错误之前检查变量是否已设置,请使用以下内容:

if(!empty($_SESSION['myValue'])

    echo $_SESSION['myValue'];

else

    echo "Session not set yet.";

【讨论】:

【参考方案2】:

仅使用 POST 的解决方案 - 没有 $_SESSION

page1.php

<form action="page2.php" method="post">
    <textarea name="textarea1" id="textarea1"></textarea><br />
    <input type="submit" value="submit" />
</form>

page2.php

<?php
    // this page outputs the contents of the textarea if posted
    $textarea1 = ""; // set var to avoid errors
    if(isset($_POST['textarea1']))
        $textarea1 = $_POST['textarea1']
    
?>
<textarea><?php echo $textarea1;?></textarea>

使用 $_SESSION 和 POST 的解决方案

page1.php

<?php

    session_start(); // needs to be before anything else on page to use $_SESSION
    $textarea1 = "";
    if(isset($_POST['textarea1']))
        $_SESSION['textarea1'] = $_POST['textarea1'];
    

?>


<form action="page1.php" method="post">
    <textarea name="textarea1" id="textarea1"></textarea><br />
    <input type="submit" value="submit" />
</form>
<br /><br />
<a href="page2.php">Go to page2</a>

page2.php

<?php
    session_start(); // needs to be before anything else on page to use $_SESSION
    // this page outputs the textarea1 from the session IF it exists
    $textarea1 = ""; // set var to avoid errors
    if(isset($_SESSION['textarea1']))
        $textarea1 = $_SESSION['textarea1']
    
?>
<textarea><?php echo $textarea1;?></textarea>

警告!!! - 这不包含验证!!!

【讨论】:

最好使用隐藏字段。

以上是关于如何使用会话将值从一个php页面传递到另一个页面的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 使用$ _SESSION [duplicate]将值从一个页面传递到另一个页面的数组

通过使用 java 脚本,我如何将值从一个 html 页面传递到另一个 html 页面? [复制]

如何使用 JavaScript 将值从一个 HTML 页面传递到另一个页面?

如何在同一页面内将值从 Js 传递到 PHP [重复]

JSP 将值从表传递到表单

如何将值从一个 html 页面传递到 PHONEGAP 中的另一个 html 页面?