1

未定義のインデックスエラーのほとんどを修正する方法を学んだ後、1​​日の終わりに、issetで修正できない(または少なくとも試したときは修正できなかった)いくつかの奇妙なエラーが発生しました。

最初のものはこのタイプのエラーです Notice: Undefined index: page in C:\wamp\www\forums\includes\topic.php 行 4 および行 4:

 $page = ($_GET['page'] || $_GET['page'] < 0) ? "1" : $_GET['page'];

最初に isset を追加しようとしましたが、どこに ) を追加するか非常に混乱しました。私はそれを何度も追加しましたが、それでもエラーになるたびに、 isset をまったく使用しないのではないかと考えていますか? 全く分からない。

そして最後の注意: 未定義の変数: 行 65 の C:\wamp\www\forums\index.php および行 65:

 $sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$row['admin']."+1";

これらのエラーを修正する方法がわかれば、ほとんどの未定義のインデックス エラーを修正できるようになると思います。誰かが私を正しい方向に導くことができれば、私は大いに義務付けられます.

4

3 に答える 3

1

isset を確認し、$_GET['page']見つからない場合、または < 1 の場合は 1 として宣言する必要があります

 $page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

2番目のエラーについては、スコープで呼び出している変数にエラーがあるはずadminです。この列を選択しているクエリを確認してください

于 2013-06-09T23:43:34.573 に答える
1

未定義のインデックスは、アクセスしようとしている配列要素が存在しないことを意味します。たとえば、$_GET['page'] エラーの場合、$_GET 配列で未定義のインデックス「ページ」を取得すると、すぐに URL を見て、ページが欠落しているかどうかを確認できるため、非常に簡単に見つけることができます。$row と同じ扱いです。明らかに、$row 配列にキー「admin」を持つ要素はありません。配列キーを知っている必要があるため、未定義のインデックスエラーが発生した場合、ほとんどの場合、何か間違ったことをしています。幸運を!

于 2013-06-09T23:47:09.933 に答える
0
$page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

2 番目の例では、この行の由来を見つけるか、デフォルト値に置き換える必要があります。

$adminRow = isset($row['admin']) ? $row['admin'] : $defaultValue;
$sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$adminRow."+1";
于 2013-06-09T23:49:28.993 に答える