true,'secure'=>!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']!=='off','samesite'=>'Lax','path'=>'/']); session_start(); header('Cache-Control: no-store'); header('X-Content-Type-Options: nosniff'); header("Content-Security-Policy: default-src 'self'; style-src 'self'; script-src 'self'; img-src 'self' data:; connect-src 'self'; form-action 'self'; frame-ancestors 'none'; base-uri 'self'"); date_default_timezone_set('Asia/Jakarta'); if(empty($_SESSION['candidate_csrf'])) $_SESSION['candidate_csrf']=bin2hex(random_bytes(32)); function ce($v) { return htmlspecialchars(str_replace("\0",'',(string)$v),ENT_QUOTES|ENT_SUBSTITUTE,'UTF-8'); } function cgo($url) { header('Location: '.$url); exit; } function cdb() { static $db; if(!$db) { mysqli_report(MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT); require __DIR__.'/conn.php'; $db=$conn; $db->set_charset('utf8mb4'); } return $db; } function cq($sql,$types='',$params=[]) { $s=cdb()->prepare($sql); if($types) $s->bind_param($types,...$params); $s->execute(); return $s; } function candidate() { if(empty($_SESSION['candidate_id'])) cgo('index.php'); $p=cq('SELECT * FROM in_daper WHERE id=?','i',[(int)$_SESSION['candidate_id']])->get_result()->fetch_assoc(); if(!$p) { unset($_SESSION['candidate_id']); cgo('index.php'); } return $p; } function ctoken() { echo ''; } function cverify() { if(!hash_equals($_SESSION['candidate_csrf'],(string)($_POST['csrf']??''))) { http_response_code(403); exit('Formulir kedaluwarsa. Muat ulang halaman.'); } } const CPHASES=[1=>['Matematika','15 soal','20 menit',1200,[1=>15]],2=>['Sinonim & Antonim','20 soal','5 menit',300,[2=>10,3=>10]],3=>['Padanan kata','10 soal','5 menit',300,[4=>10]],4=>['Kepribadian','20 soal','5 menit',300,[5=>20]]]; function cstart($title,$p=null) { ?><?=ce($title)?> · Nurinda Recruitment
NURINDARecruitment experience
'; } require_once __DIR__ . "/exam-service.php";