将表单数据存储为会话变量

2022-08-30 20:34:13

因此,我想知道是否有可能将来自表单的数据存储为会话变量。

这是我到目前为止所拥有的,但我不知道该为表单操作放置什么。

感谢您的光临!

<strong>Test Form</strong>
<form action="" method"post">
    <input type="text" name="picturenum"/>
    <input type="submit" name="Submit" value="Submit!" />
</form>

<? 
    if (isset($_POST['Submit'])) { 
        $_session['picturenum'] = $_POST['picturenum'];
    } 
?> 

<strong><? echo $_session['picturenum'];?></strong>

答案 1

要使用会话变量,必须使用函数启动会话,这将允许您以有效的方式将数据存储在全局变量中。session_start$_SESSION

所以你的代码最终看起来像这样:

<strong>Test Form</strong>
<form action="" method"post">
<input type="text" name="picturenum"/>
<input type="submit" name="Submit" value="Submit!" />
</form>

<?php 
 
 // starting the session
 session_start();


 if (isset($_POST['Submit'])) { 
 $_SESSION['picturenum'] = $_POST['picturenum'];
 } 
?> 

<strong><?php echo $_SESSION['picturenum'];?></strong>

为了使其易于使用并避免再次忘记它,您可以创建一个您希望包含在所有代码中的代码,并为您启动会话:session_file.php

session_start.php

 <?php
   session_start();
 ?> 

然后将其包含在您喜欢的任何位置:

<strong>Test Form</strong>
<form action="" method"post">
<input type="text" name="picturenum"/>
<input type="submit" name="Submit" value="Submit!" />
</form>

<?php 
 
 // including the session file
 require_once("session_start.php");


 if (isset($_POST['Submit'])) { 
 $_SESSION['picturenum'] = $_POST['picturenum'];
 } 
?> 

这样,它更便携,将来也更易于维护。

其他备注

  • 如果您使用的是 Apache 版本 2 或更高版本,请小心。

    而不是打开php的标签,使用,否则你的代码将不会被解释<?<?php

  • php 中的变量名称区分大小写,而不是写 $_session,而是用大写字母写 $_SESSION

干得好!


答案 2

这完全没问题,并且会起作用。但是要使用会话,您必须放在php代码的第一行。所以基本上session_start();

<?php
session_start();

//rest of stuff

?>

推荐