我有一个注册表形式,我使用脚本将一个位置转换为它的纬度和经度,我使用lorenzell/Geocoded Autocomplete(https://github.com/lorenzsell/Geocoded-Autocomplete/blob/master/README)
它就像一个符咒,如果我填写地址,然后在我的表单中输入id用正确的坐标填充filter_ lat和filter_。
所以我希望,如果我把它发送到register.php中的注册表中,它会看到这些坐标。但事实并非如此。。其他所有内容都已定义,只有filter_lat和filter_lang parent。尽管这些都是自动填写的,但这与它有关系吗?
<form method="POST" action="register.php">
<table>
<tr>
<td>
Email: <br/><input type="email" name="email" class="focussed_input" size="15" /><br>
</td>
<td>
Password: <br/><input type="password" name="password" class="focussed_input" size="15" /><br />
</td>
</tr>
<tr>
<td>
Name:<br/><input type="text" name="name" class="focussed_input" size="15" /><br />
</td>
<td>
Age: <br/><input type="text" name="age" class="focussed_input" size="15" /><br />
</td>
</tr>
<tr>
<td>
Address:<br/><input type=text id="mapaddress" class="focussed_input" /><br/>
</td>
<td>
<input type="text" id="filter_lat" style="" />
<input type="text" id="filter_lng" style="" />
<input type="submit" value="I'm ready!" class="button_inverse" style="padding-left: 23px; padding-right:23px; margin-top:11px;" />
</td>
</tr>
</table>
</form>
这就是形式,和register.php代码:
<?php
echo $_POST['filter_lat'];
echo "include";
include("config.php");
echo "test";
if(isset($_POST["email"])&& isset($_POST["password"]) && isset($_POST["name"]) && isset($_POST["age"])){
echo"na isset";
$email = htmlentities(mysql_real_escape_string($_POST['email']));
if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE email ='$email';")) > 0){
echo "email already used";
}
else{
$password = hash('sha512', $salt . mysql_real_escape_string($_POST['password']));
$name = htmlentities(mysql_real_escape_string($_POST['name']));
$age = htmlentities(mysql_real_escape_string($_POST['age']));
$lat = htmlentities(mysql_real_escape_string($_POST['filter_lat']));
$lng = htmlentities(mysql_real_escape_string($_POST['filter_lng']));
$id = '';
mysql_query("INSERT INTO users (id, email, password, name, age, lat, lng, type) VALUES ('$id', '$email', '$password', '$name', '$age', '$lat', '$lng', '0');") or die(mysql_error());
echo "Account creation successful!";
}
}
?>
以前有人用过洛伦兹的自动补射器吗?或者有人知道如何解决这个问题?
提前感谢!
将filter_lat和filter_lang的id更改为name。它应该看起来像这样-
<input type="text" name="filter_lat" style="" />
<input type="text" name="filter_lng" style="" />
您正在服务器端使用$_POST检索数据,但无法检索没有名称的数据。所以基本上,您试图检索不存在的数据filter_lat。
属性id主要用于CSS和javascript/jQuery
问题是他们没有定义"name"属性:
<input type="text" id="filter_lat" style="" />
<input type="text" id="filter_lng" style="" />
更改为:
<input type="text" id="filter_lat" style="" name="filter_lat"/>
<input type="text" id="filter_lng" style="" name="filter_lng"/>