如何使用会话将值从一个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 页面? [复制]