差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
48th_8j1ham_rs [2026/08/25 21:56] Tana JH1HST48th_8j1ham_rs [2026/08/27 03:54] (現在) Tana JH1HST
行 183: 行 183:
     color: #555;     color: #555;
     font-size: 1.15em;     font-size: 1.15em;
 +    font-weight: bold;
 +    margin-bottom: 12px;
 +}
 +
 +.hf-cancelled {
 +    width: 100%;
 +    box-sizing: border-box;
 +    margin: 24px 0;
 +    padding: 22px;
 +    background: #fff4e5;
 +    border: 2px solid #e0a24a;
 +    border-radius: 10px;
 +}
 +
 +.hf-cancelled-title {
 +    color: #b06000;
 +    font-size: 1.25em;
     font-weight: bold;     font-weight: bold;
     margin-bottom: 12px;     margin-bottom: 12px;
行 213: 行 230:
     #hf-search-panel,     #hf-search-panel,
     .hf-winner,     .hf-winner,
-    .hf-not-selected {+    .hf-not-selected
 +    .hf-cancelled {
         padding: 16px;         padding: 16px;
     }     }
行 279: 行 297:
             input.addEventListener("input", function () {             input.addEventListener("input", function () {
  
-                /* 
-                 * 全角英数字・記号を半角へ変換。 
-                 * 
-                 * 例: 
-                 * JH1HST → JH1HST 
-                 * abc@example.com 
-                 * → abc@example.com 
-                 */ 
                 this.value = this.value.normalize("NFKC");                 this.value = this.value.normalize("NFKC");
  
行 301: 行 311:
         : '';         : '';
  
-    /* 
-     * サーバー側でも全角英数字・スペースを半角へ変換。 
-     * JavaScriptを使用しない環境への対策。 
-     */ 
     if (function_exists('mb_convert_kana')) {     if (function_exists('mb_convert_kana')) {
         $input = mb_convert_kana($input, 'as', 'UTF-8');         $input = mb_convert_kana($input, 'as', 'UTF-8');
     }     }
  
-    /* 
-     * メールアドレス・コールサインで使用する 
-     * 全角記号も念のため半角へ変換。 
-     */ 
     $input = strtr(     $input = strtr(
         $input,         $input,
行 367: 行 369:
             );             );
  
-            /* 
-             * コールサイン・メールアドレスとも 
-             * 大文字小文字を区別せず完全一致。 
-             */ 
             $callsign_norm = strtoupper($input);             $callsign_norm = strtoupper($input);
             $email_norm    = strtolower($input);             $email_norm    = strtolower($input);
  
-            /* 
-             * まず申込情報が存在するか確認。 
-             */ 
             $stmt = $pdo->prepare(             $stmt = $pdo->prepare(
                 'SELECT applicant_id, callsign, email                 'SELECT applicant_id, callsign, email
行 410: 行 405:
                 }                 }
  
-                /* 
-                 * 同じメールアドレスによる複数申込も考慮して、 
-                 * 一致した全applicant_idから当選結果を検索。 
-                 */ 
                 $placeholders = implode(                 $placeholders = implode(
                     ',',                     ',',
行 429: 行 420:
                         band,                         band,
                         operation_type,                         operation_type,
-                        slot_type+                        slot_type
 +                        status
                      FROM results                      FROM results
                      WHERE applicant_id IN (' . $placeholders . ')                      WHERE applicant_id IN (' . $placeholders . ')
行 442: 行 434:
  
                     foreach ($results as $result) {                     foreach ($results as $result) {
 +
 +                        /*
 +                         * キャンセル済み
 +                         */
 +                        if (
 +                            isset($result['status'])
 +                            && $result['status'] === 'cancelled'
 +                        ) {
 +
 +                            $date_text = hf_date_jp($result['date']);
 +
 +                            $time_text =
 +                                $result['start_time']
 +                                . '~'
 +                                . $result['end_time'];
 +
 +                            echo '
 +                            <div class="hf-cancelled">
 +
 +                                <div class="hf-cancelled-title">
 +                                    この運用枠はキャンセル済みです。
 +                                </div>
 +
 +                                <table class="hf-result-table">
 +
 +                                    <tr>
 +                                        <th>日付</th>
 +                                        <th>時間</th>
 +                                        <th>バンド</th>
 +                                        <th>状態</th>
 +                                    </tr>
 +
 +                                    <tr>
 +
 +                                        <td>'
 +                                        . hf_h($date_text)
 +                                        . '</td>
 +
 +                                        <td>'
 +                                        . hf_h($time_text)
 +                                        . '</td>
 +
 +                                        <td>
 +                                            <strong>'
 +                                            . hf_h($result['band'])
 +                                            . '</strong>
 +                                        </td>
 +
 +                                        <td>
 +                                            <strong>キャンセル済み</strong>
 +                                        </td>
 +
 +                                    </tr>
 +
 +                                </table>
 +
 +                                <p>
 +                                    キャンセルとして受け付けています。
 +                                </p>
 +
 +                            </div>
 +                            ';
 +
 +                            continue;
 +                        }
  
                         $date_text = hf_date_jp($result['date']);                         $date_text = hf_date_jp($result['date']);
行 491: 行 548:
                         ';                         ';
  
-                        /* 
-                         * 通常運用者 
-                         */ 
                         if (!empty($result['callsign'])) {                         if (!empty($result['callsign'])) {
  
行 505: 行 559:
                             ';                             ';
  
-                        /* 
-                         * 体験運用などコールサインを登録していない方 
-                         */ 
                         } else {                         } else {
  
行 543: 行 594:
                         }                         }
  
-                        /* 
-                         * 資格範囲外を含む体験運用の場合は明示。 
-                         */ 
                         if (                         if (
                             $result['operation_type'] === '体験運用'                             $result['operation_type'] === '体験運用'
行 603: 行 651:
         } catch (Exception $e) {         } catch (Exception $e) {
  
-            /* 
-             * DB内部エラーの詳細は公開しない。 
-             */ 
             echo '             echo '
             <div class="hf-error">             <div class="hf-error">
  • 48th_8j1ham_rs.1787662564.txt.gz
  • 最終更新: 2026/08/25 21:56
  • by Tana JH1HST