登録リダイレクト 方式

【注意】
数字だけのユーザーの場合、Wordpressにより不要なリロードが発生することがあります。
この問題が発生する可能性があるため、数字だけのユーザー登録は行わないでください。

ユーザーが「別のページ」に移動する途中に「登録用URL」を経由することで、任意のユーザーネーム(メールアドレス等)を指定する方法です。下記のような特徴があります

  • ユーザーネームを任意に指定できる
    • メールアドレス形式 60文字以内
    • 任意文字列 29文字以内
    • ※メールアドレス有無は自動判別
  • 登録後にリダイレクトすることができる
    • 登録済みの場合は別ページにリダイレクトできる
    • GET・POSTされたパラメータも転送する
    • ※未指定の場合は登録情報表示

使い方

登録リダイレクト」にて「リダイレクト名」と「リダイレクト先」を指定します

「リダイレクト名」には「指定ユーザーネーム」を付加します
例えば、リダイレクト名が rdirect、指定ユーザーネームがtest_userのとき、
rdirect=test_user のように指定をします

ステップメールMyASP内での指定例:
https://example.com/ss/-/UserCreateName?rdirect=%mail%

リダイレクトについて

リダイレクト時にGET,POSTで送信されたクエリーパラメータは、そのままリダイレクト先に転送されます。これにより、利用者に見せたいページへの移動をスームズに行うことができます(リダイレクト名も合わせて転送します)

登録ページクリック

https://example.com/ss/-/createUserName?abc-def=id123&page=456

(リダイレクト)
https://example2.net/support/?abc-def=id123&page=456

POST送信の場合、通常の方法ではリダイレクトできないため、転送用フォームページを生成して自動で送信ボタンを自動(Javascript)でクリックして送信します
転送用フォームページで、Javascriptが利用できない状態のときは「ページが自動的に切り替わらない場合はクリックしてください」というメッセージを表示してクリックを促します

【注意】
決済システム等へに転送する場合、拒否される可能性があります。セキュリティ上、別ページ(ユーザー登録処理など)を挟むことが禁止されているためです。事前にテストにて動作確認をしてください

【指定ユーザーネームを指定しない場合】
リダイレクト方式も指定ユーザーネームを指定しない場合は「ランダムなユーザーネーム」を作成します。
その際もリダイレクト処理には、「リダイレクト名」は必要ですので気をつけてください。
例:https://example.com/ss/-/UserCreateName?xoiufaxe
※リダイレクト名が「xoiufaxe」の場合

同一ユーザーの複数登録

【注意】
ユーザーネームが同じ場合、リダイレクト名が異なっていても「登録済み」と処理されます

  1. (ダイレクト名:abc)?abc=id123 で登録を行った
  2. 新規登録して処理される
  3. (ダイレクト名:def)?def=id123 で登録を行った
  4. 登録不要として処理される(すでに id123 は登録済み)

同じユーザーを複数登録する場合は、ユーザーIDの後ろにコードを追加するなどしてユニークなユーザーネームにします(-1、-aなどをつける)

  • %mail% → example@example.com
  • %mail%-23232 → example@example.com-23232
  • %mail%-abcef → example@example.com-abcef
  • %id% → id123
  • %id%-23232 → id123-23232
  • %id%-abcef → id123-abcef

メールアドレスの自動判別

「RFC 822」にマッチするかで判定しています
(PHPプログラムの filter_var FILTER_VALIDATE_EMAIL を使用)

かなり緩い規約のため「文字列途中に@1つと.が1つ以上ある」ぐらいでマッチします(実際にはかなり複雑です)

  • 1@a.a
  • 1@a.a-1
  • a@a.a-abcdef
  • など…

次のよう場合は「メールアドレスではない」と判断して、任意文字列として処理します

  • 1@aa (@の後ろに.が1つもない)
  • 1@@a.a (@が2つ以上ある)
  • a@a+1 (@の後ろに+が使用されている)
  • a@a. (.で終了している)
  • など…