私は他の答えを調べてみましたが、私が遭遇するのは、比較演算子を間違った方向に配置している人々だけです。ここではそうではありません。以下は私のコードの簡略版です。このコードはエラーを返さないはずです。
文字列(この場合はパスワード)が最小の長さの要件を満たしているかどうかを判断しようとしています。ただし、入力した文字列に関係なく、エラーが発生することはありません。デバッグの手段として、strlen()に単純な文字列 "hi"を入力して、それよりも小さい場合はエラーを表示するように指示しました。 6バイト長。しかし、それでも私が望んでいたようには戻らないでしょう。
何か馬鹿げたものが欠けているような気がします。ヘルプ?
<?php
$Email = mysql_real_escape_string(Trim($_POST['Email']));
$Password = "hi";
// check fields
$error = false;
if(empty($Email)) $error = true;
if(strlen(utf8_decode($Password)) < 6) $error = true;
if($error != false) header("Location: index.php?error=true");
// store user to database
$success = insert_dbUser(new User($Email, $Password));
// redirect to success page
if ($success) {
header("Location: index.php?success=true");
}
else header("Location: index.php?error=existinguser");
?>