2012-02-02 38 views
3

在Register.php中,它包含一个表单。PHP - strlen不工作

<html> 
<body> 

<form action="Insert.php" method="post"> 
Email: <input type="text" name="email" /><br/> 
Username: <input type="text" name="username" /><br/> 
<input type="submit" name="Send Registration" value="Send Registration"/> 
</form> 

</body> 
</html> 

在Insert.php中,它包含执行一些验证的代码。

​​

当我输入一个无效的电子邮件地址点击'发送注册',它会显示错误信息“电子邮件无效”。 因此,我试图输入一个有效的电子邮件地址,并在用户名字段输入5个或更少的字符,然后点击'发送注册'。但它不显示错误消息。

我可以知道我的代码有什么问题吗?
对不起,我是编程和php的初学者。
在此先感谢!

回答

3

你的逻辑是错的:

if(!strlen($_POST[username])>=6) 

替换为:*也注意到变量中的“字符(否定器替换为小于双重否定,这是比较容易理解,如果你有通过大量的代码看,你可能会错过

if (strlen($_POST['username'])<6) 

希望这有助于

也是东西,你可能要考虑“!”。 摆脱“insert.php”并将THAT中的代码放入与表单相同的页面中。你可以做这样的事情:

形式:<form method="post" action="'.$self.'">

(放在页面的PHP括号内的顶部)

$self = $_SERVER['PHP_SELF']; 
$username = $_GET['username']; 
$email  = $_GET['email']; 

这取决于你想要的设置,使用POST或GET,我不能告诉你要使用哪个。

从这里,你可以操纵你的变量和任何东西。

+0

感谢您的解释! – Lloydworth 2012-02-02 04:13:16

2

如果您需要检查5点或更少的字符:

 

if(strlen($_POST["username"])<=5) { 
    //show error 
} 

 
2

试试这个:

<?php 

if(!filter_var($_POST[email], FILTER_VALIDATE_EMAIL)) 
{ 
    exit("E-mail is not valid"); 
} 
else 
{ 
    $len = strlen($_POST["username"]); 
    if($len<=5) { 
    { 
    exit("Username should be at least 6 characters"); 
    } 
    else 
    { 
    // Continue other validations 
    } 
} 

?>