0

当程序直接运行时我收到一条错误消息,但是当我单击搜索按钮时它可以正常工作。

错误消息是Notice: Undefined index no in [...] on line 21,第 21 行是$no1 = $_POST['no'];

我该如何解决?

这是我的完整代码:

<html>
<head>
<title> Searching </title>
</head>
<body>


<form method="POST" action="out.php">
<table border="0" cellpadding="5" cellspacing="0">
<tbody>
    <tr>
        <td>  No </td>
        <td>:</td>
        <td> <input type="text" name="no"> </td>
        <td> <input type="SUBMIT" name="SUBMIT" id="SUBMIT" value="search" > 
        <?php

        include('connect.php');


        $no1 = $_POST['no'];
        $no = strtoupper($no1);
        $query = mysql_query("select no, type, time from park where no = '$no'") or die(mysql_error());
        $data = mysql_fetch_array($query); 

        ?>
        </td>
    </tr>


    <tr>
        <td>Type</td>
        <td>:</td>
        <td><input type="text" name="type" maxlength="30" value= "<?php echo $data['type']; ?>" /></td>
    </tr>
    <tr>
        <td>Time</td>
        <td>:</td>
        <td><input type="text" name="time" maxlength="4" value= "<?php echo $data['time']; ?>" //></td>
    </tr>

    <tr></tr>

</tbody>
</table>
</form>
</body>
</html>

和截图:

在此处输入图像描述

4

3 回答 3

2

首先检查天气$_POST['no']是否已设置empty

if(isset($_POST['no']) && !empty(trim($_POST['no']))){
  $no1 = $_POST['no'];
        $no = strtoupper($no1);
        $query = mysql_query("select no, type, time from park where no = '$no'") or die(mysql_error());
        $data = mysql_fetch_array($query); 

      .
      .
      .


      }
        ?>

警告:您的代码容易受到sql 注入的影响,并且mysql_*函数已被弃用,因此请使用PDOMySQLi

于 2012-12-03T12:15:35.197 回答
1

当你第一次运行$_POST['no']时没有设置,但是当你选择搜索按钮时$_POST['no']被填充。因此,在您的代码中,您应该测试它是否已设置

if (isset($_POST['no'])) {
...
}
于 2012-12-03T12:16:38.850 回答
0

当未设置数组的索引时,将引发错误未定义的索引在您发布的图像中。在这种情况下,错误确实意味着输入字段的值no尚未发布(尚未),因此$_POST['no']未设置变量。

如果您首先检查该变量是否存在,则可以防止发出错误。这可以通过“神奇” isset()功能来完成:

if (isset($_POST['no'])) {
    $no1 = $_POST['no'];
}
else {
    $no1 = ...
}
于 2012-12-03T12:21:54.410 回答