未定义的索引名称 1 和未定义的索引名称 2
undefined index name1 and Undefined index name2
这是发生错误的两个文件:
html_form.html
<html>
<body>
<center>
<h1>Admission Form</h1>
<br>
<form action="php_register.php" name="registration">
Firstname: <input type="text" name="name1" placeholder="Enter Firstname"/>
<br>
Lastname: <input type="text" name="name2" placeholder="Enter Lastname"/><br>
<input type="submit" value="submit">
</form>
</center>
</body>
</html>
php_register.php
<?php
$fname=$_POST['name1'];
$lname=$_POST['name2'];
$conn=mysqli_connect("localhost","root","","test");
if (isset($fname) && isset($lname))
{
mysqli_query($conn, "insert into test_table(firstname,lastname)
values ('$fname','$lname')");
}
else
echo "<br> Errror....Values are not set in variables...!!!";
?>
( !) 注意:未定义索引:第 2 行 C:\wamp2\www\PHP_project\php_register.php 中的 name1
调用堆栈
时间记忆功能位置
1 0.0022 131712 {main}( ) ...\php_register.php:0
( !) 注意:第 3 行 C:\wamp2\www\PHP_project\php_register.php 中的未定义索引:name2
调用堆栈
时间记忆功能位置
1 0.0022 131712 {main}( ) ...\php_register.php:0
错误....未在变量中设置值...!!!
您需要将 method="post"
添加到您的 <form>
标签。
您还可以检查之前是否在 php_register.php
页面上设置了这些值,以确保脚本 运行 成功。
例如
if (empty($_POST['name1']) || empty($POST['name2']) {
// some kind of error setting and redirecting back maybe
}
默认情况下,表单方法是 GET 但您试图通过 $_POST
获取值。
您没有定义表单 POST 方法,那么您可以通过 $_GET
或 $_REQUEST
获取值:
$_GET['name1'];
$_GET['name2'];
或
$_REQUEST['name1'];
$_REQUEST['name2'];
如果你想使用$_POST
那么你应该定义形式method="post"
如果你对表单方法一无所知,使用$_REQUEST
是更好的方法。通过 $_REQUEST
你可以获得两种类型的值。
示例:
$fname=isset($_POST['name1'])?$_POST['name1']:'';
$lname=isset($_POST['name2'])?$_POST['name2']:'';
$conn=mysqli_connect("localhost","root","","test");
if (!empty($fname) && !empty($lname))
{
mysqli_query($conn, "insert into test_table(firstname,lastname)
values ('$fname','$lname')");
}
else
echo "<br> Errror....Values are not set in variables...!!!";
你没有在表单中声明POST或GET,但是你使用$_POST['name1']来获取值,这就是错误发生的地方。
这是发生错误的两个文件:
html_form.html
<html>
<body>
<center>
<h1>Admission Form</h1>
<br>
<form action="php_register.php" name="registration">
Firstname: <input type="text" name="name1" placeholder="Enter Firstname"/>
<br>
Lastname: <input type="text" name="name2" placeholder="Enter Lastname"/><br>
<input type="submit" value="submit">
</form>
</center>
</body>
</html>
php_register.php
<?php
$fname=$_POST['name1'];
$lname=$_POST['name2'];
$conn=mysqli_connect("localhost","root","","test");
if (isset($fname) && isset($lname))
{
mysqli_query($conn, "insert into test_table(firstname,lastname)
values ('$fname','$lname')");
}
else
echo "<br> Errror....Values are not set in variables...!!!";
?>
( !) 注意:未定义索引:第 2 行 C:\wamp2\www\PHP_project\php_register.php 中的 name1 调用堆栈
时间记忆功能位置
1 0.0022 131712 {main}( ) ...\php_register.php:0
( !) 注意:第 3 行 C:\wamp2\www\PHP_project\php_register.php 中的未定义索引:name2 调用堆栈
时间记忆功能位置
1 0.0022 131712 {main}( ) ...\php_register.php:0
错误....未在变量中设置值...!!!
您需要将 method="post"
添加到您的 <form>
标签。
您还可以检查之前是否在 php_register.php
页面上设置了这些值,以确保脚本 运行 成功。
例如
if (empty($_POST['name1']) || empty($POST['name2']) {
// some kind of error setting and redirecting back maybe
}
默认情况下,表单方法是 GET 但您试图通过 $_POST
获取值。
您没有定义表单 POST 方法,那么您可以通过 $_GET
或 $_REQUEST
获取值:
$_GET['name1'];
$_GET['name2'];
或
$_REQUEST['name1'];
$_REQUEST['name2'];
如果你想使用$_POST
那么你应该定义形式method="post"
如果你对表单方法一无所知,使用$_REQUEST
是更好的方法。通过 $_REQUEST
你可以获得两种类型的值。
示例:
$fname=isset($_POST['name1'])?$_POST['name1']:'';
$lname=isset($_POST['name2'])?$_POST['name2']:'';
$conn=mysqli_connect("localhost","root","","test");
if (!empty($fname) && !empty($lname))
{
mysqli_query($conn, "insert into test_table(firstname,lastname)
values ('$fname','$lname')");
}
else
echo "<br> Errror....Values are not set in variables...!!!";
你没有在表单中声明POST或GET,但是你使用$_POST['name1']来获取值,这就是错误发生的地方。