код +раздел (+/-)
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 на Джон
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 само добавлялось!
# EMINEM (26.11.2016 / 10:30)
ДоХтор, было бы не плохо если бы id само добавлялось!
Авто инкримент полю в БД поставь.
И почему оно тогда в оригинальном скрипте вводится руками?
# EMINEM (26.11.2016 / 10:30)
ДоХтор, было бы не плохо если бы id само добавлялось!
Так поле id обычно само и добавляется. Но у тебя в коде реализовано было иначе, поэтому я просто дописал не достающего кода.