在page2.php的page1.php中获取变量的值

时间:2013-12-15 17:37:32

标签: php random

我有一个问题,关于如何从另一个页面上的变量访问变量中的值。

我有一个注册脚本,注册表单在我的主页上。我想为每个输入字段动态创建一个随机名称(更改name属性的值)。输入的当前名称属性仅为firstName,但我希望它类似于firstName_345635345635是随机生成的数字,每次刷新页面时都会更改。

这是我的随机数变量:

$firstNameInputName = 'firstName_' . rand(10000, 50000);

输出变为:firstName_[randomNumer]

问题是,register.php具有获取表单数据的所有post变量。我现在拥有的是:

$firstName = $_POST["firstName"]);

我需要从主页的随机数变量中获取值,而不是给$firstname变量命名firstName,它应该得到随机数生成变量产生的名称主页。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您应该使用会话(或Cookie)var来保存此动态名称。

方法1 。会话(或cookie)

page1.php中

<?php
session_start();
$customCode = rand(5, 15);
$_SESSION['customCode'] = $customCode; ?>

<form action="page2.php" method="post">
  <input type="text" name="firstName_<?php echo $customCode; ?>" />
</form>

使page2.php

<?php
session_start();
$customCode = $_SESSION['customCode']; ?>
$firstName = $_POST['firstName_'.$customCode];

方法2 。您可以在表单中输入隐藏字段,如:

<input type="hidden" name="customCode" value="345635" />

然后在第二页中获取它:

$firstName = $_POST['firstName_'.$_POST['customCode']];

方法3 。您可以迭代$ _POST数组以获取firstName,如:

foreach($_POST in $key => $value) {
 if(strpos($key, "firstName")) {
  $firstName = $value;
 }
}

答案 1 :(得分:2)

解决方案是sessions,会话变量是超全局变量,这意味着你可以在不同的文件中使用它们,只要它们在同一个会话中,使用它们就需要在你将要使用的每个页面上启动会话他们也必须在显示任何输出之前完成会话。

Ex(注册页面):

<?php
session_start();
/**
** HTML AND FORM HERE WHATEVER ELSE YOU NEED TO DISPLAY
**/
$_SESSION['FirstName'] = $firstNameInputName;
?>

Ex(处理页面):

<?php
session_start();
echo $_POST[$_SESSION['FirstName']]; // Output: Whatever was entered inside the field
?>