勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでアクセスIPからランダム英数字のIDを作成

   2024/02/25  PHP

PHPで掲示板などにあるようなアクセスIPからランダム英数字のIDを作成したかった。以下にほしい機能とソースをメモ。

 

ほしい機能

  • IPアドレスもしくは会員IDなどからランダムIDを作成
  • 日付によってランダムIDを変えたり変えなかったりする
  • ランダムIDの桁数も決めたい

 

ソースコード

//----------------------------------------
//    $limit(int) ランダムIDの桁数。デフォルトは10桁。
//    $daily(bool) 日付によってIDを変えるかどうか。デフォルトは変えない。
//    $free(text) 閲覧者のIPやユーザーID等、自由入力。空の場合は閲覧者のIPを使用。
//----------------------------------------
function createId( $limit = 10, $daily = false, $free = '' )
{
    $daily_md5 = ( $daily ) ? md5(date('Y-m-d')): '';
    $free_md5 = ( $free ) ? md5( $free ) : md5( $_SERVER['REMOTE_ADDR'] );

    $id = substr(base64_encode($daily_md5 . $free_md5), 0, $limit);

    return $id;
}

 - PHP

  関連記事

PHPにて「一億二千万」等の漢数字と通常の数字(アラビア数字)の相互変換を行う方法
PHPにて「一億二千万」等の漢数字と通常の数字(アラビア数字)の相互変換を行う方法

PHPにて漢数字と普通の数字の相互変換を行いたい。例えば「123465789」⇔ ...

PHPバージョンが古くjson_decodeが使えない際の対応方法(Services_JSON)
PHPバージョンが古くjson_decodeが使えない際の対応方法(Services_JSON)

PHPのバージョンが古くてjson_decodeが使えないという状況があった。ま ...

バニラPHPでフラッシュデータ(フラッシュメッセージ)機能を実装する方法
バニラPHPでフラッシュデータ(フラッシュメッセージ)機能を実装する方法

PHPフレームワークのCodeIgniterを勉強していた際にページ遷移好みに表 ...

PHPでお問い合わせ等のform構築時にCSRF対策を行う方法
PHPでお問い合わせ等のform構築時にCSRF対策を行う方法

他社が制作されたお問い合わせフォームを改修する案件があった。ソースコードを拝見し ...

PHPのセッションでログイン、ログアウトの管理。あとセッションが保存されない場合の対処。
PHPのセッションでログイン、ログアウトの管理。あとセッションが保存されない場合の対処。

セッションはほとんど使ったことがなく、 色々つまづいたのでメモ。 やりたかった事 ...