Вот код
<?php
include ("blocks/bd.php");
/*если существует глобальный массив пост и в нем существует какая-то из переменных то мы её приравниваем обычной переменной*/
if (isset($_POST['title']))
{
$title = $_POST['title'];
if ($title == '')
{
unset ($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['date'])) { $date = $_POST['date'];if ($date == '') {unset($date);}}
if (isset($_POST['description'])) { $description = $_POST['description'];if ($description == '') {unset($description);}}
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 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>обработчик</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<html>
<div id="container">
<?php include ("blocks/header.php"); ?>
<?php include ("blocks/leftmenu.php"); ?>
<div id="content">
<?php
/*Если существует переменная title и т.д то ...*/
if (isset ($title)&& isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author))
{
/*Здесь пишем что можно заносить в базу
Делаем запрос через майскл квери ВСТАВИТЬ(инсерт) инто(в таблицу лессонс) в скобочках перечисляем в какие поля будем мы вставлять
VALUES в эти поля хотив вставить значения в одинарных кавычках вставляем переменные которые будут вставляться на эти места */
$result = mysql_query ("INSERT INTO lessons (title,meta_d,meta_k,date,description,text,author) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author')");
if ($result == 'true') {echo "<p>Ваш урок успешно добавлен</p>";}
else {echo "<p>Ваш урок не добавлен</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию</p>";
}
?>
<div class="breadcrumbs">Навигация</div>
</div>
<div id="clear"></div>
<?php include ("blocks/footer.php"); ?>
</div>
</html>
</body>
Када на сайте заполняю все формы, пишет все равно "Вы ввели не всю информацию" Где ошибка, вроде бы всё ок, ах да.. практикую по урокам попова *(
Спустя 2 минуты, 29 секунд (9.11.2011 - 15:11) T1grOK написал(а):
Хм...а где сама форма?
Спустя 4 минуты, 56 секунд (9.11.2011 - 15:16) Guest написал(а):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Главная страница блока администратора</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<html>
<div id="container">
<?php include ("blocks/header.php"); ?>
<?php include ("blocks/leftmenu.php"); ?>
<div id="content"><p>Страница добавления.</p>
<form name="form1" method="post" action="add_stati.php">
<p>
<label>Введите название урока
<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 type="date" type="text" id="date" value="2007-01-27">
</label>
</p>
<p>
<label>Введите краткое описание с тэгами абзаца<br>
<textarea name="description" id="description" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите полный текст с тегами<br>
<textarea name="text" id="text" cols="40" rows="20"></textarea>
</label>
</p>
<p>
<label>Введите Автора урока<br>
<input type="text" name="author" id="author">
</label>
<p>
<label>
<input type="submit" name="submit" id="submit" value="Занести урок в базу">
</label>
</p>
</p>
</form>
<div class="breadcrumbs">Навигация</div>
</div>
<div id="clear"></div>
<?php include ("blocks/footer.php"); ?>
</div>
</html>
</body>
Извеняюсь за большие тексты не знаю как скрыть под спойлер
Спустя 7 минут, 25 секунд (9.11.2011 - 15:23) Zerstoren написал(а):
У вас по всей видимости отключен параметр register_globals, но в форме он пишется как будто включен.
Замените все эти переменные "if (isset ($title)&& isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author))"
на вид $_POST['title'] , $_POST['meta_d'] и так далее.
И еще три тайны для вас.
1) Даже если поле не было заполнено, оно все равно существует, по этому нужно использовать еще empty
2) isset можно перечислять через запятую isset($title,$meta_d,$meta_k) и так далее.
3) Форма уязвима, чтоб сделать ее менее уязвимой, сделайте безопасными свои параметры, с помощью mysql_real_escape_string($title);
Замените все эти переменные "if (isset ($title)&& isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author))"
на вид $_POST['title'] , $_POST['meta_d'] и так далее.
И еще три тайны для вас.
1) Даже если поле не было заполнено, оно все равно существует, по этому нужно использовать еще empty
2) isset можно перечислять через запятую isset($title,$meta_d,$meta_k) и так далее.
3) Форма уязвима, чтоб сделать ее менее уязвимой, сделайте безопасными свои параметры, с помощью mysql_real_escape_string($title);
Спустя 5 минут, 58 секунд (9.11.2011 - 15:31) Guest написал(а):
<?php
include ("blocks/bd.php");
/*если существует глобальный массив пост и в нем существует какая-то из переменных то мы её приравниваем обычной переменной потом проверяем переменную на пустоту, если переменная пустота то выводим лож если не пустая истину*/
if (isset($_POST['title']))
{
$title = $_POST['title'];
if ($title == '')
{
unset ($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['date'])) { $date = $_POST['date'];if ($date == '') {unset($date);}}
if (isset($_POST['description'])) { $description = $_POST['description'];if ($description == '') {unset($description);}}
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 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>обработчик</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<html>
<div id="container">
<?php include ("blocks/header.php"); ?>
<?php include ("blocks/leftmenu.php"); ?>
<div id="content">
<?php
/*Если существует переменная title и т.д то .. то просто ниже идет запись в базу.*/
if (isset ($_POST['title'])&& isset($_POST['meta_d']) && isset($_POST['meta_k']) && isset($_POST['date']) && isset($_POST['description']) && isset($_POST['text']) && isset($_POST['author']))
{
/*Здесь пишем что можно заносить в базу
Делаем запрос через майскл квери ВСТАВИТЬ(инсерт) инто(в таблицу лессонс) в скобочках перечисляем в какие поля будем мы вставлять
VALUES в эти поля хотив вставить значения в одинарных кавычках вставляем переменные которые будут вставляться на эти места */
$result = mysql_query ("INSERT INTO stati (title,meta_d,meta_k,date,description,text,author) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author')");
if ($result == 'true') {echo "<p>Ваш урок успешно добавлен</p>";}
else {echo "<p>Ваш урок не добавлен</p>";}
}
else
{
echo "<p>Вы ввели не всю информацию</p>";
}
?>
<div class="breadcrumbs">Навигация</div>
</div>
<div id="clear"></div>
<?php include ("blocks/footer.php"); ?>
</div>
</html>
</body>
Вроде переделал но тоже самое(
Спустя 1 час, 17 минут, 32 секунды (9.11.2011 - 16:48) imbalance_hero написал(а):
Достаточно через запятую перечислить
Чтобы убедиться, что все приходят, каждую в отдельности выведи в начале страницы:
Или ещё проще:
Вообщем, ты проверяешь существование имени, которого нет, поэтому и пишется, что отсутствуют данные.
isset($_POST['title'],$_POST['meta_d'])
Чтобы убедиться, что все приходят, каждую в отдельности выведи в начале страницы:
echo 'title: '.$_POST['title'];
echo 'дата: '.$_POST['date'];
Или ещё проще:
echo '<pre>';
print_r($_POST);
Вообщем, ты проверяешь существование имени, которого нет, поэтому и пишется, что отсутствуют данные.
Спустя 30 минут, 40 секунд (9.11.2011 - 17:19) Guest написал(а):
спасибо, буду разбераться, не хочеться останавливаться на этом месте, просто всё ведь вроде как правильно, у меня все поля в таблице правильно написаны, все вроде как ок но не работает
Спустя 16 минут, 55 секунд (9.11.2011 - 17:36) imbalance_hero написал(а):
Guest
Я то ошибку вижу, но ты должен запустить то, что я показал, чтобы самому найти ошибку. Лучше всего последний вариант сделай через print_r , и посмотри массив, чего не хватает?
Я то ошибку вижу, но ты должен запустить то, что я показал, чтобы самому найти ошибку. Лучше всего последний вариант сделай через print_r , и посмотри массив, чего не хватает?
Спустя 20 минут (9.11.2011 - 17:56) Zerstoren написал(а):
Гость если хочешь стать программистом после курсов Попова, то все это надо сначала разобрать одному, а потом еще прочитать пару умных книг, чтоб понять какое говно тебе кормил Попов.
Я сам прошел через это и понял что учить с Попова была ошибка и пришлось переучиваться.
Сцуко - Попов как IE6, вроде работает но как-то через жопу.
Я сам прошел через это и понял что учить с Попова была ошибка и пришлось переучиваться.
Сцуко - Попов как IE6, вроде работает но как-то через жопу.
Спустя 22 минуты, 21 секунда (9.11.2011 - 18:18) m4a1fox написал(а):
Zerstoren
Цитата |
Сцуко - Попов как IE6, вроде работает но как-то через жопу. |
Спустя 19 минут, 46 секунд (9.11.2011 - 18:38) Guest написал(а):
сделал проверку
echo 'title: '.$_POST['title'];
echo 'meta_d: '.$_POST['meta_d'];
echo 'meta_k: '.$_POST['meta_k'];
echo 'date: '.$_POST['date'];
echo 'description: '.$_POST['description'];
echo 'text: '.$_POST['text'];
echo 'author: '.$_POST['author'];
в дате ошибку выбило
Notice: Undefined index: date in C:\WebServers\home\localhost\www\elv.su\admin\add_stati.php on line 7
Call Stack
# Time Memory Function Location
1 0.0040 355472 {main}( ) ..\add_stati.php:0
echo 'title: '.$_POST['title'];
echo 'meta_d: '.$_POST['meta_d'];
echo 'meta_k: '.$_POST['meta_k'];
echo 'date: '.$_POST['date'];
echo 'description: '.$_POST['description'];
echo 'text: '.$_POST['text'];
echo 'author: '.$_POST['author'];
в дате ошибку выбило
Notice: Undefined index: date in C:\WebServers\home\localhost\www\elv.su\admin\add_stati.php on line 7
Call Stack
# Time Memory Function Location
1 0.0040 355472 {main}( ) ..\add_stati.php:0
Спустя 8 минут, 12 секунд (9.11.2011 - 18:46) Guest написал(а):
все поля выводят информацию, ту что я вводил, дата ток чета матюкаеться, блина))
Спустя 2 минуты, 17 секунд (9.11.2011 - 18:48) imbalance_hero написал(а):
Guest
А почему не через print_r ? Так было бы нагляднее
Ну что, ошибка - $_POST['date'] не существует. А почему не передалась? Смотрим свою форму...
А почему не через print_r ? Так было бы нагляднее
Ну что, ошибка - $_POST['date'] не существует. А почему не передалась? Смотрим свою форму...
Спустя 2 минуты, 32 секунды (9.11.2011 - 18:51) Guest написал(а):
через принт р не умею, нада почитать как выводить ей
Спустя 1 минута, 12 секунд (9.11.2011 - 18:52) Guest написал(а):
Цитата (imbalance_hero @ 9.11.2011 - 15:48) |
Guest А почему не через print_r ? Так было бы нагляднее Ну что, ошибка - $_POST['date'] не существует. А почему не передалась? Смотрим свою форму... |
через принт р не умею, нада почитать как выводить ей
<p>
<label>Введите дату добавления<br>
<input type="date" type="text" id="date" value="2007-01-27">
</label>
</p>
вроде форма норм, щас сам попарюсь если не получиться отпишусь
Спустя 1 час, 19 минут, 18 секунд (9.11.2011 - 20:11) Guest написал(а):
array
'title' => string 'уа' (length=4)
'meta_d' => string 'уаца' (length=8)
'meta_k' => string 'цац' (length=6)
'description' => string 'цац' (length=6)
'text' => string 'ац' (length=4)
'author' => string 'цац' (length=6)
'submit' => string 'Занести урок в базу' (length=35)
эх, я всё со своими проблемами, вот что вывел я, моей даты ваще нету, голову ломаю почему так
вот форма
'title' => string 'уа' (length=4)
'meta_d' => string 'уаца' (length=8)
'meta_k' => string 'цац' (length=6)
'description' => string 'цац' (length=6)
'text' => string 'ац' (length=4)
'author' => string 'цац' (length=6)
'submit' => string 'Занести урок в базу' (length=35)
эх, я всё со своими проблемами, вот что вывел я, моей даты ваще нету, голову ломаю почему так
вот форма
<form name="form1" method="post" action="add_stati.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="date" type="text" id="date" value="2007-01-27">
</label>
</p>
<p>
<label>Ведите краткое описание урока с тэгами абзацев
<textarea name="description" id="description" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<label>Введите полный текст урока с тэгами
<textarea name="text" id="text" 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>
Спустя 11 минут, 54 секунды (9.11.2011 - 20:23) Guest написал(а):
Вообщея я очень глупый, решил проблему каким-то дурацким способом, прописал вверху в обработчике строку var_dump($_POST); потом смог добавить урок, потом убрал строку дампа терь работает без неё, в чем прикол обьясните пожалуйста
Спустя 37 минут, 7 секунд (9.11.2011 - 21:00) imbalance_hero написал(а):
Guest
У тебя есть:
<input type="date" type="text" id="date" value="2007-01-27">
Давай по порядку:
Это у нас INPUT
TYPE ="date"
TYPE = "text"
Как у формы может быть 2 типа?
2. Какой из аттрибутов тега передаётся при отправке формы?
$_POST['name'] - какой аттрибут передаёт имя ИМЕННО в место name ?
У тебя есть:
<input type="date" type="text" id="date" value="2007-01-27">
Давай по порядку:
Это у нас INPUT
TYPE ="date"
TYPE = "text"
Как у формы может быть 2 типа?
2. Какой из аттрибутов тега передаётся при отправке формы?
$_POST['name'] - какой аттрибут передаёт имя ИМЕННО в место name ?
Спустя 41 минута, 27 секунд (9.11.2011 - 21:42) Guest написал(а):
Цитата (imbalance_hero @ 9.11.2011 - 18:00) |
Guest У тебя есть: <input type="date" type="text" id="date" value="2007-01-27"> Давай по порядку: Это у нас INPUT TYPE ="date" TYPE = "text" Как у формы может быть 2 типа? 2. Какой из аттрибутов тега передаётся при отправке формы? $_POST['name'] - какой аттрибут передаёт имя ИМЕННО в место name ? |
вся проблема из за моей не внимательности, конечно много советов от вас получил, !empty проверку на пустоту сделал вместо isset и поуберал лишние isset в списке...
Да уж вся ошибка была из за 2 типов в форме, а не из за того что я дампом посмотрел результат массива.
Кстати ответ на твой 2-й вопрос выводиться date должна
Спустя 4 минуты, 42 секунды (9.11.2011 - 21:46) Guest написал(а):
Чет меня щас смущает учить по урокам попова)
Спустя 3 минуты, 49 секунд (9.11.2011 - 21:50) imbalance_hero написал(а):
<input NAME="date" - name передаёт в глабальный массив POST. А у тебя была ошибка, вместо name ты написал type.
Спустя 32 минуты, 6 секунд (9.11.2011 - 22:22) Guest написал(а):
Цитата (imbalance_hero @ 9.11.2011 - 18:50) |
<input NAME="date" - name передаёт в глабальный массив POST. А у тебя была ошибка, вместо name ты написал type. |
спасиб большое
Спустя 1 день, 4 часа, 14 минут, 33 секунды (11.11.2011 - 02:37) Guest написал(а):
Блин снова я столкнлулся с проблемой, теперь обработчик редактирования статей не хочет работать. Тоесть выводяться в виде ссылок новости которые я хочу редактировать, но когда на них жмёшь не выскакивает форма заполненая
Пожалуйста помогите :(
<?php
echo 'title: '.$_POST['title'];
echo 'meta_d: '.$_POST['meta_d'];
echo 'meta_k: '.$_POST['meta_k'];
echo 'date: '.$_POST['date'];
echo 'description: '.$_POST['description'];
echo 'text: '.$_POST['text'];
echo 'author: '.$_POST['author'];
include ("blocks/bd.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Главная страница блока администратора</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<html>
<div id="container">
<?php include ("blocks/header.php"); ?>
<?php include ("blocks/leftmenu.php"); ?>
<div id="content"><p>Страница добавления.</p>
<?php
if (!empty($id))
{
$result = mysql_query("SELECT title,id FROM stati");
$myrow = mysql_fetch_array($result);
do
{
printf ("<p><a href='edit_stati.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
$result = mysql_query("SELECT * FROM stati WHERE id=$id");
$myrow = mysql_fetch_array($result);
print <<<HERE
<form name="form1" method="post" action="update_stati.php">
<p>
<label>Введите название урока<br>
<input value="$myrow[title]" type="text" name="title" id="title">
</label>
</p>
<p>
<label>Введите краткое описание урока<br>
<input value="$myrow[meta_d]" type="text" name="meta_d" id="meta_d">
</label>
</p>
<p>
<label>Введите ключевые слова для урока<br>
<input value="$myrow[meta_k]" type="text" name="meta_k" id="meta_k">
</label>
</p>
<p>
<label>Введите дату добавления урока<br>
<input value="$myrow[date]" name="date" type="text" id="date" value="2007-01-27">
</label>
</p>
<p>
<label>Ведите краткое описание урока с тэгами абзацев
<textarea name="description" id="description" cols="40" rows="5">$myrow[description]</textarea>
</label>
</p>
<p>
<label>Введите полный текст урока с тэгами
<textarea name="text" id="text" cols="40" rows="20">$myrow[text]</textarea>
</label>
</p>
<p>
<label>Введите автора урока<br>
<input value="$myrow[author]" type="text" name="author" id="author">
</label>
</p>
<input name="id" type="hidden" value="$myrow[id]">
<p>
<label>
<input type="submit" name="submit" id="submit" value="Сохранить изменения">
</label>
</p>
</form>
HERE;
}
?>
<div class="breadcrumbs">Навигация</div>
</div>
<div id="clear"></div>
<?php include ("blocks/footer.php"); ?>
</div>
</html>
</body>
Пожалуйста помогите :(
Спустя 52 минуты, 51 секунда (11.11.2011 - 03:30) imbalance_hero написал(а):
Guest
Я ссылку давал? Нет? Переучивайся с Попова: irbis-team.com , поищи там, в разделе "видео-курсы" есть важные пункты, которые надо исправить.
printf -> echo
array -> assoc
mysql_query($query) or die(mysql_error());
Я ссылку давал? Нет? Переучивайся с Попова: irbis-team.com , поищи там, в разделе "видео-курсы" есть важные пункты, которые надо исправить.
printf -> echo
array -> assoc
mysql_query($query) or die(mysql_error());
Спустя 8 часов, 47 минут, 8 секунд (11.11.2011 - 12:17) Guest написал(а):
извеняюсь, разбобрался, спс