为什么隐藏的输入字段值不能为空
Why hidden input field values can't be empty
我正在使用 PHP 表单发送用户注册数据,然后使用 PHP 表单处理。我需要注册一些用户类型,例如“普通用户”、“管理员用户”、“编辑启用用户”等。每种用户的详细注册请求都不同。但我希望使用相同的 formDataManagement.php 文件。当我单击“提交”按钮时,显示一条错误消息。
Undefined array Key.
表单数据部分
<input type="hidden" id="companyname" name="companyname" value="">
<input type="hidden" id="regno" name="regno" value="">
<input type="hidden" id="farmaddress" name="farmaddress" value="">
<input type="hidden" id="role" name="role" value="admin">
<input type="hidden" id="designation" name="designation" value="manager">
formDataManagement.php
//if user signup button
if(isset($_POST['signup'])){
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$conpassword = mysqli_real_escape_string($con, $_POST['conpassword']);
$compName = mysqli_real_escape_string($con, $_POST['companyname']);
$role = mysqli_real_escape_string($con, $_POST['role']);
$regno = mysqli_real_escape_string($con, $_POST['regno']);
$designation = mysqli_real_escape_string($con, $_POST['designation']);
$farm_address = mysqli_real_escape_string($con, $_POST['farmaddress']);
$resi_address = mysqli_real_escape_string($con, $_POST['resaddress']);
}
但是处理完后,出现如下错误
Warning: Undefined array key "companyname" in
C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 15
Warning: Undefined array key "regno" in
C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 17
Warning: Undefined array key "farmaddress" in
C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 22
我不能将空值作为隐藏输入值发送吗?
请建议解决此问题。
我无法仅根据您当前给出的代码确定确切的问题,但问题可能是由以下任何一种引起的:
- 您没有使用 POST method 发送表单中的数据。
- 您将三个输入字段放在表单之外。
- 您的提交按钮无法正常工作,尤其是当您在提交表单之前有一个 pre-submit JS 函数时。
- 还有更多(请包含更多代码)
您肯定可以发送空值作为隐藏输入值。虽然内容会为空,但绝不会发出警告
来自 MDN(input="hidden"
的描述):
A control that is not displayed but whose value is submitted to the
server.
像 <input hidden id="companyname" name="companyname" value=""/>
一样使用 hidden
而没有 type="hidden"
。您可以设置类型 type="text"
.
也尝试关闭元素:<input hidden type="text" id="companyname" name="companyname" value=""/>
或 </input>
.
所以这是完美的输入元素:<input hidden type="text" id="companyname" name="companyname" value=""/>
我正在使用 PHP 表单发送用户注册数据,然后使用 PHP 表单处理。我需要注册一些用户类型,例如“普通用户”、“管理员用户”、“编辑启用用户”等。每种用户的详细注册请求都不同。但我希望使用相同的 formDataManagement.php 文件。当我单击“提交”按钮时,显示一条错误消息。
Undefined array Key.
表单数据部分
<input type="hidden" id="companyname" name="companyname" value="">
<input type="hidden" id="regno" name="regno" value="">
<input type="hidden" id="farmaddress" name="farmaddress" value="">
<input type="hidden" id="role" name="role" value="admin">
<input type="hidden" id="designation" name="designation" value="manager">
formDataManagement.php
//if user signup button
if(isset($_POST['signup'])){
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$conpassword = mysqli_real_escape_string($con, $_POST['conpassword']);
$compName = mysqli_real_escape_string($con, $_POST['companyname']);
$role = mysqli_real_escape_string($con, $_POST['role']);
$regno = mysqli_real_escape_string($con, $_POST['regno']);
$designation = mysqli_real_escape_string($con, $_POST['designation']);
$farm_address = mysqli_real_escape_string($con, $_POST['farmaddress']);
$resi_address = mysqli_real_escape_string($con, $_POST['resaddress']);
}
但是处理完后,出现如下错误
Warning: Undefined array key "companyname" in C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 15
Warning: Undefined array key "regno" in C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 17
Warning: Undefined array key "farmaddress" in C:\xampp\htdocs\test\admin\register\formDataManagement.php on line 22
我不能将空值作为隐藏输入值发送吗? 请建议解决此问题。
我无法仅根据您当前给出的代码确定确切的问题,但问题可能是由以下任何一种引起的:
- 您没有使用 POST method 发送表单中的数据。
- 您将三个输入字段放在表单之外。
- 您的提交按钮无法正常工作,尤其是当您在提交表单之前有一个 pre-submit JS 函数时。
- 还有更多(请包含更多代码)
您肯定可以发送空值作为隐藏输入值。虽然内容会为空,但绝不会发出警告
来自 MDN(input="hidden"
的描述):
A control that is not displayed but whose value is submitted to the server.
像
<input hidden id="companyname" name="companyname" value=""/>
一样使用hidden
而没有type="hidden"
。您可以设置类型type="text"
.也尝试关闭元素:
<input hidden type="text" id="companyname" name="companyname" value=""/>
或</input>
.
所以这是完美的输入元素:<input hidden type="text" id="companyname" name="companyname" value=""/>