所以我试图简单地将一个数据字段从表单发送到php文件。下面是我在表格中的表格。我还发布了我的PHP代码。它一直返回$ username为null。我试过post / get,这似乎并不重要。
HTML:
<form action='http://k9minecraft.tk/scripts/adduser.php' method='POST'>
<table>
<tr>
<td>First Name:</td>
<td><input type='text' id='first'></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type='text' id='last'></td>
</tr>
<tr>
<td>Email:</td>
<td><input type='text' id='email'></td>
</tr>
<tr>
<td>Minecraft Name:</td>
<td><input type='text' name='user'></td>
</tr>
<tr>
<td><input type='submit' value='Send'></td>
<td><input type='reset' value='Reset'></td>
</tr>
</table>
</form>
PHP:
<?php
print_r($_POST);
if(isset($_POST['user'])){
$username = $_POST['user'];
echo $username;
echo 'username is not null';
}
?>
答案 0 :(得分:7)
问题是你的所有输入都有id而不是名字。 id由JavaScript使用。这些名称用于发布。
将其更改为:
<form action='http://k9minecraft.tk/scripts/adduser.php' method='POST'>
<table>
<tr>
<td>First Name:</td>
<td><input type='text' name='first' id='first'></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type='text' name='last' id='last'></td>
</tr>
<tr>
<td>Email:</td>
<td><input type='text' name='email' id='email'></td>
</tr>
<tr>
<td>Minecraft Name:</td>
<td><input type='text' name='user'></td>
</tr>
<tr>
<td><input type='submit' name='Send' value='Send'></td>
<td><input type='reset' name='Rest' value='Reset'></td>
</tr>
</table>
答案 1 :(得分:4)
此代码正常运行。您需要添加一些条件,检查是否已发布$username
。
类似的东西:
if(count($_POST)){
$username ='';
if(isset($_POST['user'])){
$username = $_POST['user'];
if ($username==null || !$username)
echo 'username is null';
echo strlen($username);
echo $username;
}
}
答案 2 :(得分:1)
尝试以确定该字段是否由公式发布:
isset($_POST['user'])
我认为即使$username==null
真的等于空字符串,$username
也会成立。
答案 3 :(得分:0)
人们通常会这样做:
if(isset($_POST['user']) && !empty($_POST['user'])) {
$user = $_POST['user'];
}
注意:== null
不适用于空字符串。见here。
您还需要为您的其他输入字段添加名称属性。
答案 4 :(得分:0)
尝试使用此
<?php
if(isset($_POST['submit'])){
$msg = "";
/* Validate post */
if(isset($_POST['user'])==""){
$msg .= "username is null";
}
/*End Validate*/
if($msg==""){
$user = $_POST['user'];
}else{
echo $msg;
}
}
?>