0

プログラムを直接実行するとエラー メッセージが表示されますが、検索ボタンをクリックすると正しく機能します。

エラーメッセージはNotice: Undefined index no in [...] on line 2121行目です$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_*関数は推奨されていないため、 または のいずれPDOかを使用してくださいMySQLi

于 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 に答える