我有一个创建服务器会话变量的脚本。
我需要使用隐藏的表单字段将其中 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'](或登录)