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

时间:2010-09-24 22:15:59

标签: php html variables forms

所以我想知道是否可以将来自表单的数据存储为会话变量。

到目前为止我所拥有的内容,但我不知道应该为表单操作添加什么。

感谢您的期待!

<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>

4 个答案:

答案 0 :(得分:33)

要使用会话变量,必须使用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

干得好!

答案 1 :(得分:7)

这很好,并且会起作用。但要使用会话,您必须将session_start();放在php代码的第一行。所以基本上

<?php
session_start();

//rest of stuff

?>

答案 2 :(得分:2)

是的,这是可能的。 kizzie是正确的,session_start();必须先行。

我做的另一个观察是你需要使用以下方法过滤表单数据:

strip_tags($value);

和/或

stripslashes($value);

答案 3 :(得分:1)

您可以使用以下代码解决此问题:

if(!empty($_GET['variable from which you get'])) 
{
$_SESSION['something']= $_GET['variable from which you get'];
}

因此,您从GET表单中获取变量,只有在设置$_SESSION['whatever']时才会将$_GET['variable from which you get']变量存储在$_SESSION['something']变量中,如果它为空cvxopt将存储旧参数< / p>