no-image

問い合わせシステムに通し番号を付与させるphpコード

サンクスページに年ごとの通し番号を付与させるコード。
フォルダにデータを記述することで、重複の無い登録にする。

// shortycolossus ///////////////////////
// 通し番号(SSi0000077のようなもの)を作る ここから
// //////////////////////////////////////

// 任意設定 ここから
// サンクスページのURL
$thanks_page = "http://xxx.xxxxxxxxx/thanks.html";
// シリアル番号の頭文字
$code_head = 'SS';
// シリアル番号の年を表す文字を計算するための創業年
$startyear = '2018';
// シリアル番号のPOST情報への格納先name
$code_name = 'code';
//任意設定 ここまで
$current_year = date('Y'); //現在の年
// 連番を取得する
$count_filename = './count/count' . $current_year . '.txt'; //連番を取得するファイルの場所
if (file_exists($count_filename)) {
  $count = file_get_contents($count_filename);
}
else {
  if (!file_exists('./count') || !is_dir('./count')) { //ディレクトリが無い場合は作成
    mkdir('./count');
    chmod('./count', 0755);
  }
  $count = 0;
}
$count = intval($count);
$count++;
file_put_contents($count_filename, $count); //ファイルに連番を書き込み //年アルファベットを取得する
$yearchar_filename = './yearchar/yearchar' . $current_year . '.txt'; //年アルファベットを格納するファイルの場所
if (file_exists($yearchar_filename)) {
  $yearchar = file_get_contents($yearchar_filename); //ファイルがある場合は取得
}
else {
  if (!file_exists('./yearchar') || !is_dir('./yearchar')) { //ディレクトリが無い場合は作成
    mkdir('./yearchar');
    chmod('./yearchar', 0755);
  }
  $yearchar_num = $current_year - $startyear; //ファイルが無い場合は開始年から現在の年数を計算して小文字のアルファベット年をつくる
  $yearchar = 'a';
  for ($i = 0; $i < $yearchar_num; $i++) {
    $yearchar++;
  }
  file_put_contents($yearchar_filename, $yearchar); //ファイルを保存
}
$code = $code_head . $yearchar . sprintf('%07d', $count); //シリアル番号例 SSi0000077
$_POST[$code_name] = $code; // ポスト情報にセット
$thanks_page.= (strpos($thanks_page, '?')) ? '&code=' . $code : '?code=' . $code; //サンクスページにセット

// shortycolossus ///////////////////////
// 通し番号(SSi0000077のようなもの)を作る ここまで
// //////////////////////////////////////
pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus