我在尝试从我正在使用的数据库中删除某个成员时遇到了一些麻烦,我认为它没有正确获取用户名。这是我用于HTML的表单
<?php
//begin our session
session_start();
?>
<html>
<head>
<title>Welcome</title>
</head>
<form action="deleteUser.php">
<p>
<center><label for="Username">Enter username to delete</center></label>
<center><input type="text" id="Username" name="Username" value="" maxlength="20" /></center>
<center><input type="submit" value="Delete Member"></center>
</p>
</form>
</body>
</html>
这是处理删除本身的代码:
<?php
//begin our session
session_start();
//Check if username, password have been sent
if((!filter_input(INPUT_POST, 'Username')))
{
echo 'Please enter a valid username';
}
else
{
//Enter the valid data into the database
$memberUsername = filter_input(INPUT_POST, 'Username', FILTER_SANITIZE_STRING);
echo $memberUsername;
$SQLhostname = "****";
$SQLusername = "****";
$SQLpassword = "****";
$databaseName = "****";
try
{
echo "in the try block";
// Create connection
$conn = mysqli_connect($SQLhostname, $SQLusername, $SQLpassword)
or die("Unable to connect MySQL");
$db_selected = mysqli_select_db($conn, $databaseName)
or die("Could not select database");
$deleteMember = "DELETE FROM customers
WHERE name =
'$memberUsername'";
$result = $conn->query($deleteMember);
if(! $result ){
die('Could not delete member: ' . $conn->error);}
else{
echo "Member deleted <br/>";
}
mysqli_close($conn);
}
catch (Exception $ex)
{
//To be added
}
}
?>
问题是它总是进入if语句并要求我假设没有设置的有效用户名。
答案 0 :(得分:2)
将method
属性添加到form
。
<form action="deleteUser.php" method="post">
<!--^^^^^^^^^^-->
<p>
<center><label for="Username">Enter username to delete</center></label>
<center><input type="text" id="Username" name="Username" value="" maxlength="20" /></center>
<center><input type="submit" value="Delete Member"></center>
</p>
答案 1 :(得分:1)
就像一个快速的FYI:
每当表单中的方法被省略时,它默认为GET并且您使用INPUT_POST
因此您应该使用INPUT_GET
或添加post方法,即:{{1 }}。
参考手册:
另外,为了您的安全性,您的代码是开放的SQL注入。 use mysqli
with prepared statements或PDO with prepared statements,他们更安全。
答案 2 :(得分:0)
在表单标签中添加&#34;方法&#34;属性:
<form ... method="POST">
在PHP脚本中,您可以在变量$ _GET中找到输入值:
$ _ GET [用户名&#39;&#39;]
凯文