:::

2-4-2 寫入活動到資料庫中

您沒有觀看影片的權限

您沒有觀看影片的權限

請先登入,登入後,確認您的權限後,即可觀看影片。

  1. WebDeveloper 附加元件:
    1. FireFox:https://addons.mozilla.org/zh-tw/firefox/addon/web-developer/
    2. Chrome:https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm?hl=zh-TW
  2. 表單是用 post 方式傳遞變數,所以,index.php 會收到 $_POST['op'] 的值為 tad_signup_actions_store
  3. switch 必須有 tad_signup_actions_store 對應的動作,如:
    //新增資料
    case 'tad_signup_actions_store':
        $id = Tad_signup_actions::store();
        // header("location: {$_SERVER['PHP_SELF']}?id=$id");
        redirect_header($_SERVER['PHP_SELF'] . "?id=$id", 3, "成功建立活動!");
        exit;

     

  4. 其中 header("location: 網址"); 用來轉向。若要加上訊息,亦可改用XOOPS內建的
    redirect_header("網址", 秒數, "訊息");

     

  5. 修改 class/Tad_signup_actions.php 中的 Tad_signup_actions 類別下的 store() 方法來儲存資料
    //新增資料
    public static function store()
    {
        global $xoopsDB;
    
        if (!$_SESSION['tad_signup_adm']) {
            redirect_header($_SERVER['PHP_SELF'], 3, "您沒有權限使用此功能");
        }
        //XOOPS表單安全檢查
        Utility::xoops_security_check();
    
        $myts = \MyTextSanitizer::getInstance();
    
        foreach ($_POST as $var_name => $var_val) {
            $$var_name = $myts->addSlashes($var_val);
        }
        $uid = (int) $uid;
        $number = (int) $number;
        $enable = (int) $enable;
    
        $sql = "insert into `" . $xoopsDB->prefix("tad_signup_actions") . "` (
            `title`,
            `detail`,
            `action_date`,
            `end_date`,
            `number`,
            `setup`,
            `enable`,
            `uid`
        ) values(
            '{$title}',
            '{$detail}',
            '{$action_date}',
            '{$end_date}',
            '{$number}',
            '{$setup}',
            '{$enable}',
            '{$uid}'
        )";
        $xoopsDB->query($sql) or Utility::web_error($sql, __FILE__, __LINE__);
    
        //取得最後新增資料的流水編號
        $id = $xoopsDB->getInsertId();
        return $id;
    }

     

  6. 一樣先檢查身份,並驗證一下表單token是否合法(避免偽造表單)
    Utility::xoops_security_check();

     

  7. 取得XOOPS內建的文字檢查工具(固定用法)
    $myts = \MyTextSanitizer::getInstance();

     

  8. 將所有$_POST都進行文字過濾( 存入時,若有特殊符號,如:「\」、「"」、「'」,若沒有處理,那麼可能無法存入 ),避免資料庫的隱碼攻擊,也確保資料能完整寫入資料庫
    foreach ($_POST as $var_name => $var_val) {
        $$var_name = $myts->addSlashes($var_val);
    }

     

  9. 接著就是把整理後的值,存入資料庫
    $sql = "insert into `" . $xoopsDB->prefix("tad_signup_actions") . "` (
        `title`,
        `detail`,
        `action_date`,
        `end_date`,
        `number`,
        `setup`,
        `enable`,
        `uid`
    ) values(
        '{$title}',
        '{$detail}',
        '{$action_date}',
        '{$end_date}',
        '{$number}',
        '{$setup}',
        '{$enable}',
        '{$uid}'
    )";
    $xoopsDB->query($sql) or Utility::web_error($sql, __FILE__, __LINE__);

     

  10. 最後取得剛新增的資料其自動流水號,並將之傳出,因為後續可能會用到
    //取得最後新增資料的流水編號
    $id = $xoopsDB->getInsertId();
    return $id;

     

link to https://github.com/tadlearn/tad_signup/commit/acd4ef349392a7c7ce71a03dbd91e7dcb12d7901 \


:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D48%26tbdsn%3D1602

書籍目錄

展開 | 闔起

線上使用者

24人線上 (3人在瀏覽線上書籍)

會員: 0

訪客: 24

更多…