(抱歉我的英语不好)
我是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);
答案 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 statements或PDO与prepared statements,更安全。