我想检查用户名文本字段只能输入字母我怎么能用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.";
}
?>
答案 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
顺便说一句:你没有根据遣返词验证密码。