Jump to content
  • 0

Данные в БД не отправляются


Mahay
 Share

Question

Страница с формой для отправки

<!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>
</head>
<body>

<form name="form1" method="post" action="add_news.php">
<p>
<label>Введите название<br>
<input type="text" name="title" id="title">
</label>
</p>
<p>
<label>Введите краткое описание<br>
<input type="text" name="meta_d" id="meta_d">
</label>
</p>
<p>
<label>Введите ключевые слова<br>
<input type="text" name="meta_k" id="meta_k">
</label>
</p>
<p>
<label>Введите день<br>
<input name="day" type="text" id="day">
</label>
</p>
<p>
<label>Введите месяц<br>
<input name="month" type="text" id="month">
</label>
</p>
<p>
<label>Введите год<br>
<input name="year" type="text" id="year">
</label>
</p>
<p>
<label>Ведите краткое описание с тэгами абзацев<br/>
<textarea name="description" id="description" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите полный текст с тэгами<br/>
<textarea name="code" id="code" cols="40" rows="20"></textarea>
</label>
</p>
<p>
<label>Введите автора<br>
<input type="text" name="author" id="author">
</label>
</p>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Занести урок в базу">
</label>
</p>
</form>

</body>
</html>

Страница обработчик


<?php
include ("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['day'])) {$day = $_POST['day']; if ($day == '') {unset($day);}}
if (isset($_POST['month'])) {$month = $_POST['month']; if ($month == '') {unset($month);}}
if (isset($_POST['year'])) {$year = $_POST['year']; if ($year == '') {unset($year);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['code'])) {$code = $_POST['code']; if ($code == '') {unset($code);}}
if (isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author);}}
?>

<!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>
</head>
<body>

<?php
if (isset($title) && isset($meta_d) && isset($meta_k) && isset($day) && isset($month) && isset($year) && isset($description) && isset($code) && isset($author))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO 'news' ('title','meta_d','meta_k','day','month','year','description','code','author') VALUES ('$title','$meta_d','$meta_k','$day','$month','$year','$description','$code','$author')");


if ($result == 'true') {echo "<p>Ваша новость успешно добалена!</p>";}
else {echo "<p>Ваша новость не добавлена!</p>";}

}
else

{
echo "<p>Вы ввели не всю информацию, поэтому новость в базу не может быть добалена.</p>";
}


?>

</body>
</html>

Обработчек выводит сообщение: Ваша новость не добавлена!

Подключение к БД

<?php
$conn=mysql_connect("localhost","12345","12345");
if (!$conn){
echo "Не могу соединиться с БД:".mysql_error();
exit;
}
if (!mysql_select_db("admin")) {
echo "Не могу выбрать БД:".mysql_erro();
exit;
}
mysql_query('SET CHARACTER SET cp1251');
mysql_query("SET SESSION collation_connection = 'cp1251_general_ci'");
mysql_query('SET NAMES cp1251');
?>

Таблица в БД с которой работаю


CREATE TABLE IF NOT EXISTS `news` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`meta_d` varchar(255) NOT NULL,
`meta_k` varchar(255) NOT NULL,
`day` varchar(255) NOT NULL,
`month` varchar(255) NOT NULL,
`year` varchar(255) NOT NULL,
`description` text NOT NULL,
`соde` text NOT NULL,
`author` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Во всех случаях выводит или при неверном вводе данных?

Короче когда я все поля заполняю, жму отправить и выдает это сообщение, а когда не все заполняешь выводит " Вы ввели не всю информацию, поэтому новость в базу не может быть добавлена."

а что, сейчас модно гадать по фотографиям?

не понял шутки!

организуйте вывод ошибки, которую возвращает mysql

Ошибку выводит не mysql, а обработчик, он выводит сообщение "Ваша новость не добавлена"

Link to comment
Share on other sites

  • 0

попробуй сделайте по примеру, иначе что-то где-то в названиях бд, или таблиц:



$meta_t = $_POST['meta_t'];
$meta_k = $_POST['meta_k'];
$meta_d = $_POST['meta_d'];
$title = $_POST['title'];
$title2 = str2url($_POST['title2']);
$full_text = $_POST['full_text'];
// если существует название
if(@$_POST['title'])
{
// преобразовываем зарезервированные в HTML символы
$title = htmlspecialchars($_POST['title']);
$meta_t = htmlspecialchars($_POST['meta_t']);
$meta_k = htmlspecialchars($_POST['meta_k']);
$meta_d = htmlspecialchars($_POST['meta_d']);
// экранируем кавычки
if (!get_magic_quotes_gpc())
{
$meta_t = mysql_real_escape_string($meta_t);
$meta_k = mysql_real_escape_string($meta_k);
$meta_d = mysql_real_escape_string($meta_d);
$title = mysql_real_escape_string($title);
$title2 = mysql_real_escape_string($title2);
$full_text = mysql_real_escape_string($full_text);
}
else
{
$meta_t = str_replace("'","`",$meta_t);
$meta_k = str_replace("'","`",$meta_k);
$meta_d = str_replace("'","`",$meta_d);
$title = str_replace("'","`",$title);
$title2 = str_replace("'","`",$title2);
$full_text = str_replace("'","`",$full_text);
}
// вставляем данные в БД
if (isset($_SESSION['flag']) && (time()-$_SESSION['flag'] < 15))
{
echo '<h1>Защита от повторного добавления! Нужно подождать 15 сек...</h1>';
}
else
{
$result = mysql_query ("INSERT `pages` SET
`id` = '".$_GET['id']."',
`title` = '$title',
`title2` = '$title2',
`full_text` = '$full_text',
`meta_t` = '$meta_t',
`meta_k` = '$meta_k',
`meta_d` = '$meta_d',
");

echo '<h1>Информация успешно занесена в базу!</h1>';
$_SESSION['flag']=time();
}
}
// иначе выводим форму для заполнения
else
{
echo "
<FORM ACTION=\"news.php\" METHOD=\"POST\">
<fieldset style=\"display:block;clear:both;\">
<legend>Добавление нового раздела</legend>
<label>
<span style=\"display:block;\">Название раздела:</span>
<input type=\"text\" size=\"60\" name=\"title\">
</label>
<label>
<span style=\"display:block;\">Второе название раздела(используется в url):</span>
<input type=\"text\" size=\"60\" name=\"title2\">
</label>
<label>
<span style=\"display:block;\">Описание раздела:</span>
<textarea rows=\"20\" cols=\"60\" name=\"full_text\"></textarea>
</label>
</fieldset>
<fieldset style=\"display:block;clear:both;\">
<legend>Ключевые слова, настройки нового раздела</legend>
<label>
<span style=\"display:block;\">Название раздела (мета-тег):</span>
<input type=\"text\" size=\"60\" name=\"meta_t\">
</label>
<label>
<span style=\"display:block;\">Ключевые слова раздела (мета-тег):</span>
<input type=\"text\" size=\"60\" name=\"meta_k\">
</label>
<label>
<span style=\"display:block;\">Краткое описание раздела (мета-тег):</span>
<input type=\"text\" size=\"60\" name=\"meta_d\">
</label>
<p style=\"display:block;\"><input type=\"submit\" value=\"Добавить раздел\"></p>
</fieldset>
</form>";
}
}

Link to comment
Share on other sites

  • 0

Добавьте после запроса echo mysql_error(); или посмотрите логи сервера на предмет ошибки в запросе.

Спасибо за подсказку (echo mysql_error(); ) сразу показал где ошибка, ошибка была в поле CODE, конечно так и не понял почему не отправляло, но когда поменял названия поля code на text все заработало))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy