Неопределенная переменная в php

Я унаследовал некоторый код для пользовательской CMS, который немного отличается от моей лиги, и все время натыкаюсь на те же ошибки, Примечание: неопределенная переменная: носитель в /Applications/MAMP/htdocs/Chapman/Chapman_cms/admin/team-2.php в строке 48. Это должно создавать новых пользователей и редактировать старых пользователей. Однако это не работает, когда я пытаюсь добавить нового пользователя.

Ниже приведен соответствующий код:

$db = new database("mysql",$dbHost,$dbName,$dbUser,$dbPass);
$target = 'add';
if ($_GET['task'] == 'edit') {
$media = $db->get_row(edit_media_item($db, $_GET['team_id']));
$target = 'update';

<p><label for = "copy">Full Name:</label>
    <input type = "text" name = "title" value = "<?=$media['title']?>" />
    <textarea name = "media" id = "media" cols = "30" rows = "5" style = "width: 100%"><?=$media['copy']?></textarea></p>
    <input type = "hidden" name = "process" value = "<?=$target.",copy,4,team-1,".$media['id'].""?>">
    <p><input type = "submit" name = "save" value = "Submit" />
    <input type = "reset" name = "reset" value = "Reset" /></p>
    </form>

Любая помощь приветствуется.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
2 358
6

Ответы 6

Уведомление не имеет значения, но этот код ничего не создает. Это происходит на странице, на которую оно отправлено. Посмотрите на оператор if в первых нескольких строках. Я думаю, вам нужно вызвать его с помощью task = edit в URL-адресе.

Возможно, вам будет трудно помочь, но я бы посмотрел, куда идет этот вызов $ db-> get_row () и что он возвращает (используя var_dump () или что-то в этом роде ...)

В качестве общего совета я бы порекомендовал настроить отладчик в вашей системе, чтобы вы могли отслеживать вызовы. На платформе Windows я использую xdebug с WinCacheGrind для отслеживания вызовов, когда я не уверен в иерархии вызовов. В Linux настройка аналогична (xdebug, kcachegrind ...).

Код, который вы опубликовали, не создает, поэтому проблема не связана с этим фрагментом кода.

Неопределенное уведомление от бита <?=$media['copy']?>. $ media никогда не определялся. Если это не проблема, проигнорируйте это и скажите PHP не выводить уведомления. Это не совсем хорошая практика, но если вам не платят за то, чтобы исправить каждую мелочь, я бы сказал, что это реальная альтернатива.

Чтобы подавить уведомления, добавьте этот код в любое место до появления уведомлений или, что еще лучше, в глобальное включение:

error_reporting(E_ERROR | E_WARNING | E_PARSE);

Для получения дополнительной информации: http://www.php.net/error_reporting

Чтобы правильно удалить уведомление, нужно сделать это с помощью кода

<?php if (isset($media['copy'])){ echo $media['copy']; } ?>

вы также можете использовать символ at следующим образом:

if ($_GET['undefined_key']) {
    // blah...
}

if (@$_GET['undefined_key']) {
    // blah...
}

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

Классный совет, я не понимал, что вы можете использовать это для переменных ... только думал, что это для вызовов функций.

Matt Huggins 15.01.2010 11:20

Это сообщение об ошибке не из этого кода.

$media назначается в строке 6 предоставленного вами кода ($media = $db->get_row(..)). Я предполагаю, что вы либо удалили соответствующий код (это строка 48, плюс / минус), либо это неправильный файл (это из /Applications/MAMP/htdocs/Chapman/Chapman_cms/admin/team-2.php?).

Другие вопросы по теме