2013-06-09 2 views
1

Ну, после изучения того, как исправить большинство моих неопределенных ошибок индекса, в конце дня у меня были странные ошибки пары, которые я не мог исправить с помощью isset (или, по крайней мере, когда я пытался).Неопределенные ошибки в индексе/строке

Первый такой тип ошибки Примечание: Undefined индекс: страница в каталоге C: \ WAMP \ WWW \ форумах \ включает \ topic.php в строке 4 А в строке 4:

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

Я попытался добавить isset в начале и был очень смущен тем, где добавить). Я добавил все это, и каждый раз, когда это было все еще ошибкой, я теперь думаю, может быть, я не предполагаю использовать isset вообще? Нет подсказки.

И теперь за один последний Notice: Undefined переменной: строки в C: \ WAMP \ WWW \ форум \ index.php в строке 65 А на линии 65:

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

Я чувствую, что после того, как Я знаю, как исправить эти ошибки, я смогу исправить самые неопределенные индексы. Если кто-то может привести меня в правильное направление, я был бы очень обязан.

ответ

1

Вы должны проверить IsSet из $_GET['page'] и если не найдены или < 1 объявит его как 1

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

О вашей второй ошибке, должна быть ошибкой в ​​переменной ваших вызывают в рамках admin. Проверьте свой запрос, который выбирает этот столбец

+0

Ну вторая ошибка странно, на форуме по-прежнему работает с вторая ошибка, но я действительно просто не хочу видеть ошибку. – Achilles

+0

@ Ахиллес другой был решен? – Fabio

+0

Плохо, я проверю вас как правильный ответ. В принципе, второй код все еще работает, но все же дает мне ошибку. не слишком уверен в этом. – Achilles

1

Неопределенный индекс означает, что элемент массива, к которому вы пытаетесь получить доступ, не существует. Например, с вашей ошибкой $ _GET ['page'] это будет очень легко заметить, потому что, если вы получите неопределенную страницу индекса в вашем массиве $ _GET, вы можете мгновенно просмотреть URL-адрес и посмотреть, отсутствует ли страница. Такая же сделка с $ row, очевидно, что нет элемента с ключом «admin» в вашем массиве $ row. В большинстве случаев вы делаете что-то неправильно, если получаете неопределенные индексные ошибки, потому что вам нужно знать ключи массива. Удачи!

+0

Нет, ошибка заключается в том, что '$ row' не существует, а не то, что ключ« admin »в нем не установлен. – sevenseacat

+0

Плохо, ты прав, я неправильно понял –

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

Во втором примере, вы должны найти, где эта строка приходит, или вы должны заменить его значением некоторой по умолчанию:

$adminRow = isset($row['admin']) ? $row['admin'] : $defaultValue; 
$sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$adminRow."+1"; 
Смежные вопросы