refresh — отправка формы PHP с обновлением

первый раз здесь, поэтому я прошу прощения за любые вредные привычки.
Недавно я запустил онлайн-руководство по YouTube и тому, как создать блог.
Я закончил тем, что занялся другими вещами и вернулся, чтобы попытаться закончить то, что я начал, и 2 вещи произошли. 1: мои учебники были удалены с YouTube (должно быть, это проблема авторского права), а во-вторых, я полностью забыл используемый метод. Я предполагаю, что если бы я был опытным программистом, это было бы легко расшифровать, но мне не повезло после нескольких дней попыток.

Этот код предназначен для отправки формы в мой блог. Блог работает в том смысле, что если я вручную ввожу свой HTML-код в базу данных SQL, но все, что мне кажется, что я получаю, если использую эту форму, — это обновление страницы представления со всей пропавшей информацией. Информация не добавляется в базу данных.

У кого-нибудь есть идея? У меня был хороший поиск по сайту, но я зашел в тупик из-за недостатка знаний о том, что я на самом деле искал (множество решений, касающихся JavaScript)

Вся помощь будет оценена.

Искренне

СГТ Нуб

<?php error_reporting(E_ALL); ini_set('display_errors', 1);
session_start();if (isset($_SESSION['username'])) {

$username = ($_SESSION['username']);

}

else {
header('Location: ../index.php');die();

}

if (isset($_POST['submit']))
if ($_POST['submit']) {

$title = $_POST['Post_Title'];
$content = $_POST['Post_Content'];
$date = $_POST['Post_Date'];

include_once("../admin/connection.php");$sql = "INSERT INTO `posts` (Post_Title, Post_Content, Post_Date)
VALUES         ('$title','$content','$date')";

mysqli_query($dbcon,$sql);

echo "Post has been added to the database";}
else {
header('Location: index.php');
die();

}?><html>
<div>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="//cdn.ckeditor.com/4.5.9/standard/ckeditor.js"></script><title> Insert Post </title>

</head>

<div><body>
<div id= 'cmssubmissionform'>

<form action="" method="post">
<p>
<h1> Post Title</h1>

<input type="text" name= "Post_Title"/>
</p><h1> Post Date</h1>
<input type="text" name= "Post_Date"/>
</p>

<p>
<h1>Post Content </h1>
<textarea name="Post_Content"></textarea>
<script>
CKEDITOR.replace( 'Post_Content' );
</script></p><p>
<input type = "submit" value="submit" />
</p>
</form>

</div>

</div>
</div>

</body>

0

Решение

попробуй это

в вашем от изменения до

    <input type = "submit" value="submit" name="submit"/>

Вы забыли поставить атрибут имени

Php

              <?php error_reporting(E_ALL); ini_set('display_errors', 1);

session_start();
include_once("../admin/connection.php");if (isset($_SESSION['username'])) {

$username = ($_SESSION['username']);

}

else {
header('Location: ../index.php');die();

}

if (isset($_POST['submit'])){$title = $_POST['Post_Title'];
$content = $_POST['Post_Content'];
$date = $_POST['Post_Date'];$sql = "INSERT INTO `posts` (`Post_Title`, `Post_Content`, `Post_Date`)
VALUES ('$title','$content','$date')";if(mysqli_query($dbcon,$sql)){

echo "Post has been added to the database";
}else{

header('Location: index.php');
die();}}

?>

Обратите внимание, я также изменил ваш оператор SQL на

   INSERT INTO `posts` (`Post_Title`, `Post_Content`, `Post_Date`)
VALUES ('$title','$content','$date

Обратите внимание на обратные галочки для полей таблицы

0

Другие решения

замещать

if (isset($_POST['submit']))
if ($_POST['submit']) {

с

if (isset($_POST['submit'])) {

а затем заменить

<input type = "submit" value="submit" />

с

<input type ="submit" name="submit" value="submit" />

Однако на этом этапе я настоятельно рекомендую начать с другого урока.

Кроме того, как уже упоминалось в комментариях, всякий раз, когда вы берете аргументы от пользователя и помещаете их в запрос к базе данных, вы должны быть абсолютно уверены, что строки не манипулируют запросом (представьте, что кто-то написал 0'; DROP TABLE `blog`; -- в поле даты (и «блог» — это название таблицы сообщений в вашем блоге). Это было бы довольно катастрофично, не так ли?

Поэтому, когда вы обрабатываете входные данные, либо используйте методы prepare и bind пакета mysqli, либо пропустите строки через mysqli_real_escape_string() функция первая

0

По вопросам рекламы [email protected]