3

Register.php には、フォームが含まれています。

<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 には、いくつかの検証を行うコードが含まれています。

<?php

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

?>

無効な電子メール アドレスを入力して [登録を送信] をクリックすると、「電子メールが無効です」というエラー メッセージが表示されます。そこで、ユーザー名フィールドに有効な電子メール アドレスとキーを 5 文字以下で入力して、[登録を送信] をクリックしてみました。しかし、エラーメッセージは表示されません。

コードの何が問題なのかを知ることができますか?
申し訳ありませんが、私はプログラミングとphpの初心者です。
前もって感謝します!

4

3 に答える 3

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 のいずれかを使用します。どちらを使用するかはわかりません。

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

于 2012-02-02T04:08:05.557 に答える
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
  }
}

?>
于 2012-02-02T04:25:34.410 に答える
2

5 文字以下であることを確認する必要がある場合:


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


于 2012-02-02T04:10:18.523 に答える