如何在隐藏字段中提交 PHP 会话变体形式


how to submit php session varibles into form in hidden fields?

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

我需要使用隐藏的表单字段将其中 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();....但我不清楚如何做到这一点。感谢您的任何建议。

这样更改您的 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'];?>

使用 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) 设置如何,始终启用内联回显短标记。

如果未启用,请设置

short_open_tag=在 php 中打开.ini

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

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

而不是:

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

您可以尝试 http://www.w3schools.com/php/php_sessions.asp 会话,我认为这对您很有帮助。

以及如何启用 PHP 短标签? 用于启用 PHP 短标签。

<?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'](或登录)