如何在隐藏字段中将php会话变量提交到表单中?

时间:2014-11-20 20:23:27

标签: php html forms session php-shorttags

我有一个创建服务器会话变量的脚本。

我需要使用隐藏的表单字段将这些变量中的2个插入到一个简单的表单中(在php页面上)。

<?php
session_start();
?><pre><?php
print_r($_SESSION);
?> 

我用上面的代码创建了一个简单的php页面。我可以在页面上轻松查看会话变量,您可以在我从页面复制的这部分代码中看到:

[login] => andrew8855
[pass] => $P$BIsPUTQ/e4mJSlaDsRLA48mB20xxIC1
[email] => andrew@mysiteaddress.com
[name_f] => Andrew
[name_l] => 
[street] => 
[street2] => 
[city] =>

在自定义表单中,我需要将上面的变量/打印到表单中,如下所示:

<input type="hidden" name="login_email" id="login_email" value="[email]" />
<input type="hidden" name="login_user" id="login_user" value="[login]" />

因此,在提交表单时,会话中存在的变量将在隐藏表单字段中提交。

在搜索了几个小时之后,我发现我可能能够以某种方式使用session_start(); ....但我不清楚如何实现这一点。谢谢你的任何建议。

3 个答案:

答案 0 :(得分:2)

更改您的html模板:

<input type="hidden" name="login_email" id="login_email" value="<?php echo $_SESSION['email'];?>" />
<input type="hidden" name="login_user" id="login_user" value="<?php echo $_SESSION['login'];?>" />

请注意,如果您启用了short_open_tags,则可以执行以下操作:

<?=$_SESSION['email']?>

而不是:

<?php echo $_SESSION['email'];?>

答案 1 :(得分:1)

使用session_start()函数启动会话。

会话变量使用PHP全局变量设置:$ _SESSION。

如果您没有使用任何自动会话处理框架...如果您使用自己的脚本,则必须在使用之前启动会话。您可以尝试

<?php
// Start the session<br/>
session_start();
?>

设置脚本的开头。之后您可以使用会话变量。

更改您的html模板:

<input type="hidden" name="login_email" id="login_email" value="<?php echo $_SESSION['email'];?>" />
<input type="hidden" name="login_user" id="login_user" value="<?php echo $_SESSION['login'];?>" />

自PHP 5.4起,无论short_open_tag(php.ini)设置如何,都始终启用内联echo short标记。

如果未启用,请设置

short_open_tag =在php.ini中打开

之后重新启动Apache服务器,然后可以使用

<?=$_SESSION['email']?>

而不是:

<?php echo $_SESSION['email'];?>

您可以尝试使用http://www.w3schools.com/php/php_sessions.asp进行会话。我认为它对您有所帮助。

How to enable PHP short tags?用于启用php短标记。

答案 2 :(得分:0)

<?php
 // I suppose (and I can tell by the code you wrote that it is so) that you already have some values 
 // in the $_SESSION array

 session_start();

 echo "<input type=\"hidden\" name=\"login_email\" id=\"login_email\" value=\"" . $_SESSION['email'] . "\"";

?>

也许“”和反斜杠有问题,但想法是你必须把它作为值$ _SESSION ['mail'](或登录)