自动生成的表单输入字段,不传递给寄存器表单

时间:2012-07-23 13:32:43

标签: php forms autocomplete registration isset

我有一个注册表单,我使用脚本将位置转换为它的纬度和经度,我正在使用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的自动填充程序吗?或者有人知道如何解决这个问题?

提前致谢!

2 个答案:

答案 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"/>