Closed Eri31-lgtm closed 2 months ago
Coba klik di tulisan Not secure
disebelah kiri url nanti ada tombol untuk mengatur permission kamera
tidak ada untuk mengatur permission kamera mas, itu di blok tidak dapat di klik di beberapa perangkat yang berbeda pun sama
Permissionnya diblok karena menggunakan http, bukan localhost, dan bukan https. Ini caranya
Permissionnya diblok karena menggunakan http, bukan localhost, dan bukan https. Ini caranya
itu klo msalnya mau mnggnakn https bisa ?
Nggak perlu https, tinggal di setting aja browsernya, tapi kalau mau https harus di hosting dulu.
Nggak perlu https, tinggal di setting aja browsernya, tapi kalau mau https harus di hosting dulu.
Oke baik mas, brrti yang di setting browsernya ckup perangkat yang di jadikan server saja ya ?
Betul
Betul
Trmksih bnyak mas, bner" Sya di bmbing trus. Sehat selalu
Sama sama
Jika menggunakan Chrome, bisa atur flag Insecure origins treated as secure
untuk mengizinkan URL yang tercantum dianggap aman.
Caranya, akses chrome://flags/#unsafely-treat-insecure-origin-as-secure
di Chrome, lalu tambahkan URL-nya dan ubah status menjadi Enabled
. Chrome akan meminta relaunch untuk efek perubahannya.
Semoga dapat membantu.
Referensi:
Jika menggunakan Chrome, bisa atur flag
Insecure origins treated as secure
untuk mengizinkan URL yang tercantum dianggap aman.Caranya, akses
chrome://flags/#unsafely-treat-insecure-origin-as-secure
di Chrome, lalu tambahkan URL-nya dan ubah status menjadiEnabled
. Chrome akan meminta relaunch untuk efek perubahannya.Semoga dapat membantu.
Referensi:
Di dalam kolomnya di isi apa ?
Jika menggunakan Chrome, bisa atur flag
Insecure origins treated as secure
untuk mengizinkan URL yang tercantum dianggap aman. Caranya, akseschrome://flags/#unsafely-treat-insecure-origin-as-secure
di Chrome, lalu tambahkan URL-nya dan ubah status menjadiEnabled
. Chrome akan meminta relaunch untuk efek perubahannya. Semoga dapat membantu. Referensi:Di dalam kolomnya di isi apa ?
URL yang ingin diatur agar browser menganggap sebagai URL yang secure. Secara default, browser mewajibkan permintaan akses ke kamera hanya dapat diakses melalui protokol aman HTTPS (secure origin). Dengan pengaturan itu, browser akan meniadakan pembatasan tersebut hanya pada URL yang tercantum saja.
Contoh isian URL:
Jika menggunakan Chrome, bisa atur flag
Insecure origins treated as secure
untuk mengizinkan URL yang tercantum dianggap aman. Caranya, akseschrome://flags/#unsafely-treat-insecure-origin-as-secure
di Chrome, lalu tambahkan URL-nya dan ubah status menjadiEnabled
. Chrome akan meminta relaunch untuk efek perubahannya. Semoga dapat membantu. Referensi:Di dalam kolomnya di isi apa ?
URL yang ingin diatur agar browser menganggap sebagai URL yang secure. Secara default, browser mewajibkan permintaan akses ke kamera hanya dapat diakses melalui protokol aman HTTPS (secure origin). Dengan pengaturan itu, browser akan meniadakan pembatasan tersebut hanya pada URL yang tercantum saja.
Contoh isian URL:
Baik terimkasih. Saya akan coba lagi
Jika menggunakan Chrome, bisa atur flag
Insecure origins treated as secure
untuk mengizinkan URL yang tercantum dianggap aman. Caranya, akseschrome://flags/#unsafely-treat-insecure-origin-as-secure
di Chrome, lalu tambahkan URL-nya dan ubah status menjadiEnabled
. Chrome akan meminta relaunch untuk efek perubahannya. Semoga dapat membantu. Referensi:Di dalam kolomnya di isi apa ?
URL yang ingin diatur agar browser menganggap sebagai URL yang secure. Secara default, browser mewajibkan permintaan akses ke kamera hanya dapat diakses melalui protokol aman HTTPS (secure origin). Dengan pengaturan itu, browser akan meniadakan pembatasan tersebut hanya pada URL yang tercantum saja.
Contoh isian URL:
Saya sudah mencoba. Saya setting di perangkat server dan perangkat yang lain
Sudah bisa, namun kamera terkunci sudah allow juga
![Uploading 17200128715168314967444278973944.jpg…]()
![Uploading 17200129723866778814242164504827.jpg…]()
Kalau di generate qr code muncul seperti ini apakah yaang perlu diperbaiki apa kak?
Kalau di generate qr code muncul seperti ini apakah yaang perlu diperbaiki apa kak?
Coba lihat #75
{
"title": "ErrorException",
"type": "ErrorException",
"code": 500,
"message": "mkdir(): No such file or directory",
"file": "/home/u1343118/public_html/presensi/app/Controllers/Admin/QRGenerator.php",
"line": 37,
"trace": [
{
"function": "errorHandler",
"class": "CodeIgniter\\Debug\\Exceptions",
"type": "->"
},
{
"file": "/home/u1343118/public_html/presensi/app/Controllers/Admin/QRGenerator.php",
"line": 37,
"function": "mkdir"
},
{
"file": "/home/u1343118/public_html/presensi/vendor/codeigniter4/framework/system/CodeIgniter.php",
"line": 903,
"function": "__construct",
"class": "App\\Controllers\\Admin\\QRGenerator",
"type": "->"
},
{
"file": "/home/u1343118/public_html/presensi/vendor/codeigniter4/framework/system/CodeIgniter.php",
"line": 500,
"function": "createController",
"class": "CodeIgniter\\CodeIgniter",
"type": "->"
},
{
"file": "/home/u1343118/public_html/presensi/vendor/codeigniter4/framework/system/CodeIgniter.php",
"line": 355,
"function": "handleRequest",
"class": "CodeIgniter\\CodeIgniter",
"type": "->"
},
{
"file": "/home/u1343118/public_html/presensi/vendor/codeigniter4/framework/system/Boot.php",
"line": 312,
"function": "run",
"class": "CodeIgniter\\CodeIgniter",
"type": "->"
},
{
"file": "/home/u1343118/public_html/presensi/vendor/codeigniter4/framework/system/Boot.php",
"line": 67,
"function": "runCodeIgniter",
"class": "CodeIgniter\\Boot",
"type": "::"
},
{
"file": "/home/u1343118/public_html/presensi/index.php",
"line": 56,
"function": "bootWeb",
"class": "CodeIgniter\\Boot",
"type": "::"
}
]
}
Kalau di generate qr code muncul seperti ini apakah yaang perlu diperbaiki apa kak?
Sudah coba ubah permission direktori public/uploads
ke 777?
Update: Gagal karena sempat ganti folder public
ke boot
kan?
Lihat komentar sebelumnya: https://github.com/ikhsan3adi/absensi-sekolah-qr-code/issues/83#issuecomment-2206135427
Ok, saya coba kak
Pastikan baris ini juga disesuaikan:
Tetap sama itu kak
{
"title": "ErrorException",
"type": "ErrorException",
"code": 500,
"message": "mkdir(): No such file or directory",
"file": "/home/u1343118/public_html/presensi/app/Controllers/Admin/QRGenerator.php",
"line": 37
}
adakah yang salah dengan script nya. Saya ganti folder public menjadi boot
<?php
namespace App\Controllers\Admin;
use App\Controllers\BaseController;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
use Endroid\QrCode\Label\Font\Font;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;
class QRGenerator extends BaseController
{
protected QrCode $qrCode;
protected PngWriter $writer;
protected Logo $logo;
protected Label $label;
protected Font $labelFont;
protected Color $foregroundColor;
protected Color $foregroundColor2;
protected Color $backgroundColor;
protected string $relativePath;
protected string $qrCodeFilePath;
public function __construct()
{
$this->relativePath = __DIR__ . '../../../../';
$this->qrCodeFilePath = 'boot/uploads/';
if (!file_exists($this->relativePath . $this->qrCodeFilePath)) {
mkdir($this->relativePath . $this->qrCodeFilePath);
}
$this->writer = new PngWriter();
$this->labelFont = new Font($this->relativePath . 'boot/assets/fonts/Roboto-Medium.ttf', 14);
$this->foregroundColor = new Color(44, 73, 162);
$this->foregroundColor2 = new Color(28, 101, 90);
$this->backgroundColor = new Color(255, 255, 255);
// Create logo
$this->logo = Logo::create(base_url('boot/assets/img/logo_sekolah.jpg'))->setResizeToWidth(75);
$this->label = Label::create('')
->setFont($this->labelFont)
->setTextColor($this->foregroundColor);
// Create QR code
$this->qrCode = QrCode::create('')
->setEncoding(new Encoding('UTF-8'))
->setErrorCorrectionLevel(new ErrorCorrectionLevelHigh())
->setSize(300)
->setMargin(10)
->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
->setForegroundColor($this->foregroundColor)
->setBackgroundColor($this->backgroundColor);
}
public function generateQrSiswa()
{
$kelas = url_title($this->request->getVar('kelas'), '-', true);
$this->qrCodeFilePath .= 'qr-siswa/' . $kelas . '/';
if (!file_exists($this->relativePath . $this->qrCodeFilePath)) {
mkdir($this->relativePath . $this->qrCodeFilePath, recursive: true);
}
$this->generate(
unique_code: $this->request->getVar('unique_code'),
nama: $this->request->getVar('nama'),
nomor: $this->request->getVar('nomor')
);
return $this->response->setJSON(true);
}
public function generateQrGuru()
{
$this->qrCode->setForegroundColor($this->foregroundColor2);
$this->label->setTextColor($this->foregroundColor2);
$this->qrCodeFilePath .= 'qr-guru/';
if (!file_exists($this->relativePath . $this->qrCodeFilePath)) {
mkdir($this->relativePath . $this->qrCodeFilePath);
}
$this->generate(
unique_code: $this->request->getVar('unique_code'),
nama: $this->request->getVar('nama'),
nomor: $this->request->getVar('nomor')
);
return $this->response->setJSON(true);
}
protected function generate($nama, $nomor, $unique_code)
{
$filename = url_title($nama, separator: '-', lowercase: true) . "_" . url_title($nomor, separator: '-', lowercase: true) . '.png';
// set qr code data
$this->qrCode->setData($unique_code);
$this->label->setText($nama);
// Save it to a file
$this->writer
->write(qrCode: $this->qrCode, logo: $this->logo, label: $this->label)
->saveToFile(path: $this->relativePath . $this->qrCodeFilePath . $filename);
}
}
Sebelum posting kode, tolong diikuti dulu standar penulisan kode di GitHub, supaya lebih rapi dan gampang dibaca. Lihat caranya di sini:
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code
Kembali ke masalahnya.
Manfaatkan fitur debugging dengan Debugbar, dengan mengaktifkan mode development di file .env
selama ketemu masalah aplikasi:
CI_ENVIRONMENT = development
# CI_ENVIRONMENT = production
Terus, coba sisipkan fungsi dd()
(diikuti variable tertentu yang ingin dilihat nilainya) sebelum fungsi yang memicu error, contohnya:
if (!file_exists($this->relativePath . $this->qrCodeFilePath)) {
dd($this->relativePath . $this->qrCodeFilePath); // <<< sisipkan di sini
mkdir($this->relativePath . $this->qrCodeFilePath, recursive: true);
}
Terus coba akses kembali halamannya dan lihat output debug-nya. Silakan posting kembali.
Update:
Supaya ketahuan absolute path yang dihasilkan, coba debug menggunakan realpath()
:
if (!file_exists($this->relativePath . $this->qrCodeFilePath)) {
dd(realpath($this->relativePath . $this->qrCodeFilePath)); // <<< sisipkan di sini
mkdir($this->relativePath . $this->qrCodeFilePath, recursive: true);
}
Saya mencurigai relative path ini terlalu offside:
$this->relativePath = __DIR__ . '../../../../';
Nah betul kata @janglapuk
Coba dump path-nya menggunakan dd()
tpi kalau offline bisa, ini progressbar jalan tpi qr code tidak ada di folder uploads
kalau per siswa/guru bisa muncul qrcode nya, tpi kalau per kelas membuat folder per kelas tidak bisa
$this->relativePath = __DIR__ . '../../../../';
Koreksi lagi bagian ini:
$this->relativePath = __DIR__ . '../../../../';
Menjadi:
$this->relativePath = __DIR__ . '/../../../../';
(Setelah __DIR__
diikuti /
dulu)
Sesuaikan kalau terlalu offside, jadi:
$this->relativePath = __DIR__ . '/../../../';
Kalau seperti ini menjadi berapa subfolder kak. jadi scriptnya?
Kalau seperti ini menjadi berapa subfolder kak. jadi scriptnya?
Memang seperti itu adanya
tidak kak misalnya saya generete saya pilih per kelas kalau normal qrcode akan membentuk folder kelas dan isian qrcodenya tpi ini tidak muncul hasil qrcodenya. Tapi kalau generate guru yang saya input 1 guru bisa muncul
maaf qr codenya guru juga tidak tampil kak, tapi tidak muncul pesan error di consule
Saya mencurigai relative path ini terlalu offside:
$this->relativePath = DIR . '../../../../';
kayaknya penempatan foldernya offside kak. Makanya pasnya berapa ya kak kalau saya naruh foldernya kayak image diatas? maksudnya ini relativePath = DIR . '../../../../'; yang benar gimana?
Sebaiknya coba debug dulu, lihat di komentar saya: https://github.com/ikhsan3adi/absensi-sekolah-qr-code/issues/82#issuecomment-2208928449 Lihat apakah real path-nya sudah sesuai dengan direktori aslinya.
Dan koreksi penulisan relative path: https://github.com/ikhsan3adi/absensi-sekolah-qr-code/issues/82#issuecomment-2208971569
Saran saya, usahakan tidak mengubah direktori yang sudah diatur developer, misal dari public
menjadi boot
kalau tidak ada urgensinya, kalaupun perlu ya harus mau repot-repot untuk memperbaikinya. Karena (mungkin saja) masih ada kode-kode lainnya yang masih merujuk ke folder public
secara hardcoded. Koreksi kalau saya salah @ikhsan3adi.
Dan terakhir, coba pakai versi ter-update v1.5.7.
kenapa saya ganti folder boot kak, karena saya main pakai sub folder, kemarin nama folder public crash dengan domain yang lain. Terima kasih
Saya baru sadar kode yang diberikan masnya versi lama yang mana masih menggunakan relative path __DIR__
, saat ini qr generatornya sudah menggunakan ROOTPATH/public/.....
Perubahannya bisa dilihat di commit di bawah
Saya sarankan timpa saja QRGenerator.php
dengan yang versi baru
kenapa saya ganti folder boot kak, karena saya main pakai sub folder, kemarin nama folder public crash dengan domain yang lain. Terima kasih
coba pakai kode ini untuk generate qr nya, saya sudah coba dan fixed https://github.com/ikhsan3adi/absensi-sekolah-qr-code/commit/5e44882abddba2516fd967077c1445d1d6f24e57
Saya mencoba merubah alamat localhost agar bisa di akses oleh perangkat lain dengan jaringan yang sama, dan berhasil tetapi kendala baru muncul yaitu camera tidak bisa di akses