2012-02-02 2 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"を入力し、フォームと同じページにそのコードを入れてください。 、<form method="post" action="'.$self.'">(PHP括弧内のページの一番上に置く)

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

それはあなたがそれを設定する方法によって異なりいずれかを使用します。

フォーム:あなたはこのような何かを行うことができますPOSTまたはGET、私はあなたに使い方を教えてくれません。

ここから、変数などを操作できます。

+0

感謝を! – Lloydworth

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 
    } 
} 

?> 
関連する問題