0

私は他の答えを調べてみましたが、私が遭遇するのは、比較演算子を間違った方向に配置している人々だけです。ここではそうではありません。以下は私のコードの簡略版です。このコードはエラーを返さないはずです

文字列(この場合はパスワード)が最小の長さの要件を満たしているかどうかを判断しようとしています。ただし、入力した文字列に関係なく、エラーが発生することはありません。デバッグの手段として、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");
?>
4

2 に答える 2

3

ロケーションヘッダーを送信した後、必ずスクリプトを終了してください。

if ($error) {
    header("Location: index.php?error=true");
    exit();
}
于 2013-01-13T02:59:41.280 に答える
0

'if'ステートメントの構文を確認します。2つにはコロン':'も中括弧'{//dostuff}'もありません。elseは、「else」が中かっこで囲まれている必要があります。私は間違っているかもしれませんが、あなたが持っている珍しい構文は私にとって際立っているものです。終了ステートメントの必要性と同様に。

于 2013-06-05T13:35:28.363 に答える