【问题标题】:Refreshing or opening page inserts empty data into my database! PHP, From刷新或打开页面会将空数据插入我的数据库! PHP, 从
【发布时间】:2012-06-07 07:38:27
【问题描述】:

我有一个包含多个输入的表单。但是,当我只是简单地加载页面时,一个空白项目会添加到数据库中。 即使我第一次进入网站,清除cookies和所有,它仍然会向数据库添加空数据 这是为什么呢?

<body>





<hr></hr>
<div
style="

margin-left:auto;
margin-right:auto;

width:600px;
"
>
<form method="post" action="admin.php" name="main" id="main">
Post to:
<select name="wheretopost" onchange="testValue(this);" name="select" id="select">
<option value="blog">Blog</option>
<option name='links' value="links">Links</option>
<option value="apparel">Apparel</option>
<option value="goods">Goods</option>
</select>
<div class="productKind" style="padding:10px;">
Mens<input type="radio" name="productKind" id="productKind"  value="Mens">
Womens<input type="radio" name="productKind" id="productKind"  value="Womens">
Kids<input type="radio" name="productKind" id="productKind"  value="Kids">
</div>
<div class="goodsKind" style="padding:10px;">
Stickers<input type="radio" name="goodsKind" id="goodsKind"  value="Stickers">
Incense<input type="radio" name="goodsKind" id="goodsKind"  value="Incense">
Patches<input type="radio" name="goodsKind" id="goodsKind"  value="Patches">
</div>
<br/>
Subject:<br/>
<input type="text" name="title" style="width:100%;" />
<br/>
<br/>
TextArea:<br/>
 <textarea name="txtarea" style="width:100%;" rows="30">
 </textarea>

<center> <input type="submit" style="width:300px;" />
</center>
</form>

</div>






<?php
$type = $_POST["wheretopost"];
$title = $_POST["title"];
$body = $_POST["txtarea"];
$date = date("F j, Y");
?>


<?
$sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');";
mysql_query($sql);

?>


 </body>
</html>

请注意,它发布到的页面是它自己。 (这可能是问题吗?)

【问题讨论】:

标签: php mysql html forms


【解决方案1】:

在插入内容之前检查请求是否已发布:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $type = $_POST["wheretopost"];
    $title = $_POST["title"];
    $body = $_POST["txtarea"];
    $date = date("F j, Y");

    $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');";
    mysql_query($sql);
}

【讨论】:

    【解决方案2】:

    每次加载页面时,都会执行下一个脚本:

    <?php
    $type = $_POST["wheretopost"];
    $title = $_POST["title"];
    $body = $_POST["txtarea"];
    $date = date("F j, Y");
    ?>
    
    
    <?
    $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');";
    mysql_query($sql);
    
    ?>
    

    即使您没有向其发布任何内容,您也会从 $_POST 数组中获得空结果,因此将空记录添加到数据库中。

    【讨论】:

      【解决方案3】:

      可能是因为您的 php 代码只是在 .php 末尾调用?

      <?php
      $type = $_POST["wheretopost"];
      ...
      

      只需将此 php 代码 包装IF 条件之间,例如:

      if (isset($_POST)) {
         .. code
      }
      

      此外,您可以编写特定的 IF 条件,在继续之前只检查输入, 喜欢(把它放在你的表单中):&lt;input type="hidden" name="postit" value="1" /&gt;

      if (isset($_POST) && isset($_POST["postit"]) && $_POST["postit"]==1) {
         .. code
      }
      

      【讨论】:

        【解决方案4】:

        只需使用 if(isset(...

        <?php
        if(isset($_POST["wheretopost"]){
        $type = $_POST["wheretopost"];
        $title = $_POST["title"];
        $body = $_POST["txtarea"];
        $date = date("F j, Y");
        $sql = "INSERT INTO `yoyo`.`posts` (`id`, `type`, `title`, `body`, `date`) VALUES (NULL, '$type', '$title', '$body', '$date');";
        mysql_query($sql);
        }
        ?>
        

        【讨论】:

          【解决方案5】:

          我希望这是你的问题的解决方案

          <?php 
          if(isset($_POST['submit']))
          {
           //     write you php code for insert here
          }else{ ?>
          //       all your html form contents
           <?php } ?>
          

          就是这样……

          【讨论】:

            【解决方案6】:

            此方法适用于我将所有内容置于单一条件:

            if (!$conn)
            {
              die('Could not connect: ' . mysql_error());
            
            $sql = "INSERT INTO emp_info
                   (user_nam,f_fnam,l_nam,ref_id,web,comp,str,city,coun)
                   VALUES ('$myvar','$myvar1','$myvar2','$myvar3','$myvar4','$myvar5','$myvar6','$myvar7','$myvar8')";
                   //echo  $sql; 
                  //echo $html;
                  mysqli_close($conn);  }
            ?>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-07-17
              • 1970-01-01
              • 1970-01-01
              • 2018-01-25
              • 2011-11-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多