|
|
|
| Добрый день, подскажите почему при вставке данных из формы в БД добавляются пустые строки за исключением поля id и data.
код вставки
mysql_query('CREATE TABLE IF NOT EXISTS stat (id INT,data DATETIME,name VARCHAR(20),message VARCHAR(20))')
or die(mysql_error());
$text = mysql_real_escape_string(htmlspecialchars($_POST["header"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
mysql_query('SET NAMES UTF8');
mysql_query("INSERT INTO stat VALUES ('',NOW(),'$text','$message')");
|
Причём, если уберу переадресацию при нажатии кнопки отправить, то данные записываются корректно, но соответственно тогда при обновлении страницы запись вставляется снова
if ($_REQUEST['doing']) {
$rnd=time();
Header("Location:http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?$rnd");
exit();
}
|
Как это исправить ? | |
|
|
|
|
|
|
|
для: kaizer131
(06.02.2009 в 13:33)
| | Вы приведите весь код, как это все у вас выполняется, и обрамите его ВВ-тегами [сode][/сode]. | |
|
|
|
|
|
|
|
для: sim5
(06.02.2009 в 16:29)
| |
<?php
if ($_REQUEST['doing']) {
$rnd=time();
Header("Location:http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?$rnd");
exit();
}
include_once"cgi-bin/conect.php";
mysql_query('CREATE TABLE IF NOT EXISTS stat (id INT,data DATETIME,name VARCHAR(20),message VARCHAR(20))')
or die(mysql_error());
$text = mysql_real_escape_string(htmlspecialchars($_POST["header"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
mysql_query('SET NAMES UTF8');
mysql_query("INSERT INTO stat VALUES ('',NOW(),'$text','$message')");
// конец куска подключениякБД
// кодировки для метатэга cp1251 , UTF-8
$query = $query = "SELECT * FROM `stat`
WHERE `name`!=''
ORDER BY `id` DESC LIMIT 5";
$result = mysql_query($query);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head >
<body>
<? while ($row = mysql_fetch_assoc($result)): ?>
<div >
<h2> <u> Дата:</u> </h2>
<h2> <u>Имя:</u> <?=$row['name']?>
<?=$row['data']?>
</h2>
<h2> <u>Сообщение:</u> <?=$row['message']?></h2>
<hr />
<? endwhile; ?>
</div>
<div>
<form method="post" action="index.php">
Ваше имя: <input type="text" name="header"><br /><br />
<textarea name="message" rows="6" cols="90">
<?=@htmlspecialchars($_REQUEST['message'])?>
Ваше сообщение
</textarea><br />
<br /><input type="submit" name="doing" value="Сохранить">
</form>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: kaizer131
(09.02.2009 в 09:10)
| | Что значит - почему?
Вы же сами с помощью переадресации (Location, exit) ушли из обработчика post-запроса?
Данные POST-запроса нужно сохранить до переадресации. | |
|
|
|
|
|
|
|
для: Trianon
(09.02.2009 в 10:13)
| | Да , но для сохранения данных POST необходимо подключиться к БД
строка
include_once"cgi-bin/conect.php";
|
но если она используется до переадресации, то выдаёт ошибку заголовка... :(
Может просто осуществлять подключение не отдельным файлом, а внутри основного файла? | |
|
|
|
|
|
|
|
для: Kaizer131
(09.02.2009 в 11:15)
| | какую такую ошибку заголовка?
Вообще-то require_once("cgi-bin/conect.php"); | |
|
|
|