我有一个注册表单,我使用脚本将位置转换为它的纬度和经度,我正在使用lorenzsell / Geocoded-Autocomplete(https://github.com/lorenzsell/Geocoded-Autocomplete/blob/主/自述)
它就像一个魅力,如果我填写地址,然后我的表单中的输入字段与id filter_lat和filter_lng用正确的坐标填充。
所以我希望如果我把它寄给位于register.php的注册表格, 它会看到这些坐标。但它没有..其他一切都被定义,只有filter_lat和filter_lng不是。虽然这些是自动填写的,但这是否必须对它做些什么?
<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!";
}
}
?>
之前有人使用过lorenzsell的自动填充程序吗?或者有人知道如何解决这个问题?
提前致谢!
答案 0 :(得分:1)
将filter_lat和filter_lng的id更改为name。看起来应该是这样的 -
<input type="text" name="filter_lat" style="" />
<input type="text" name="filter_lng" style="" />
您正在服务器端使用$ _POST检索数据,但无法检索没有名称的数据。所以基本上,你试图检索不存在的数据filter_lat。
属性id主要用于CSS和javascript / jQuery
答案 1 :(得分:0)
问题是他们没有定义“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"/>