0

現在、コントローラーを使用して基本的なフォームをセットアップしており、ユーザーがフォームを送信すると、次の関数が実行されます。

$scope.create = function(email, username, password) {
MyService.get({
    action: 'create',
    email: email,
    username: username,
    password: password
}, function(data) {
    // Success callback
});
};

問題は、ユーザーが空のフィールドでフォームを送信すると、このリクエストを受信した PHP がそのフィールドに対して未定義のインデックス エラーをスローすることです。

例: ユーザーが電子メールを入力せず、送信を押した。$_GET['email']は未定義のインデックスであるため、php はエラーをスローします。

フィールドが空の場合にリソースが空の値を送信するようにするにはどうすればよいですか? array_key_exists( PHP のすべてにチェックなどを追加するよりも、この方法をお勧めします)

4

1 に答える 1

1

次のように、空の文字列をフォールバック値として割り当てるだけです。

MyService.get({
    action: 'create',
    email: email || '',
    username: username || '',
    password: password || ''
}), // ..

ただし、クライアント側の検証のみに依存することは、通常、悪い習慣です。これが、悪意のある者が要求を食い物にして道に迷うことのない内部プロジェクトであることを願っています. それ以外の場合isset|emptyは、サーバー コードで使用することをお勧めします。

于 2013-05-31T23:01:31.520 に答える