用紙にシリアル番号が書かれていて、「Webサイトにアクセスし、シリアルコードを入力してください」というキャンペーンに応募しました。QRコードがあったので携帯でアクセスして、応募ページをクリックしてもリンクが飛びませんでした。これは今回の件とは全く関係ありませんが、リンク先くらいはチェックして欲しかったですね。
そこで、PCからアクセスすることにしました。PCの場合は別ページに飛んだため、リンク切れはありませんでしたので、シリアル番号を入力して「確認」ボタンをクリック。しかし、「不正なコードです」と表示されます。
シリアルコードは「・・O601・・・」となっていて、よく見るとO(オー)と0(ゼロ)が違うのかなと思い、「06O1」や「O601」を試して、ようやく正しいコードを入れることができました。今回は、「O」と「0」が存在していたために違いがわかりましたが、これが「O6O1」の場合は諦めていたかもしれません。
このような紛らわしい文字は初期のパスワード、シリアルコードでは使わないようにした方が良いです。以前、大手企業のサービスで、初期パスワードが郵送されてきて、「l(エル)」と「1(イチ)」の違いがわからず電話で確認したことがあります。もし、紛らわしい文字も使う場合はフリガナが必要です。
フリガナは面倒ですので、最初から紛らわしい文字を使わないでパスワード、シリアルコードを発行するようにしましょう。PHPでパスワードを再発行する場合は下記のような感じです。oや0等は自動発行のパスワードに入らないようにしてあります。
記号を入れる場合は「@」「-」「_」「#」程度でしょうか。「”」「’」「\」は処理が面倒ですので入れないほうが良いですね。
<?php $length = 8; $passstr = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345679"; $passarray = preg_split ("//", $passstr, 0, PREG_SPLIT_NO_EMPTY); $pass = ""; for ($i = 0; $i < $length; $i++) $pass .= $passarray[array_rand ($passarray, 1)]; ?>