Сделать запрос и создать раздел

267
.
код +раздел (+/-)
switch ($act) {
case 'add':
  echo '<div class="phdr"><b>Добавляем раздел</b></div>';
  
  if (isset ($_POST['submit'])) {
  
  $name = isset($_POST['name']) ? functions::checkin(mb_substr(trim($_POST['name']), 0, 300)) : '';
  
  if ($handle->processed) {
mysql_query('INSERT INTO `pesy_razd` SET
`name` = "' . mysql_real_escape_string($name) . '",
`type` = "' . mysql_real_escape_string($trailer) . '",
`id` = "' . mysql_real_escape_string($id) . '",
`description` = "' . mysql_real_escape_string($description) . '";');
                         } else {
 echo functions::display_error($handle->error);
 }
 
header ('location: index.php');
} else {
echo functions::display_error($handle->error);
}
$handle->clean();
  
  header("location: index.php");
} else {
  echo 'Название <small>(300 симв.)</small>:<br/><input name="name" type="text" /><br/>';
  echo '<input type="submit" name = "submit" value="Добавить" /></form></div>';
                   }
   
   echo '<div class="menu"><a href="index.php">Назад</a></div>';
  break;

Не нажимается кнопка Добавить и вообще ничего не работает, нужна помощь)
Пытаюсь переделать скрипт из DCMS 6.6.4 на Джон
.
(\/)____o_O____(\/)

EMINEM, думаю $handle лишний

.
человек И пароход

нет начала form странные пробелы нафик $handle логика вообще супер (если нет нажатия показываем ошибку гг)

.

EMINEM, что мог, то подправил. Остальное корректируй под свой скрипт.

пример (+/-)
echo '<div class="phdr"><b>Добавляем раздел</b></div>';

if (isset($_POST['submit'])) {
    $name = !empty($_POST['name']) ? 
        functions::checkin(mb_substr(trim($_POST['name']), 0, 300)):'';
    $type = !empty($_POST['type']) ? 
        functions::checkin(mb_substr(trim($_POST['type']), 0, 300)):'';  
    $desc = !empty($_POST['desc']) ? 
        functions::checkin(mb_substr(trim($_POST['desc']), 0, 300)):'';
    $id   = !empty($_POST['id']) ? abs(intval($_POST['id'])) : 0;
    
    // Объявить массив с ошибками
    $errors = [];
    
    // Проверить корректность принятых данных
    !empty($name) ?: $errors[] = 'Введите название!';
    !empty($type) ?: $errors[] = 'Укажите тип!';
    !empty($desc) ?: $errors[] = 'Введите описание!';
    !empty($id)   ?: $errors[] = 'Введите идентификатор!';
    
    // Если ошибок нет, записать в БД
    if (!$errors) {
        mysql_query('
            INSERT INTO `pesy_razd` SET
                `id` = "'. $id .'",
                `name` = "'. mysql_real_escape_string($name) .'",
                `type` = "'. mysql_real_escape_string($type) .'",
                `description` = "'. mysql_real_escape_string($desc) .'"
        ');
        // и выполнить редирект на index.php
        header('Refresh:2; url=index.php');
        echo '<div class="gmenu"><b>Данные успешно сохранены!</b>'.
            '<br />... перенаправление ...</div>';
    } else {
        // Иначе, отобразить ошибки
        echo functions::display_error($errors, '<a href="index.php">Назад</a>');
    }
} else {
    echo '
        <form action="" method="post">
            Название <small>(300 симв.)</small>:
            <br /><input name="name" type="text" />
            <br />Тип <small>(300 симв.)</small>:
            <br /><input name="type" type="text" />
            <br />Описание <small>(300 симв.)</small>:
            <br /><input name="desc" type="text" />
            <br />Идентификатор :
            <br /><input name="id" type="text" />
            <br /><input type="submit" name="submit" value="Добавить" />
        </form>
    ';
}
.

ДоХтор, было бы не плохо если бы id само добавлялось!

.
Ей 25
# EMINEM (26.11.2016 / 10:30)
ДоХтор, было бы не плохо если бы id само добавлялось!
Авто инкримент полю в БД поставь.
И почему оно тогда в оригинальном скрипте вводится руками?
.
# EMINEM (26.11.2016 / 10:30)
ДоХтор, было бы не плохо если бы id само добавлялось!
Так поле id обычно само и добавляется. Но у тебя в коде реализовано было иначе, поэтому я просто дописал не достающего кода.
.

EMINEM

Без ID (+/-)
$view = '<div class="phdr"><b>Добавляем раздел</b></div>';

if (isset($_POST['submit'])) {
    // Объявить массив с ошибками
    $errors = [
        'name' => 'Введите название!',
        'type' => 'Укажите тип!',
        'desc' => 'Введите описание!',
    ];
    // Отфильтровать данные, и ограничить к-во символов
    $data = array_map(function ($i) {
        return mb_substr(functions::checkin($i), 0, 300);
    }, $_POST);
    // Проверить заполненность полей
    $keys = array_filter($data, function ($i) use (&$data) {
        return (empty($i) ? key($data) : false);
    });
    // Получить текст сообщений об ошибках
    array_map(function ($i) use (&$errMsg, &$errors, &$keys) {
        $errMsg[] = $errors[key($keys)];
        next($keys);
    }, $keys);
    
    // Если ошибок нет, записать в БД
    if (empty($errMsg)) {
        foreach ($data as $varName => $value) {
            $$varName = $value;
        }
                
        mysql_query("
            INSERT INTO `pesy_razd` SET
                `name` = '". mysql_real_escape_string($name) ."',
                `type` = '". mysql_real_escape_string($type) ."',
                `description` = '". mysql_real_escape_string($desc) ."'
        ");
        // и выполнить редирект на index.php
        header('Refresh:2; url=index.php');
        $view .= '<div class="gmenu"><b>Данные успешно сохранены!</b>'.
            '<br /> ... перенаправление ...</div>';
    } else {
        // Иначе, отобразить ошибки
        $view .= functions::display_error($errMsg, 
            '<a href="index.php">Назад</a>');
    }
    
} else {
    $view .= '
        <form action="" method="post">
            Название <small>(300 симв.)</small>:
            <br /><input name="name" type="text" />
            <br />Тип <small>(300 симв.)</small>:
            <br /><input name="type" type="text" />
            <br />Описание <small>(300 симв.)</small>:
            <br /><input name="desc" type="text" />
            <br /><input type="submit" name="submit" value="Добавить" />
        </form>
    ';
}

echo $view;
Всего: 8