使用PHP

时间:2016-01-23 12:40:32

标签: php html mysql database

我在PHP中创建了包含表单的代码。在此表单中,用户可以插入通知。为了将数据保存到数据库中,我创建了这个提交按钮,其值为POSTO

但是当我填写表单并单击“提交”按钮时,没有任何反应,数据也不会保存到数据库中。一个 如果我输入一个错误的表名,它就不显示错误。

这是我的数据库:database

这是PHP代码:

<html>
<head>
<title></title>
</head>
<body>
<?php
if( !($database=mysql_connect("localhost","root",""))||!(mysql_select_db("st_login",$database))  )
   print("Could not connect");


//postohen announcement
echo "Post announcement";
print("<form><p> <textarea  cols='40' rows='30'></textarea> </p>
  <input type='submit' name='njoftim' value='Posto'/></form>  ");


if(isset($_POST['njoftim'])){
$njoftim=$_POST['njoftim'];
  $query="INSERT INTO `njoftime` (njoftim) VALUES ('$njoftim')";
    if(!($result=mysql_query($query,$database)))
{
    print("Could not execute query");
    die (mysql_error());//ose error
}

   }

mysql_close($database);
?>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

直接解决问题:您必须在表单中指定post方法:<form method="POST">,否则您的$_POST超全局不会填充表单值。要么是这个,要么使用$_GET,但$_POST更好。

  • POST请求永远不会被缓存
  • POST请求不会保留在浏览器历史记录中
  • POST请求无法加入书签
  • POST请求对数据长度没有限制

而GET请求只应用于检索数据。

另请注意,mysql扩展程序已弃用,请改用mysqliPDO。它更安全。

您的代码也可以使用无尽的SQL注入功能 - 这是DROP DATABASE的一种方式。因此,请清理用户发布的输入。