回精華區
作者itoc.bbs@processor.tfcis.org (:MM:), 看板: plan
標題[功能] 秀出使用者註冊單所填之電話/住址
時間XEON (Mon, 10 Mar 2003 00:36:22 +0800 (CST)) Updated: 2003/09/26
※ 引述《Lucifer (只好窩到這裡寫日記)》之銘言:
>             站長站務在查詢使用者時
>             再多顯示 1,電話 2,住址 這兩項
>             這兩項是在填寫註冊單時寫的(如果有填)

: acct.c:acct_show()

  if (adm)
  {
+   char address[60], phone[20];

    prints("  \033[32m上站地點:\033[37m%-35s\033[32m發信次數:\033[37m%d\n",
      u->lasthost, u->numemails);
    bitmsg("  \033[32m權限等級:\033[37m", STR_PERM, ulevel);
    bitmsg("  \033[32m習慣旗標:\033[37m", STR_UFO, u->ufo);

+   if (find_rform(u->userno, u->userid, address, phone))
+   {
+     prints("  \033[32m註冊住址:\033[37m%-35s\033[32m註冊電話:\033[37m%s\n",
+       address, phone);
+   }
  }

: acct.c:find_rform() 加入 acct_show() 之前

static int          /* 1:找到  0:沒找到 */
find_rform(userno, userid, address, phone)
  int userno;               /* 傳入 userno/userid */
  char *userid;
  char *address, *phone;    /* 回傳 address/phone */
{
  RFORM *rform;
  int fd, rc;

  rc = 0;
  if ((fd = open(FN_RUN_RFORM_LOG, O_RDONLY)) >= 0)
  {
    mgets(-1);

    while (rform = mread(fd, sizeof(RFORM)))
    {
      if (userno == rform->userno && !strcmp(userid, rform->userid))
      {
        strcpy(address, rform->address);
        strcpy(phone, rform->phone);
        rc = 1;
        break;          /* 若把這行 break 拿掉,那麼就是找最後一筆註冊單 */
      }                 /* 若把這行 break 留著,那麼就是找第一筆註冊單 */
    }

    close(fd);
  }

  return rc;
}

--
  不知道在什麼時候開始
  我就把 address 等欄位從 ACCT 中拿掉了
  所以 sizeof(ACCT) 從以前的 512 降成現在的 220

--
    ╭── Origin ╮  動力核心  processor.tfcis.org  ~ δεζ ──┼
    │     Modify ╯ 03/03/10  0:36:22 
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻