$op
值為submission_data_store
,會送至index.php
,故會執行index.php
的這段流程。op=submission_data_show
,這樣才會顯示學生投稿,而非顯示投稿主題。
//新增資料
case 'submission_data_store':
$id = Submission_data::store();
header("location: {$_SERVER['PHP_SELF']}?op=submission_data_show&id=$id");
exit;
class/Submission_data.php
的store()
,然後擷取出投稿主題的投稿密碼,並比對輸入的密碼,若是不同,則轉向離開。審核時間務必註解掉,另外,亦可加入投稿的最後更新時間。
//新增資料到 submission_data Submission_data::store()
public static function store($data_arr = [])
{
global $xoopsDB, $xoopsUser;
//Tools::chk_is_adm('', '', __FILE__, __LINE__);
//XOOPS表單安全檢查
if (empty($data_arr)) {
Utility::xoops_security_check();
$data_arr = $_POST;
}
$submission = Submission::get(['id' => $data_arr['submission_id']]);
if (isset($submission['info']['pass_code'])) {
if ($submission['info']['pass_code'] != $data_arr['pass_code']) {
redirect_header($_SERVER['HTTP_REFERER'], 3, "投稿密碼錯誤");
}
}
$data_arr['info']['latest_update'] = date("Y-m-d H:i:s", xoops_getUserTimestamp(time()));
foreach ($data_arr as $key => $value) {
$$key = Tools::filter($key, $value, 'write', self::$filter_arr);
}
$sql = "INSERT INTO `" . $xoopsDB->prefix("submission_data") . "` (
`submission_id`,
`name`,
`grade`,
`teacher`,
`title`,
`content`,
`info`
) VALUES(
'{$submission_id}',
'{$name}',
'{$grade}',
'{$teacher}',
'{$title}',
'{$content}',
'{$info}'
)";
$xoopsDB->queryF($sql) or Utility::web_error($sql);
//取得最後新增資料的流水編號
$id = $xoopsDB->getInsertId();
if ($id) {
$TadUpFiles = new TadUpFiles("submission");
$TadUpFiles->set_col("submission_data_id", $id);
$TadUpFiles->set_dir('subdir', "/{$submission_id}/{$id}");
$TadUpFiles->upload_file('submission_data_files', '', '', '', '', true, false);
}
return $id;
}
檔案上傳的路徑,可以指定放到投稿主題編號下的文章編號,避免投稿者互相看到彼此的作品圖片