PHP表单提交,提醒

时间:2016-06-28 19:58:30

标签: php refresh blogs submission

第一次在这里发帖,所以我为任何坏习惯道歉。 我最近开始了关于php的在线youtube教程以及如何创建博客。 我最终忙于其他的事情,并回来尝试完成我开始的事情,发生了两件事。 1:我的教程已经删除了youtube(必须是一个版权问题),其次我完全忘记了使用的方法。我假设如果我是一个经验丰富的编码员,这很容易破译,但我现在尝试了几天后没有运气。

此代码适用于我的博客的提交表单。如果我手动将我的HTML输入到SQL数据库中,博客正在工作,但如果我使用此表单,我似乎得到的只是刷新提交页面,所有信息都消失了。没有信息添加到数据库中。

有人有想法吗?我在网站上搜索得很好,但由于我对我实际搜索的内容缺乏了解而陷入了死胡同(很多关于javascript的解决方案)

所有帮助将不胜感激。

此致

SGT Noob

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

2 个答案:

答案 0 :(得分:0)

试试这个

从你的改变到

class TicketManager(models.ModelManager):
     def get_queryset():
         return super(TicketManager, self).get_queryset().annotate(create_time=Min('records__create_time')).order_by('create_time')

class Ticket(models.Model):
     .....
     objects = TicketManager

您忘记输入名称属性

php

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

注意我还将您的SQL语句更改为

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


          }




      }

      ?>

注意表格字段的后退标记

答案 1 :(得分: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`; --在日期字段中(&#34;博客&#34;是您的博客帖子表的名称)。这将是非常灾难性的,不是吗?

因此,当您处理输入数据时,要么使用mysqli包的prepare和bind方法,要么首先通过mysqli_real_escape_string()函数传递字符串。