未定义的索引名称1和未定义的索引名称2

时间:2018-04-16 07:44:25

标签: php undefined-index

这些是发生错误的两个文件:

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

错误....变量中没有设置值...... !!!

3 个答案:

答案 0 :(得分:2)

您需要将L = [5,6,4,7,11,14,12,1,3] def segregateEvenOdd(L): left,right = 0,len(L)-1 while left < right: while (L[left]%2==0 and left < right): left += 1 while (L[right]%2 == 1 and left < right): right -= 1 if (left < right): L[left],L[right] = L[right],L[left] left += 1 right = right-1 print segregateEvenOdd(L) output : [12, 6, 4, 14, 11, 7, 5, 1, 3] 添加到method="post"代码。

您还可以检查<form>页面上是否设置了这些值,以确保脚本能够成功运行。

e.g。

php_register.php

答案 1 :(得分:0)

默认情况下,表单方法为 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...!!!";

答案 2 :(得分:0)

您不要在表单中声明POST或GET,但是您使用$ _POST [&#39; name1&#39;]来获取值,即发生错误的位置。