Неопределенный индекс в пустой форме - PullRequest
0 голосов
/ 05 апреля 2020

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

Этот фрагмент кода является частью кода, который генерирует форму полу -динамически из имен столбцов и ошибка исходит от addslashes($row[$val]), когда пустая форма первоначально открыта. Как только форма заполнена данными, ошибка исчезает, но до тех пор каждое поле выдает ошибку в верхней части страницы.

// Build WHERE clause to prevent errors when loading page with no values
$Where = (isset($PostID)) ? "WHERE `ID`='$PostID'" : "";

// Open record for viewing
$sqlView = "SELECT * FROM $TableName $Where";
$row = DBConnect($sqlView, "Select", $siteDB);

// Attempt to eliminate Undefined Index errors
if (!is_array($row)) $row = [];

// Get array of column names from tableaddslashes($row[$val])
$FieldNames = ListColumns($TableName, $siteDB);

// Create variable variables from table column names and populate on post or from existing entry
foreach ($FieldNames as $val) :
        $$val = (isset($_POST[$val])) ?  safeData($_POST[$val]) : addslashes($row[$val]);
endforeach;

$FieldNames, в данном случае содержит:

Array
(
    [0] => ID
    [1] => PageTitle
    [2] => MenuTitle
    [3] => PageText
    [4] => DateUpdated
    [5] => ShowPage
)

Фактические ошибки:

Notice: Undefined index: ID in /var/www/html/form.php on line 88    
Notice: Undefined index: PageTitle in /var/www/html/form.php on line 88
Notice: Undefined index: MenuTitle in /var/www/html/form.php on line 88
Notice: Undefined index: PageText in /var/www/html/form.php on line 88
Notice: Undefined index: DateUpdated in /var/www/html/form.php on line 88
Notice: Undefined index: ShowPage in /var/www/html/form.php on line 88

1 Ответ

1 голос
/ 05 апреля 2020

Ваш $row является пустым массивом:

$$val = (isset($_POST[$val])) ?  safeData($_POST[$val]) 
        : (isset($row[$val]) ? addslashes($row[$val]) : '');
...