创建的表单显示单击提交时在URL中发送的数据,但发送到服务器的唯一部分是用户名/ $ un。所有表单输入都被忽略。
HTML表单:
<form action="CharacterAdd.php">
<legend>Add Character</legend>
Character Name:<br>
<input type="text" name="Name" >
<br>
Gender:<br>
<input type="text" name="Gender" >
<br>
Age:<br>
<input type="text" name="Age" >
<br>
Hobbies:<br>
<input type="text" name="Hobby" >
<br>
Home:<br>
<input type="text" name="Home" >
<br>
Job:<br>
<input type="text" name="Job" >
<br>
<input type="submit" value="Submit">
<p>
<br>
</form>
PHP代码:
$un = $_SESSION["gatekeeper"];
$a = htmlentities($_POST['Name']);
$b = htmlentities($_POST['Gender']);
$c = htmlentities($_POST['Age']);
$d = htmlentities($_POST['Hobby']);
$e = htmlentities($_POST['Home']);
$f = htmlentities($_POST['Job']);
$g = htmlentities($_POST['$un']);
{
$statement = $conn->prepare("INSERT INTO Characters(Name,Gender,Age,Hobby,Home,Job,username) VALUES (?,?,?,?,?,?,?)");
$statement->bindParam(1,$a);
$statement->bindParam(2,$b);
$statement->bindParam(3,$c);
$statement->bindParam(4,$d);
$statement->bindParam(5,$e);
$statement->bindParam(6,$f);
$statement->bindParam(7,$un);
$statement->execute();
$conn->query ($charac);
答案 0 :(得分:2)
如果您要使用POST
发送表单,请更改方法,默认为GET
<form action="CharacterAdd.php" method="POST">
或者您可以检查$_GET
超全局
$a = htmlentities($_GET['Name']);
$b = htmlentities($_GET['Gender']);
答案 1 :(得分:1)
请在表格标签中声明method =“POST”。
答案 2 :(得分:0)
您可能正在包装PHP代码,如:
if(isset($_POST['submit'])){
...
}
开发人员常常犯了这个错误,因为为了实现这一点,您需要将提交按钮命名为提交,例如<input name="submit" value="Submit form">
。
此外,您需要设置一些表单属性,例如方法和操作。默认方法是get
。如果您希望隐藏在浏览器地址栏中的值,请确保将方法设置为post
,如<form method="post">. You also need to specify a file that will be called using
action`。如果未设置,则将表单所在的文件作为操作。