未定义的索引:在表单提交的文本字段中保存用户输入的数据

时间:2014-04-30 08:09:59

标签: php forms session post

error_reporting(E_ALL);开启时,我有以下通知示例

Notice:  Undefined index: name in /home/user/public_html/directory/subdirectory/test.php on line 111
Notice:  Undefined index: identity in /home/user/public_html/directory/subdirectory/test.php on line 116
如果我想在用户提交表单后使用session在文本字段中保存用户输入的数据,请在每个表单字段中

我当前代码的示例如下:

GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['identity'], "text")

  <?php  $_SESSION['form'] = $_POST; ?>

  <form action="<?php echo $editFormAction; ?>" method="post" name="userform" id="userform">
  <input name="name" type="text" id="name" value="<?= $_SESSION['form']['name']; ?>" size="25" />
  <input name="identity" type="text" id="identity" value="<?= $_SESSION['form']['identity']; ?>" size="25" />

and so on.............

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

$_SESSION['form']['name'];$_SESSION['form']['identity'];未定义

设置它们以修复警告:

$_SESSION['form']['name'] = '';
$_SESSION['form']['identity'] = '';

答案 1 :(得分:0)

首先身份未定义 如果您要将 indentity 更改为 identity1 (或其他内容),那么它将完美运行 要显示,您必须使用 echo

<form action="<?php echo $editFormAction; ?>" method="post" name="userform" id="userform">
<input name="name" type="text" id="name" value="<?php echo $_SESSION['form']['name']; ?>"    size="25" />
 <input name="identity1" type="text" id="name" value="<?php echo $_SESSION['form']['identity1']; ?>" size="25" />


除此之外,每件事情都很好

答案 2 :(得分:0)

附注:您为输入提供了相同的名称。

<input name="name">
<input name="name">

如果您的用户提交了这个,那么您将无法获得&#34;身份&#34; $ _POST数组中的字段。

然而,注意 -s并不重要。他们会通知你有关可能问题的内容,但是如果你想避免这种通知,你必须在引用之前检查每个数组元素 - 这是很多额外的无所事事。所以这次你可以忘记你的通知,他们只是警告你:

GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['identity'], "text")

...因为POST第一次没有任何字段。这很自然。您应该依靠空值,但空值不是问题。在很多情况下,您将访问不存在的数组元素并且它很精细。

通知就像你母亲警告你那里感冒一样。