[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не хочет добавлять в БД методом POST
ilystone
Всем добрый день.
Никак не могу разобраться с проблемой: есть два PHP файла: один содержит форму добавления новости, другой-обрабатывает данные, введенные из формы и должен заносить их в БД. Он никак не хочет этого делать.

Первый файл:

<form id="form1" name="form1" method="post" action="add_article.php">
<
p><label>Заголовок
<input type="text" name="title" id="title" />
</
label></p>
<
p>
<
label>
Описание<br />
<
textarea name="desc" id="desc" cols="60" rows="5"></textarea>
</
label>
</
p>
<
label>Ключевые слова
<input type="text" name="keywords" id="keywords" />
</
label>
<
p>
<
label>Дата добавления
<input name="date" type="text" id="date" value="гггг-мм-чч " />
</
label>
</
p>
<
p>
<
label>Вступительный текст
<br />
<
textarea name="intro" id="intro" cols="60" rows="10"></textarea>
</
label>
</
p>
<
p>
<
label>Текст статьи<br />
<
textarea name="full_text" id="full_text" cols="60" rows="20"></textarea>
</
label>
</
p>
<
p>
<
label>Автор:
<
input type="text" name="author" id="author" />
</
label>
</
p>
<
p>
<
input type="submit" name="submit" id="submit" value="Добавить статью" />
</
p>
</
form>
Второй файл:

<?php

if (isset($title) && isset($date) && isset($author) && isset($intro) && isset($full_text))

{
$result = mysql_query("INSERT INTO news (title,desc,keywords,date,author,intro,full_text) VALUES ('$title','$desc','$keywords','$date','$author','$intro','$full_text')");


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

}


else

{
echo '<p>Вы ввели не всю информацию</p>' ;
}

?>


Конечно там подкл. к базе и проверка введены ли все данные присутствует, но там все работает, поэтому не буду захламлять код.

Приложил эти два файла на всякий случай. add_article.php - обработчик.



Спустя 2 минуты, 53 секунды (24.07.2010 - 18:48) Basili4 написал(а):
И не будет работать (isset($title) && isset($date) && isset($author) && isset($intro) && isset($full_text) все вот эти переменные не существуют

надо использовать $_POST['переменная']

Спустя 15 минут, 51 секунда (24.07.2010 - 19:04) ilystone написал(а):
"Конечно там подкл. к базе и проверка введены ли все данные присутствует, но там все работает, поэтому не буду захламлять код."

Посмотри файлы: там из массива POST присваевается всем переменным данное значение.

if (isset($_POST['title'])) {if ($_POST['title'] <> '') {$title = $_POST['title'];};}
if (isset($_POST['desc'])) {$desc = $_POST['desc'];}
if (isset($_POST['keywords'])) {$keywords = $_POST['keywords'];}
if (isset($_POST['date'])) {if ($_POST['date'] <> '') {$date = $_POST['date'];};}
if (isset($_POST['author'])) {if ($_POST['author'] <> '') {$author = $_POST['author'];};}
if (isset($_POST['intro'])) {if ($_POST['intro'] <> '') {$intro = $_POST['intro'];};}
if (isset($_POST['full_text'])) {if ($_POST['full_text'] <> '') {$full_text = $_POST['full_text'];};}

Спустя 6 минут, 13 секунд (24.07.2010 - 19:10) Basili4 написал(а):
Тогда так

1. вот эти фигушки перепиши if (isset($_POST['title'])) {if ($_POST['title'] <> '') {$title = $_POST['title'];};}

вот так

$title=isset($_POST['title']) && !empty($_POST['title'])?$_POST['title']:'';



2. $result = mysql_query("INSERT INTO news (title,desc,keywords,date,author,intro,full_text) VALUES ('$title','$desc','$keywords','$date','$author','$intro','$full_text')") or die (mysql_error()); что напишет по глядишь что напишет тады скорее всего ошибка в запросе

Спустя 7 минут, 33 секунды (24.07.2010 - 19:18) Ice написал(а):
Цитата (ilystone @ 24.07.2010 - 20:04)


if (isset($_POST['title'])) {if ($_POST['title'] <> '') {$title = $_POST['title'];};}
if (isset($_POST['desc'])) {$desc = $_POST['desc'];}
if (isset($_POST['keywords'])) {$keywords = $_POST['keywords'];}
if (isset($_POST['date']))  {if ($_POST['date'] <> '') {$date = $_POST['date'];};}
if (isset($_POST['author']))  {if ($_POST['author'] <> '') {$author = $_POST['author'];};}
if (isset($_POST['intro'])) {if ($_POST['intro'] <> '') {$intro = $_POST['intro'];};}
if (isset($_POST['full_text']))  {if ($_POST['full_text'] <> '') {$full_text = $_POST['full_text'];};}


Зачем писать данные портянки все, когда можно одной строкой гарантировать, что все переменные будут объявлены:
if( $_SERVER['REQUEST_METHOD'] == 'POST') {
// выполняем, что надо
}

Спустя 3 минуты, 47 секунд (24.07.2010 - 19:21) Basili4 написал(а):
Ice
Нет а если скрипт вызвали со стороны и переменные не все передали ???

Спустя 2 минуты, 13 секунд (24.07.2010 - 19:24) Ice написал(а):
ну в том условии на эмпти тоже проверять, просто я опять отредактить не смог, ждал вопроса. Я про иссеты говорил и тернарники, которые в 99% таких случаев даром не нужны

Спустя 59 секунд (24.07.2010 - 19:25) Basili4 написал(а):
Ice
Кстати да ты прав.

Спустя 3 минуты, 59 секунд (24.07.2010 - 19:29) ilystone написал(а):
Ребята, я ток начал изучать PHP по самоучителю Попова biggrin.gif. Эт вводный курс, и там для примера так сделано. У него все работает. У меня нет. Вот что товорит:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc,keywords,date,author,intro,full_text) VALUES ('парар','апрпар','' at line 1

Спустя 7 минут, 32 секунды (24.07.2010 - 19:36) Basili4 написал(а):
ilystone
Выбрось Попова и сожги. Иди лучше сюда
http://irbis-team.com/15

Спустя 49 секунд (24.07.2010 - 19:37) Basili4 написал(а):
ilystone
Ну я как и говорил ошибка в запросе. щас буду глядеть

Спустя 1 минута, 1 секунда (24.07.2010 - 19:38) Basili4 написал(а):
desc ключевое слово его надо так писать `desc`

Спустя 40 минут, 10 секунд (24.07.2010 - 20:18) ilystone написал(а):
Basili4, спасибо огромное!! Вжись бы не узнал наверно)))

Спустя 2 минуты, 27 секунд (24.07.2010 - 20:21) ilystone написал(а):
А чем тебе Попов не угадил? Дело в том, что я процессы какраз все понимаю, я не один год занимаюсь программированием. но php начал изучать совсем недавно.

Спустя 11 минут, 19 секунд (24.07.2010 - 20:32) Basili4 написал(а):
Насчет Попова. Весь его код мягко говоря не оптимальный
http://phpforum.ru/index.php?showtopic=312...%EF%EE%EF%EE%E2 тут про него много чего говорили

Спустя 9 минут, 17 секунд (24.07.2010 - 20:41) ilystone написал(а):
Basili4, Спасибо за ссылочку. Я так понял, что бесплатное обучение прямо на сайте там? И стоит ли пройти до конца курс Попова, раз я все-таки уже начал..?

Спустя 1 минута, 53 секунды (24.07.2010 - 20:43) ilystone написал(а):
Basili4, Спасибо за ссылочку. Я так понял, что бесплатное обучение прямо на сайте там? И стоит ли пройти до конца курс Попова, раз я все-таки уже начал..?

Спустя 2 минуты, 11 секунд (24.07.2010 - 20:45) Ice написал(а):
Цитата (ilystone @ 24.07.2010 - 21:43)
пройти до конца курс Попова, раз я все-таки уже начал

НЕТ

Спустя 1 минута, 9 секунд (24.07.2010 - 20:46) Basili4 написал(а):
ilystone
Я же сказал выбрось и сожги его. Всем кто прошел курс приходится переучиваться а это сложнее взять например его манеру выводить инфу из базы
do

while () это же брет. Почитай что пишет twin он очень хорошо пишет.

Спустя 1 минута, 15 секунд (24.07.2010 - 20:48) Basili4 написал(а):
Ice
Ты чего. кричишь.

Спустя 4 минуты, 18 секунд (24.07.2010 - 20:52) Ice написал(а):
Цитата (Basili4 @ 24.07.2010 - 21:48)
Ты чего. кричишь.

каждого второго надоело править smile.gif

Спустя 1 минута, 33 секунды (24.07.2010 - 20:53) Basili4 написал(а):
Попов наш благодетель чем больше у него последователей тем больше у нас работы и меньше конкурентов.

Спустя 12 часов, 30 минут, 23 секунды (25.07.2010 - 09:24) ilystone написал(а):
Basili4, biggrin.gif biggrin.gif biggrin.gif

Значит мне повезло что я вовремя обратился сюда)))

Спустя 6 минут, 2 секунды (25.07.2010 - 09:30) Basili4 написал(а):
ilystone
Ещё как.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.