<?php
$db = mysql_connect ('localhost', 'nz', 'zs');
mysql_select_db ('nz', $db);
$result = mysql_query ('SELECT * FROM captcha', $db);
$myrow = mysql_fetch_array ($result);
if (isset($_POST['title']) && ($_POST['title'] != '')) {$title = $_POST['title'];}
if (isset($_POST['text']) && ($_POST['text'] != '')) {$text = $_POST['text'];}
if (isset($_POST['image']) && ($_POST['image'] != '')) {$image = $_POST['image'];}
if (isset($_POST['date']) && ($_POST['date'] != '')) {$date = $_POST['date'];}
if (isset($_POST['author']) && ($_POST['author'] != '')) {$author = $_POST['author'];}
if (isset($_POST['captcha_check']) && ($_POST['captcha_check'] != '')) {$captcha_check = $_POST['captcha_check'];}
?>
<html>
<head>
<link href = "style.css" rel = "stylesheet" type = "text/css">
<title></title>
</head>
<body>
<?php
if (isset($title) && isset($text) && isset($date) && isset($author))
{$result = mysql_query ("INSERT INTO add_news (title, text, image, date, author) VALUES ('$title', '$text', '$image',
'$date', '$author')", $db);
if ($result == 'true')
{echo 'Ваша новость добавлена ';}
}
else
{print <<< HERE
<p>Добавте пожалуйста свою новость</p>
<form name="news_form" action="add_news.php" method="POST">
<p>Введите название:<input name="title" type="text"></p>
<p>Введите текст:<textarea name="text" cols="70" rows="30"></textarea></p>
<p>Вставте изображение:<input name="image" type="file"></p>
<p>Введите дату:<input name="date" type="text"></p>
<p>Введите автора:<input name="author" type="text" maxlength="41" size="41"></p>
<p>Что изображено на картинке? $myrow[image]<input name="captcha_check" type="text" maxlength="41" size="41"></p>
<input name="news_adder" type="submit" value="Добавить">
</td>
HERE;
}
?>
Спустя 3 минуты, 15 секунд (17.12.2010 - 17:33) waldicom написал(а):
Просьба во второй раз: давайте своим темам нормальные названия.
Спустя 8 минут, 12 секунд (17.12.2010 - 17:41) kovaldm написал(а):
Добавляются после сабмита или после Ф5?
Спустя 4 минуты, 28 секунд (17.12.2010 - 17:46) SnowWind написал(а):
добавляются после сабмита!
waldicom
Вот как можно было назвать эту тему?! Что вы ко мне опять прицепились? Написал бы я mySQL ... опять было бы не правильно н-ое. М.б перед созданием темы, мне нужно утверждать её название у вас?
waldicom
Вот как можно было назвать эту тему?! Что вы ко мне опять прицепились? Написал бы я mySQL ... опять было бы не правильно н-ое. М.б перед созданием темы, мне нужно утверждать её название у вас?
Спустя 16 минут, 34 секунды (17.12.2010 - 18:02) kovaldm написал(а):
Цитата |
И добавляются пустые значения |
У тебя там проверка неправильная.
if (isset($title) && isset($text) && isset($date) && isset($author))
...
Спустя 13 минут, 56 секунд (17.12.2010 - 18:16) SnowWind написал(а):
ничё не понимаю, а почему она не правильная?
....если существет переменная такая то и существует переменная такая то....и т.д....то добавляй в базу....а если нет...то опять форма.....
....если существет переменная такая то и существует переменная такая то....и т.д....то добавляй в базу....а если нет...то опять форма.....
Спустя 17 минут, 43 секунды (17.12.2010 - 18:34) Elfist написал(а):
if(empty($title))
echo 'Заполнены не все поля';
else
mysql_query () и т.д
echo 'Заполнены не все поля';
else
mysql_query () и т.д
Спустя 2 часа, 36 минут, 42 секунды (17.12.2010 - 21:11) quickxyan написал(а):
Цитата (kovaldm @ 17.12.2010 - 15:02) |
ничё не понимаю, а почему она не правильная? ....если существет переменная такая то и существует переменная такая то....и т.д....то добавляй в базу....а если нет...то опять форма..... |
ну все правильно - переменная есть, но она пустая.
так что как сказано выше проверяй на empty и пустые не будут добавляться
Спустя 24 минуты, 49 секунд (17.12.2010 - 21:36) mako написал(а):
мож вместо
...$_POST['author'] != ''...используй
!empty($_POST['author'])
Спустя 1 час, 9 минут, 2 секунды (17.12.2010 - 22:45) inpost написал(а):
SnowWind
isset проверяет на существование, а не пустоту! Включен register_globals, значит код одинаково воспринимает как $_POST['name'] так и $name. В связи с этим появляется бардак, когда не находит он $name, он смотрит и видит $_POST['name'].
isset проверяет на существование, а не пустоту! Включен register_globals, значит код одинаково воспринимает как $_POST['name'] так и $name. В связи с этим появляется бардак, когда не находит он $name, он смотрит и видит $_POST['name'].
Спустя 33 минуты, 17 секунд (17.12.2010 - 23:18) SnowWind написал(а):
quickxyan
Цитата |
ну все правильно - переменная есть, но она пустая. так что как сказано выше проверяй на empty и пустые не будут добавляться |
да как так она не м.б пустой т.к создаётся она при этом условии -
($_POST['title'] != ''))иначе бы её уж совсем небыло и проверять было нечего!
Я понимаю что isset определяет существование, но в моём случае, переменные создались при отсутствии пустоты.
Т.е выход либо изменить имена переменных, определяемых из глобальных массивов, либо отключить register_globals? Или в условия добавления в БД добавить проверку на пустоту?
Спустя 19 минут, 57 секунд (17.12.2010 - 23:38) inpost написал(а):
А ты не инициализируй впустую переменные, ты делай сразу проверку на пустоту:
if(!empty($_POST['name']))
{
$result = mysql_query...
}
Спустя 1 час, 4 минуты, 34 секунды (18.12.2010 - 00:42) SnowWind написал(а):
ясно щас испробую )
А проверку что бы потом вывести вы не ввели это и вы не ввели вот это тоже лучше использовать empty? на каждую переменную? А патом с помощью стилей всё подогнать в кучу?
Или с помощью if///elseif///else? Или есть более рациональный способ?
А проверку что бы потом вывести вы не ввели это и вы не ввели вот это тоже лучше использовать empty? на каждую переменную? А патом с помощью стилей всё подогнать в кучу?
Или с помощью if///elseif///else? Или есть более рациональный способ?
Спустя 37 минут, 21 секунда (18.12.2010 - 01:20) inpost написал(а):
if(!empty($_POST['name']))
$error['name'] = 'Enter your name';
...
if(count($error) == 0)
{
mysql_query();
header("Location: index.php");
}
?>
<input type="text" name="name" value="<?php echo @$_POST['name']; ?>" /> <?php echo @$error['name']; ?>
Спустя 12 часов, 17 минут, 55 секунд (18.12.2010 - 13:38) SnowWind написал(а):
а что вот это
такое?
Считаем сколько элементов в массиве, а если 0 то? Что это значит?
if(count($error) == 0)
{
mysql_query();
header("Location: index.php");
}
такое?
Считаем сколько элементов в массиве, а если 0 то? Что это значит?
<?php echo @$_POST['name']; ?>" /> <?php echo @$error['name']; ?>???
Спустя 5 минут, 48 секунд (18.12.2010 - 13:43) kovaldm написал(а):
Цитата |
Что это значит? |
$error заполняется в случае возникновения ошибок. Если он пустой, значит ошибок не было и можно продолжать выполнение скрипта.
Спустя 28 минут, 49 секунд (18.12.2010 - 14:12) hellmin написал(а):
Там же написано
В случае хоть одного не правильно заполненного поля появится ошибка и вот тут
она не пройдет))
И можно будет потом обработать массив и вывести все ошибки на экран.
if(!empty($_POST['name']))
$error['name'] = 'Enter your name';
В случае хоть одного не правильно заполненного поля появится ошибка и вот тут
if(count($error) == 0)
она не пройдет))
И можно будет потом обработать массив и вывести все ошибки на экран.