ゆっくりとPHPを学びます。私が思う本の中の一点で自分自身を見つけ出すことは、実践的なコーディングの例として有用です。私は長さと複雑さのためにユーザーのパスワードを確認したい。はい、私は長いと複雑なパスワードの余地が多いことを理解します。この問題は、私がゆっくりと学ぶのに十分です。要件は、正確に9文字と1記号です。その他の文字はすべて使用できます。パスワードが要件を満たしていないときにエラーメッセージが返されない理由を確かめてください。どんな援助も高く評価されており、これは恐らく死んだ馬であることを知っています。他の答えのほとんどは、私が望むより複雑ですが、最終的にそこに着くでしょう。建設的にコメントしてください...ありがとう!ユーザにエラーメッセージが表示されない
<?php
$pwd = filter_input(INPUT_GET, 'password');
$errmsg = "";
//function with 2 parameters/one passed by reference
function passVal($pwd) {
$errmsg = null;
if (!preg_match('/^(?=.*[@]){9}$/', $pwd)) {
$errmsg = "Password must contain exactly 9 characters and one @ sign.";
}
if (strlen($pwd == 9) && preg_match('/(?=.*[@])/', $pwd)) {
$errmsg = "Contains exactly 9 characters and there is at least one @ sign. Password is good";
}
return $errmsg;
}
?>
HTML
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<header><h1>Password Check</h1></header>
<form action="" method="get">
<h3>Enter a password in the box.</h3><br>
<p>The password must be exactly 9 characters and include at least
one @ sign. All other characters are allowed.</p>
<p>Enter a password<input type="text" name="password"></p>
<p><button type="submit" formmethod="get" name="button">Check Password</button></p>
<p><?php echo $errmsg; ?></p>
</body>
</html>
正確にあなたが "passVal" 関数を呼び出していますか? – dquinonez
実際には、passVal()関数を実際に呼び出すようには見えません。 – WillardSolutions
あなたはどこでも$ _GETから投稿されたパスワードを読んでいません。 – WillardSolutions