Я по примеру создал форму, но когда начал создавать TEXT FIELD у меня в дримвире 8 не оказалось строчки ID, я его дописал: БЫЛО <input type="text" name="textfield" /> , а после дописания стало - <input type="text" name="textfield" id="title" />. После я стал писать РНР - обработчик и у меня не получается реализовать занос данных в базу... ошибок нет вроде, че то с этими ID-шками. помогите.... вот скрипт обработчика::: <?php include ('block/bd.php'); if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title); }}/*проверяем поля на пустоту, значение unset уничтожает переменную если у нее пустота в ''*/ 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['discrip'])) {$discrip = $_POST['discrip']; if ($discrip == '') {unset($discrip); }} if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text); }} if (isset($_POST['author'])) {$author = $_POST['author']; if ($author == '') {unset($author); }} ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml4/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="1000" border="0" align="center" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF" class="main_border"> <?php include ("block/header.php");?> <!--вырезанная строка с шапкой сайта и помещенная в блок --> <tr> <td><table width="1000" border="0" cellpadding="0" cellspacing="0"> <tr> <?php include ("block/lefttd.php"); ?> <td valign="top"> <?php $refreshpage="new_deyatel.php"; if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author)) { $result = mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author'))"); /* здесь пишем что все условия удовлетворены, все поля формы заполнены и можно вносить в БД*/ if ($result == 'true') {echo "<p>Все данные успешно занесены</p>";} else { echo "<p>Произошла ошибка, данные не добавлены</p>";} } else { echo '<p> Вы заполнили не все поля, данные не могут быть внесены в базу</p>'; } print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>"; exit; ?> ::::: после занесения данных в таблицу, прога выводит на экран::: Вы заполнили не все поля, данные не могут быть внесены в базу
<input type="text" name="textfield" id="title" /> id тут нипричем. имя поменяй на то, которое у тебя уже проверяется.
скрипт формы------ <form id="form1" name="form1" method="post" action="add_deyatel.php"> <p> <label><span class="view_date">Введите вид деятельности</span> <br /> <input type="text" name="textfield" id="title" /> </label> <br /> <br /> <label><span class="view_date">Введите краткое описание деятельности</span> <br /> <input type="text" name="textfield2" id="meta_d" /> </label> <br /> <br /> <label><span class="view_date">Введите ключевые слова для будущего поиска</span> <br /> <input type="text" name="textfield3"id="meta_k" /> </label> <br /> <br /> <label><span class="view_date">Введите дату добавления</span><br /> <input name="textfield4" type="text"id="date" value="2010-04-24" /> </label> <br /> <span class="view_date"><br /> <label>Введите краткое описание с тэгами обзаца</label> </span> <label><br /> <textarea name="textarea" cols="60" rows="10" id="discrip"></textarea> </label> <br /> <br /> <label><span class="view_date">Введите полный текст с тэгами абзацев</span><br /> <textarea name="textarea2" cols="60" rows="30" id="text"></textarea> </label> <br /> <br /> <label><span class="view_date">Введите автора</span><br /> <input type="text" name="textfield5" id="author" /> </label> <br /> <br /> <br /> <label> <input name="Submit" type="submit" id="submint" class="lesson_name" value="Занести данные в базу " /> </label> </p> </form> ID добавлял сам.... и че то опять подчеркнут красной волнистой <link href="style.css" rel="stylesheet" type="text/css" />
wertel Еще раз говорю - id здесь не имеет значения. В пхп передается значения name="title", name="text" и т.д. Посмотри, чтоб все инпуты имели точно те имена, которые ты потом проверяешь на существование. А если не срабатывает эта твоя проверка if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author)) , то значит чтото не доходит до сюда. Проверь, что попадает в массив $_POST, гдето вверху напиши var_dump($_POST);, посмотришь, все ли есть имена инпутов там.
array(8) { ["title"]=> string(4) "ысас" ["meta_d"]=> string(5) "ыыаыа" ["meta_k"]=> string(3) "ыыа" ["date"]=> string(10) "2010-04-24" ["discrip"]=> string(6) "ыыаыаа" ["text"]=> string(7) "ыаыаыаы" ["author"]=> string(5) "ыыаыа" ["Submit"]=> string(22) "Занести данные в базу " } Произошла ошибка, данные не добавлены а это после того как я поменял в функции-- name---- все значения на ID-шные
Зачем тебе вообще ID? Каждое текстовое поле (то куда ты вводишь всякие author и title) имеет имя, которое передается при нажатии кнопки (сабмита). Но передается именно имя, а не твои ид. Каждый инпут должен выглядеть так: <input name="title" type="text">, где name="title" - это имя этого инпута. Ид тут не обязательно, если ты им не умеешь пользоваться. Но именно так, а не <input type="text" name="textfield" id="title" />, потому что в скрипт-обработчик передастся значение переменной textfield, а не title. В обработчике у тебя же проверяется именно title, а не textfield. И поскольку скрипт не находит нужной ему title с какимто значением, то у тебя это условие if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($date)&& isset($discrip)&& isset($text)&& isset($author)) не будет выполнено, и скрипт вернет false, в итоге ничего в базу у тебя не запишется. Из этого видно, что у тебя есть текстовые поля с именами title, meta_d, meta_k, date, discrip, text, author и кнопка. Тут все чОтко, чтото пришло в скрипт, значит уже не пусто и пол дела сделано. Дальше... В этом запросе ошибка, посмотри где ты натупил со скобками, поставил не там где нужно. Найдешь, переставишь и будет тебе счастье
УРАААА.... Спасибо, ты просто гений... я переставил скобку вот отсюда mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author') )" ); вот сюда mysql_query ("INSERT INTO lessons (title,meta_d, meta_k,date,discrip,text,author ) VALUES ('$title','$meta_d','$meta_k','$date','$discrip','$text','$author')"); а функция var_dump(); она может проверять все функции???
wertel http://www.softtime.ru/dic/id_dic=268&id_group=9 Сначала гуглим, потом спрашиваем, главное не перепутать)