[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не правильно работает проверка на добавление ново
Гость_Дмитрий
Ребят помогите умоляю, 3 дня блин мучаюсь..
Вот код


<?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);

Спустя 1 минута, 20 секунд (9.11.2011 - 15:25) Guest написал(а):
user posted image

Вот таблица

Спустя 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 , и посмотри массив, чего не хватает? smile.gif

Спустя 20 минут (9.11.2011 - 17:56) Zerstoren написал(а):
Гость если хочешь стать программистом после курсов Попова, то все это надо сначала разобрать одному, а потом еще прочитать пару умных книг, чтоб понять какое говно тебе кормил Попов.

Я сам прошел через это и понял что учить с Попова была ошибка и пришлось переучиваться.


Сцуко - Попов как IE6, вроде работает но как-то через жопу.

Спустя 22 минуты, 21 секунда (9.11.2011 - 18:18) m4a1fox написал(а):
Zerstoren
Цитата
Сцуко - Попов как IE6, вроде работает но как-то через жопу.
biggrin.gif

Спустя 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

Спустя 8 минут, 12 секунд (9.11.2011 - 18:46) Guest написал(а):
все поля выводят информацию, ту что я вводил, дата ток чета матюкаеться, блина))

Спустя 2 минуты, 17 секунд (9.11.2011 - 18:48) imbalance_hero написал(а):
Guest
А почему не через print_r ? Так было бы нагляднее smile.gif

Ну что, ошибка - $_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 ? Так было бы нагляднее smile.gif

Ну что, ошибка - $_POST['date'] не существует. А почему не передалась? Смотрим свою форму...

через принт р не умею, нада почитать как выводить ей smile.gif
<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)

эх, я всё со своими проблемами, вот что вывел я, моей даты ваще нету, голову ломаю почему так

вот форма


<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); потом смог добавить урок, потом убрал строку дампа терь работает без неё, в чем прикол обьясните пожалуйста smile.gif

Спустя 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 типа? smile.gif

2. Какой из аттрибутов тега передаётся при отправке формы?
$_POST['name'] - какой аттрибут передаёт имя ИМЕННО в место name ? smile.gif

Спустя 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 типа? smile.gif

2. Какой из аттрибутов тега передаётся при отправке формы?
$_POST['name'] - какой аттрибут передаёт имя ИМЕННО в место name ? smile.gif

вся проблема из за моей не внимательности, конечно много советов от вас получил, !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());

Спустя 8 часов, 47 минут, 8 секунд (11.11.2011 - 12:17) Guest написал(а):
извеняюсь, разбобрался, спс
Быстрый ответ:

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