无法从表单中获取用户名(使用"发布)

时间:2014-10-19 14:06:19

标签: php html forms post

首先,我为我的问题的noobish性质道歉。我试图搜索互联网寻求解决方案,到目前为止运气不佳。因此,我转向StackOverflow的优秀人员,因为这通常可以很快解决问题。

我正在尝试为网站创建一个非常简单的登录功能。它由HTML表单和php登录脚本组成。问题是用户名(和密码)似乎没有从表单传递到登录脚本。从表单开始,它看起来像这样:

<form name="loginForm" method="post" action="loginScript.php">
    <table style="position: absolute; top:55%; left:50%; transform: translate(-50%, -50%)">
        <tr>
            <td>Brugernavn:</td><td><input name="edUsername" type="text" id="username" autofocus></td>
        </tr>
        <tr>
            <td>Adgangskode:</td><td><input name="edPassword" type="password" id="password"><br></td>
        </tr>
        <tr>
            <td style ="font-size: 10px;">Glemt din adgangskode?</td>
            <td style="text-align: right;"><input name="Submit" type="submit" value="Log ind"></td>
        </tr>
    </table>
</form>

因此,我在登录脚本中需要的信息是用户名和密码数据。我尝试使用filter_input()获取这些,因为我读到这比$ _POST []更安全。在登录脚本中,它看起来像这样:

// Get username and password from post form
$ed_user = filter_input(INPUT_POST, 'username');
$ed_pass = filter_input(INPUT_POST, 'password');
echo $ed_user;

&#34; echo&#34; part只是一个临时行,用于检查是否确实检索到了用户名。到目前为止情况并非如此。所以我的问题是,我做错了什么?

3 个答案:

答案 0 :(得分:4)

重写为

$ed_user = filter_input(INPUT_POST, 'edUsername');
$ed_pass = filter_input(INPUT_POST, 'edPassword');

使用字段的名称而不是id。

答案 1 :(得分:1)

您的错误在于您使用的是输入的id属性,而不是name

// Get username and password from post form
$ed_user = filter_input(INPUT_POST, 'edUsername');
$ed_pass = filter_input(INPUT_POST, 'edPassword');
echo $ed_user;

或者您可以交换属性,以便保留PHP代码。

至于idname属性之间的差异,请查看another question

答案 2 :(得分:1)

您的姓名错了,请查看以下内容。

$ed_user = filter_input(INPUT_POST, 'edUsername');
$ed_pass = filter_input(INPUT_POST, 'edPassword');