Эта тема на forum.dklab.ru


gash1sh: Ошибка в передаче запроса
Здравствуйте. Не получается написать скрипт для добавления в бд записи. Помогите, пожалуйста разобраться, в чём ошибка.

Ниже представлен скрипт для вывода записей из таблицы styles.php, также на нём расположена форма для ввода значения. Выводит записи корректно. По идее должен собирать данные из формы и отправлять в add.php

<html>
<head><title>.: AlbumsDB 1.0 :.</title></head>
<body>
<link rel = "stylesheet" type = "text/css" href = "style/style.css"/>
<table width = "100%"><tbody><tr bgcolor = #dcdcdc><td><p align = "center"><img src = "images/disc.jpg"><br><font size="4"><b>AlbumsDB 1.0 - Музыкальные стили</b></font></p></td></tr></tbody></table>

<?php
include_once('cfg.php');
dbConnect();

$query = "SELECT * FROM STYLES";
$result = mysql_query($query) or die("Ошибка запроса");
$col = mysql_num_rows($result);

if($_GET['success']=='true')
echo "Запись добавлена!";
if($_GET['success']=='false')
echo "Ошибка! Запись не добавлена!";


echo "<br><br>";
echo "<table align = \"center\" border = 1 cellspacing = 0 cellpadding = 2 bordercolor = #000000>";
echo "<tr align = \"center\"><td>ID Стиля</td><td>Название</td><td>Действие</td></tr>";

while ($row = mysql_fetch_array($result)) {
echo "<tr align = \"center\">";
echo "<td>".$row['ID_STYLE']."</td>";
echo "<td>".$row['ST_NAME']."</td>";
echo "<td><a href=\"del.php?table=STYLES&id=".$row['ID_STYLE']."\">[X]</a>";
echo "<a href=\"change.php?table=STYLES&id=".$row['ID_STYLE']."\">[U]</a></td></tr>";
}

echo "</table>";
mysql_free_result($result);
dbDisConnect();
?>
<center><br><br>
<form aсtion = "add.php" method = "post" >
<input name = "form" type = "hidden" value = "style">
<input type = "text" name = "ST_NAME">
<input type = "submit" value = "Добавить Стиль">
</form>
</center>

</body>
</html>


А это скрипт для добавления записи add.php. Он должен сформировать запись в таблице из полей полученных из styles.php.
Визуально при нажатии submit на styles.php страница должна обновиться, и при этом должен высветиться отчёт об успешном/неуспешном добавлении записи.
<?php
include_once('cfg.php');
dbConnect();

if($_POST['form']=='style'){

$query = "INSERT INTO STYLES VALUES ('','".$_POST[ST_NAME]."')";
$result = mysql_query($query);
if($result=='TRUE')
header("Location: styles.php?success=true");
else
header("Location: styles.php?success=false");
}

dbDisConnect();
?>



На деле просто ничего не происходит) Параметры get-запроса даже не передаются в строку

Сам запрос, возникающий после сабмита выглядит вот так

http://albumsdb.rgr/styles.php

POST /styles.php HTTP/1.1
Host: albumsdb.rgr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://albumsdb.rgr/styles.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 26
form=style&ST_NAME=Mystyle


HTTP/1.x 200 OK
Date: Sat, 06 Feb 2010 21:56:48 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.1
X-Powered-By: PHP/5.3.1
Content-Length: 1367
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=windows-1251
----------------------------------------------------------


Буду очень благодарен, если мне кто-нибудь научит, как исправить ошибку)
dimagolov:
http://phpfaq.ru/debug
gash1sh:
dimagolov, хорошо

идёт post запрос POST /styles.php HTTP/1.1 к styles.php

а должен к add.php!!!

<form aсtion = "add.php" method = "post" >

Как исправить, не знаю

По нажатии кнопки сабмит, должна ли открываться страница, которая указана в форме?
bæv:
gash1sh:
1. Вы текст по ссылке прочли?

2. Если у Вас не работает форма, то и отлаживайте форму. К чему тут весь остальной код?

3. Приводить надо минимальный код, воспроизводящий проблему.
Чтобы этот код можно было запустить на другой машине.

Эта тема на forum.dklab.ru