@HeartOfProgrammer

Как занести данные которые были получены через $_POST метод?

Есть 2 файла, add_news.php и processing.php.

в add_news.php:

<div class="form_add_text">
		<h2>Форма добавления новости</h2>
	</div>
	<div class="add_news">
			<form method="post" action="processing.php">
				<div class="add_title_news">
					<input type="text" name="title_news" maxlength="75" style="width: 990px; height: 24px">
				</div>
				<div class="editor_main">
					<textarea name="first_content"></textarea>
				</div>
    			<div class="info_edit">
					<h3>Полное описания новости</h3>
				</div>
    			<div class="editor_secondary">
    				<textarea name="second_content"></textarea>
    			</div>
    			<input type="submit">
			</form>
	</div>


в processing.php:
$id = $_POST['id'];
	$title = $_POST['title'];
	$firstDescription = $_POST['first_description'];
	$secondDescription = $_POST['second_description'];
	$added = $_POST['added'];
	$date = $_POST['date'];

	$sql = "
		INSERT INTO news(id,title,first_description,second_description,added,date)
		VALUES($id,$title,$first_description,$second_description,$added,$date)
	";

	if(!mysqli_query($connection,$sql)) {
		echo "Ошибка при добавлении данных!";
	}else {
		echo "Данные добавлены!";
	}

	$result = mysqli_query($connection,$sql);

	if(isset($_POST['title_news']) && !empty($_POST['title_news'])) {
	}else{
		echo "Заполните названия новости" . "</br>";
	}

	if(isset($_POST['first_content']) && !empty($_POST['first_content'])) {
	}else{
		echo "Заполните описания новости" . "</br>";
	}

	if(isset($_POST['second_content']) && !empty($_POST['second_content'])) {
	}else{
		echo "Заполните полное описания новости";
	}

В моем понимании: Заполнение визуального редактора "TinyMce", а после нажатия кнопки submit все данные отправляются через $_POST метод на страницу processing.php. После там все обрабатывается, и заносится в базу данных. Но данная процедура у меня не получилась. Прошу ткнуть носом на проблему.
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
1. Возможно в БД одно/несколько полей требует обязательного заполнения, а данные приходят не полностью => необходима проверка данных перед добавлением в БД
2. Поле Id, скорее всего, в БД имеет параметр AUTO_INCREMENT, который в свою очередь не даст поставить туда любое значение.
3. Перед тем, как использовать данные из входящих параметров (GET, POST, COOKIE) необходимо их, обязательно, проверять. Удалять спец. символы.
4. У вас, при проверке на ошибку запроса уже выполняется запрос. То есть в коде он выполнится дважды.
5. Некоторые имена полей для ввода в html не совпадают с индексами в $_POST массиве.

p.s. очень легко проверить, какие параметры пришли, а какие нет следующим образом:
print_r($_POST);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@TheMrViper
1 Проверка входящих данных после добавления в бд? круто
2 2х кратное добавление в дб, тоже не плохо.
3 Получение ид из post еще лучше.

ответы:
1 данные нужно проверять перед добавлением в бд
2
if(!mysqli_query($connection,$sql)) {
    echo "Ошибка при добавлении данных!";
  }else {
    echo "Данные добавлены!";
  }

  $result = mysqli_query($connection,$sql);

заменить на:
if(!mysqli_query($connection,$sql)) {
    echo "Ошибка при добавлении данных!";
  }else {
    echo "Данные добавлены!";
  }

3 Ид должна выдавать сама БД, а не вы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы