所以我想知道是否可以将来自表单的数据存储为会话变量。
到目前为止我所拥有的内容,但我不知道应该为表单操作添加什么。
感谢您的期待!
<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>
答案 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>