(抱歉我的英语不好)
我是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);
看到您的代码来自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()
,即:
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注入。 mysqli_*
和预编译语句一起使用,或者PDO和预编译语句一起使用,更安全。