質問: "/^[a-zA-Z0-9_]+$/"; // 空欄 if ( empty($user_id) ) { array_push( $errorsuser, "ユーザー名を入力してください。" ); // 形式 } else if ( !preg_match ( $pattern, $user_id ) ) { array_push( $errorsuser, "ユーザー名の形式が正しくありません。" ); } } ``` 全角文字などを入力して $errorsuser を print_r($errorsuser) しても何も表示されません。 単純に print なら表示されるのですが、どのように記述したらよいのでしょうか。教えていただけますと幸いです。 よろしくお願いいたします。
回答: 細かいところですが, * `$_POST`に関する未定義や型のチェックがやや不十分 * 正規表現の`$`は末尾に改行コードを許してしまうので`\z`を使うべき * 正規表現の`[a-zA-Z0-9_]`は`\w`で十分 * ユーザIDに文字列長制限がない * `empty`は文字列の`"0"`を空とみなしてしまうので,文字列に対しては使うべきでない * `array_push`は冗長で`[]`演算子を使うだけで十分 以上の点が気になりました.これに配慮して書き直すと ``` ユーザID登録 ユーザID登録 ユーザID: =h($error)?> ```