| не могу сделать добавление статей через админку |
новичок

Регистрация: 25.11.2009
Сообщения: 8
Откуда: киев
|
Вот еще один вопрос, который заставляет меня нервничать уже несколько дней.
пытаюсь добавить через админку статьи себе на сайт, пишет статья добавлена, но она не появляется в таблице!
пожалуйста, посмотрите, когда у вас будет время, может быть вы увидите ошибку
код new_lesson.php
Код: <? include ("blocks/bd.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Страница добавления новой статьи</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header5.php"); ?>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd3.php"); ?>
<td valign="top">
<h3 align="center">Добавление новой статьи</h3>
<div style="margin-left:65px;" >
<form name="form1" method="post" action="add_lesson.php">
<p>
<label>Введите название статьи<br>
<input type="text" name="title" id="title">
</label>
</p>
<p>
<label>Введите meta_d статьи<br>
<input type="text" name="meta_d" id="meta_d">
</label>
</p>
<p>
<label>Введите meta_k для статьи<br>
<input type="text" name="meta_k" id="meta_k">
</label>
</p>
<p>
<label>Введите дату добавления статьи<br>
<input name="date" type="text" id="date" value="<?php $date = date("Y-m-d"); echo $date; ?>">
</label>
</p>
<p>
<label>Ведите краткое описание статьи с тэгами абзацев<br>
<textarea name="description" id="description" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите полный текст статьи с тэгами<br>
<textarea name="text" id="text" cols="40" rows="20"></textarea>
</label>
</p>
<p>
<label>Введите автора статьи<br>
<input type="text" name="author" id="author">
</label>
</p>
<p>
<label>Ведите tegi статьи с тэгами абзацев<br>
<textarea name="tegi" id="tegi" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите kluch статьи<br>
<input type="text" name="kluch" id="kluch">
</label>
</p>
<p>
<label>Введите mini_img статьи<br>
<input type="text" name="mini_img" id="mini_img">
</label>
</p>
<p>
<label>Введите alt картинки статьи<br>
<input type="text" name="alt" id="alt">
</label>
</p>
<p>
<label>Введите titleimg картинки статьи<br>
<input type="text" name="titleimg" id="titleimg">
</label>
</p>
<p>
<label>Выберите категорию заметки<br>
<select name="cat">
<? $result = mysql_query("SELECT title,id FROM categories",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@t.com.ua <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
} ?>
</select>
</label>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Занести статью в базу">
</label>
</p>
</form>
</div> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
код add_lesson.php
Код: <?php include ("blocks/bd.php");
if (isset($_POST['title']))
{
$title = $_POST['title'];
if ($title == '')
{
unset($title);
}
}
/* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную. */
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
if (isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author);}}
if (isset($_POST['tegi'])) {$tegi = $_POST['tegi']; if ($tegi == '') {unset($tegi);}}
if (isset($_POST['kluch'])) {$kluch = $_POST['kluch']; if ($kluch == '') {unset($kluch);}}
if (isset($_POST['mini_img'])) {$mini_img = $_POST['mini_img']; if ($mini_img == '') {unset($mini_img);}}
if (isset($_POST['alt'])) {$alt = $_POST['alt']; if ($alt == '') {unset($alt);}}
if (isset($_POST['titleimg'])) {$titleimg = $_POST['titleimg']; if ($titleimg == '') {unset($titleimg);}}
if (isset($_POST['cat'])) {$cat = $_POST['cat']; if ($cat == '') {unset($cat);}}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Обработчик</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("blocks/header5.php"); ?>
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--Подключаем левый блок сайта-->
<? include ("blocks/lefttd3.php"); ?>
<td valign="top">
<?php
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author) && isset($tegi) && isset($kluch) && isset($mini_img) && isset($alt) && isset($titleimg) && isset($cat))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `articles` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`,`tegi`,`kluch`,`mini_img`,`alt`,`titleimg`,`cat`) VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author','$tegi','$kluch','$mini_img','$alt','$titleimg','$cat')") or die('ошибка в запросе к базе данных: ' . mysql_error());
if ($result == 'true') {echo "<p>Ваша статья успешно добавлена!</p>";}
else {echo "<p>Ваша статья не добавлена!</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому статья в базу не может быть добавлена.</p>";
}?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Последний раз редактировалось: Late-maestro (Чт Фев 04, 2010 6:45 pm), всего редактировалось 2 раз(а)
|

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО
|
Скорее всего при добавлении статьи происходит ошибка в запросе. Причины (на вскидку) модут быть следующие:
Слишком большая заметка
В статье присутствуют символы " или ', что приводит к ошибке запроса. Эта причина наиболее вероятна.
Всего скрипта я не видел и не знаю о какой CMS идет речь, но по приведенному здесь коду вижу, что никакой защиты от введенных некорректных данных нет. Итак, пробуем - заменяем
Код: /* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `articles` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`,`tegi`,`kluch`,`mini_img`,`alt`,`titleimg`,`cat`) VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author','$tegi','$kluch','$mini_img','$alt','$titleimg','$cat')");
на
Код: /* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `articles` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`,`tegi`,`kluch`,`mini_img`,`alt`,`titleimg`,`cat`) VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author','$tegi','$kluch','$mini_img','$alt','$titleimg','$cat')") or die('ошибка в запросе к базе данных: ' . mysql_error());
После этого пробуйте добавить статью. Если я был прав, то будет выведено сообщение об ошибке и сам текст этой ошибки.
_________________ Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
|
новичок

Регистрация: 25.11.2009
Сообщения: 8
Откуда: киев
|
Здравствуйте! Очень рада, что Вы отозвались!
Сделала как вы говорили, но ничего не происходит. Все также: "Ваша статья добавлена".
это может быть из-за того, что переменные идут в разброс, а не как в БД?
или из-за того, что у меня есть в таблице в БД некоторые графы с типом int, которые не вошли в форму обработчика?
|

администратор

Регистрация: 05.01.2008
Сообщения: 12
Откуда: Приволжский ФО
|
Цитата: Late-maestro или из-за того, что у меня есть в таблице в БД некоторые графы с типом int, которые не вошли в форму обработчика? Нет, вряд ли причина в этом.
Цитата: Late-maestro но ничего не происходит. Все также: "Ваша статья добавлена".
В приведенном Вами коде этих строк нигде нет - я не могу знать в каком участке кода это происходит
_________________ Всю жизнь как в японском мультике... все вижу - но ничего не понимаю.
|
новичок

Регистрация: 25.11.2009
Сообщения: 8
Откуда: киев
|
вот здесь есть эти слова
Код: /* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `articles` (`title`,`meta_d`,`meta_k`,`date`,`description`,`text`,`author`,`tegi`,`kluch`,`mini_img`,`alt`,`titleimg`,`cat`) VALUES ('$title', '$meta_d','$meta_k','$date','$description','$text','$author','$tegi','$kluch','$mini_img','$alt','$titleimg','$cat')") or die('ошибка в запросе к базе данных: ' . mysql_error());
if ($result == 'true') {echo "<p>Ваша статья успешно добавлена!</p>";}
else {echo "<p>Ваша статья не добавлена!</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому статья в базу не может быть добавлена.</p>";
Цитата: Всего скрипта я не видел и не знаю о какой CMS идет речь
эти не cms. сайт написан на php + mysql
|