如何在php中验证表单中的用户名文本字段

时间:2015-04-20 13:15:17

标签: php forms

我想检查用户名文本字段只能输入字母我怎么能用PHP做?另外在密码区域输入字母和数字。当我单击Register按钮时,它显示成功注册,虽然表单未填写,我还放了一个else语句来显示填写所有字段的消息。

表格

<form action = "register.php" method = "POST">


    Username: <input type="text" name="username" > <br /><br/>
    Password: <input type="password" name="password"> <br /><br/>
    Confirm Password: <input type="password" name="repassword"> <br /><br/>

    Type:
    <select name="type">
    <option value="Choose">Please select..</option>
    <?php
    $sql=mysql_query("SELECT type FROM type");

    while($row=mysql_fetch_array($sql)){

        echo "<option value='".$row['type']."'>".$row['type']."</option>";
    }
    ?>
    </select><br/><br/>

    <input type="submit" value="Register" name="submit">
</form>

注册码

<?php

require('connect.php');

$username=$_POST['username'];
$password=$_POST['password'];
$repass=$_POST['repassword'];
$type=$_POST['type'];

if (isset($_POST['submit'])){

    //input only letters in username textfield

    if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['type'])){

        $sql = "INSERT INTO users (username, password, type) VALUES ('$username', '$password', '$type')";

        $result = mysql_query($sql);

        echo "Successful Registration";
    }

    if(!$result){

        $msg = "User Failed to be Registered.";  
    }
}

else{
     echo "Please fill all the fields.";
}

?>

1 个答案:

答案 0 :(得分:0)

不使用isset()函数验证用户输入。而是使用!empty()。 因为如果POST变量是空字符串,isset()也返回true。

另外要小心你的SQL-Query(SQL-Injection),你必须转义$ _POST输入。 您可以使用此代码

$username = real_escape_string ($_POST['username']);
$password = real_escape_string ($_POST['password']);
$type = real_escape_string($_POST['type']); //if type is int, use intval() to escape

顺便说一句:你没有根据遣返词验证密码。