重新加载网站后自动进入数据库的条目

时间:2014-08-26 01:20:39

标签: php mysql mysqli

(抱歉我的英语不好)

我是PHP的新手。我有两个输入字段。一个用于用户名,另一个用于评论。我的问题是,当我重新加载我的页面时,只是空白的条目我发布了我的表。那是为什么?

现有代码:

$username = $_POST['username'];
$comment = $_POST['comment'];
$db = mysqli_connect('localhost','root','','holycms');

if(!db){
   exit ("Verbindungsfehler:" . mysqli_connect_error());
}

$eintrag = "INSERT INTO feedback (username, comment) VALUES ('$username', '$comment')";
$result = mysqli_query($db, $eintrag);

1 个答案:

答案 0 :(得分:1)

看到您的代码来自POST表单,您可以使用它周围的条件语句。

例如,在您的HTML表单中:

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

然后使用:

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

$username = $_POST['username'];
$comment = $_POST['comment'];
$db = mysqli_connect('localhost','root','','holycms');

    if(!db){
       exit ("Verbindungsfehler:" . mysqli_connect_error());
    }

$eintrag = "INSERT INTO feedback (username, comment) VALUES ('$username', '$comment')";
$result = mysqli_query($db, $eintrag);

}

另一件事是使用empty() I.e。:

确保字段不会留空
if(empty($_POST['username'])){
  echo "Enter a username.";
    exit;
}

isset()。即:

if(isset($_POST['username'])){
  // do something
}

您还可以使用header("Location: http://www.example.com/page.php");

但请确保您的PHP,echo,HTML等之上没有其他内容。


关于你现在的代码:

您目前的代码向SQL injection开放。使用mysqli_* with prepared statementsPDOprepared statements更安全。