0

私はサイトにWordpressを使用しており、フロントエンドにユーザー登録フォームを追加しましたがvalue、ユーザーがボックスをクリックする前に、属性を使用して事前定義されたテキストを入力しています。

ただし、ユーザーがユーザー名ボックスをクリックして選択したユーザー名を入力しない限り、フォームを送信しないようにする必要があります。これにより、そこにあったデフォルトの表現が変更されます。

今のところ使っています

if ( !$userdata['user_login'] )
    $error = __('A username is required for registration.', 'frontendprofile');
elseif ( username_exists($userdata['user_login']) )
    $error = __('Sorry, that username already exists!', 'frontendprofile');

これは、ユーザー名が入力されているかどうかをチェックしますが、ここにデフォルト値がすでにあるため、この検証は機能していません。これを変更して、ユーザー名がデフォルトから変更されない限りフォームが送信されないようにする方法はありますか?value

4

1 に答える 1

0

これを回避する方法はたくさんあります。1つは、送信された値を確認することです。例(「defaultValue」が不正なuser_loginであると想定)

if ( !$userdata['user_login'] || 
     $userdata['user_login'] == "defaultValue" || 
     !isNotEmpty($userdata['user_login']))
    $error = __('A username is required for registration.', 'frontendprofile');
else if ( username_exists($userdata['user_login']) )
    $error = __('Sorry, that username already exists!', 'frontendprofile');

function isNotEmpty($input) 
{
    $stringTemp = $input;
    $stringTemp = trim($stringTemp);

    if($stringTemp !== '')
    {
         return true;
    }

    return false;
}

注:PHPにはすでに空の関数もあります。これは単なる例の方法です。

フィールドをチェックするためにJavascript検証を追加する必要があります。SQLインジェクションなどからすでに身を守っていると思います。

お役に立てれば

于 2012-10-02T14:51:30.897 に答える