Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php eval(base64_decode('CiBnb3RvIEczNDhGOyBIb0dmUjogc2Vzc2lvbl9zdGFydCgpOyBnb3RvIFV5T1pE..
Decoded Output download
goto G348F; HoGfR: session_start(); goto UyOZD; N8mll: $stmt->bindParam(":category_id", $category_id, PDO::PARAM_INT); goto x58rY; LUJrp: $category_id = isset($_GET["category_id"]) ? intval($_GET["category_id"]) : 1; goto YI2Ot; x58rY: $stmt->execute(); goto k15TD; c1MV9: $username = isset($_SESSION["username"]) ? $_SESSION["username"] : ''; goto LUJrp; YI2Ot: $sql = "SELECT id, question_text, option_a, option_b, option_c, option_d FROM questions WHERE category_id = :category_id"; goto CVYF8; UyOZD: if (!isset($_SESSION["user_id"])) { header("Location: login.php"); die; } goto PvMYp; STf8i: $conn = null; goto TxgHF; G348F: try { $conn = new PDO("sqlite:exam.db"); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } goto HoGfR; PvMYp: $user_id = $_SESSION["user_id"]; goto c1MV9; CVYF8: $stmt = $conn->prepare($sql); goto N8mll; k15TD: $questions = $stmt->fetchAll(PDO::FETCH_ASSOC); goto lygNs; lygNs: if (count($questions) > 0) { ?>
<!doctypehtml><html lang="en"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1"name="viewport"><title>Take Exam</title><link href="assets/dashboard.css"rel="stylesheet"><style>.sticky-header{position:fixed;top:0;left:0;width:100%;background:#fff;padding:10px;box-shadow:0 4px 8px rgba(0,0,0,.1);z-index:100;text-align:center}.content{margin-top:80px}</style><script>// Timer (in seconds)
let timer = 1800; // 5 minutes = 300 seconds
function startTimer() {
let display = document.getElementById('timer');
let interval = setInterval(function () {
let minutes = Math.floor(timer / 60);
let seconds = timer % 60;
display.innerHTML = minutes + "m " + seconds + "s";
if (timer <= 0) {
clearInterval(interval);
document.getElementById('examForm').submit(); // Auto-submit when time is up
}
timer--;
}, 1000);
}
window.onload = startTimer;</script></head><div><div class="sticky-header"><h2><?php echo htmlspecialchars($username); ?>
!</h2><a href="dashboard.php">Return to dashboard</a> <a href="logout.php">Logout</a><h1>Take Exam</h1><p>Time Remaining: <span id="timer"></span></p></div><div class="content"></div><form action="submit_exam.php"id="examForm"method="POST"><input name="user_id"type="hidden"value="<?php echo $user_id; ?>
"> <input name="category_id"type="hidden"value="<?php echo $category_id; ?>
"><br><br><br><br><br><br><br><br><br><br><br><br><?php foreach ($questions as $row) { echo "<div>"; echo "<p>" . htmlspecialchars($row["question_text"]) . "</p>"; echo "<input type='radio' name='answer[" . $row["id"] . "]' value='A' required> " . htmlspecialchars($row["option_a"]) . "<br>"; echo "<input type='radio' name='answer[" . $row["id"] . "]' value='B'> " . htmlspecialchars($row["option_b"]) . "<br>"; echo "<input type='radio' name='answer[" . $row["id"] . "]' value='C'> " . htmlspecialchars($row["option_c"]) . "<br>"; echo "<input type='radio' name='answer[" . $row["id"] . "]' value='D'> " . htmlspecialchars($row["option_d"]) . "<br>"; echo "</div><hr>"; } ?>
<button type="submit">Submit Exam</button></form></div></html><?php } else { echo "No questions available for this exam."; } goto STf8i; TxgHF:
Did this file decode correctly?
Original Code
<?php eval(base64_decode('CiBnb3RvIEczNDhGOyBIb0dmUjogc2Vzc2lvbl9zdGFydCgpOyBnb3RvIFV5T1pEOyBOOG1sbDogJHN0bXQtPmJpbmRQYXJhbSgiXHgzYVx4NjNcMTQxXHg3NFx4NjVceDY3XDE1N1wxNjJcMTcxXHg1ZlwxNTFcMTQ0IiwgJGNhdGVnb3J5X2lkLCBQRE86OlBBUkFNX0lOVCk7IGdvdG8geDU4clk7IExVSnJwOiAkY2F0ZWdvcnlfaWQgPSBpc3NldCgkX0dFVFsiXDE0M1x4NjFceDc0XHg2NVwxNDdceDZmXDE2Mlx4NzlceDVmXDE1MVwxNDQiXSkgPyBpbnR2YWwoJF9HRVRbIlx4NjNcMTQxXDE2NFwxNDVcMTQ3XHg2Zlx4NzJceDc5XHg1Zlx4NjlcMTQ0Il0pIDogMTsgZ290byBZSTJPdDsgeDU4clk6ICRzdG10LT5leGVjdXRlKCk7IGdvdG8gazE1VEQ7IGMxTVY5OiAkdXNlcm5hbWUgPSBpc3NldCgkX1NFU1NJT05bIlwxNjVcMTYzXHg2NVx4NzJcMTU2XDE0MVx4NmRceDY1Il0pID8gJF9TRVNTSU9OWyJceDc1XHg3M1x4NjVceDcyXDE1Nlx4NjFceDZkXDE0NSJdIDogJyc7IGdvdG8gTFVKcnA7IFlJMk90OiAkc3FsID0gIlx4NTNceDQ1XDExNFx4NDVceDQzXDEyNFx4MjBceDY5XDE0NFx4MmNcNDBcMTYxXHg3NVwxNDVcMTYzXHg3NFx4NjlcMTU3XHg2ZVwxMzdceDc0XHg2NVwxNzBceDc0XDU0XHgyMFwxNTdcMTYwXHg3NFx4NjlcMTU3XDE1NlwxMzdcMTQxXHgyY1w0MFx4NmZceDcwXHg3NFx4NjlcMTU3XDE1Nlx4NWZceDYyXHgyY1w0MFwxNTdcMTYwXHg3NFx4NjlceDZmXHg2ZVwxMzdcMTQzXHgyY1w0MFx4NmZcMTYwXHg3NFx4NjlceDZmXDE1NlwxMzdcMTQ0XHgyMFwxMDZceDUyXDExN1x4NGRcNDBcMTYxXHg3NVx4NjVceDczXHg3NFx4NjlcMTU3XHg2ZVwxNjNcNDBceDU3XDExMFx4NDVceDUyXHg0NVw0MFwxNDNceDYxXDE2NFwxNDVcMTQ3XDE1N1wxNjJcMTcxXHg1Zlx4NjlceDY0XDQwXHgzZFx4MjBcNzJceDYzXDE0MVwxNjRcMTQ1XHg2N1wxNTdcMTYyXDE3MVwxMzdceDY5XHg2NCI7IGdvdG8gQ1ZZRjg7IFV5T1pEOiBpZiAoIWlzc2V0KCRfU0VTU0lPTlsiXDE2NVwxNjNcMTQ1XDE2MlwxMzdcMTUxXHg2NCJdKSkgeyBoZWFkZXIoIlwxMTRcMTU3XHg2M1wxNDFcMTY0XHg2OVx4NmZcMTU2XDcyXDQwXDE1NFx4NmZceDY3XDE1MVwxNTZcNTZcMTYwXHg2OFwxNjAiKTsgZGllOyB9IGdvdG8gUHZNWXA7IFNUZjhpOiAkY29ubiA9IG51bGw7IGdvdG8gVHhnSEY7IEczNDhGOiB0cnkgeyAkY29ubiA9IG5ldyBQRE8oIlwxNjNceDcxXHg2Y1wxNTFceDc0XHg2NVw3MlwxNDVcMTcwXHg2MVwxNTVcNTZcMTQ0XDE0MiIpOyAkY29ubi0+c2V0QXR0cmlidXRlKFBETzo6QVRUUl9FUlJNT0RFLCBQRE86OkVSUk1PREVfRVhDRVBUSU9OKTsgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7IGRpZSgiXDEwM1wxNTdceDZlXDE1NlwxNDVcMTQzXHg3NFx4NjlceDZmXDE1Nlw0MFx4NjZcMTQxXDE1MVwxNTRceDY1XDE0NFx4M2FceDIwIiAuICRlLT5nZXRNZXNzYWdlKCkpOyB9IGdvdG8gSG9HZlI7IFB2TVlwOiAkdXNlcl9pZCA9ICRfU0VTU0lPTlsiXDE2NVwxNjNceDY1XHg3MlwxMzdcMTUxXDE0NCJdOyBnb3RvIGMxTVY5OyBDVllGODogJHN0bXQgPSAkY29ubi0+cHJlcGFyZSgkc3FsKTsgZ290byBOOG1sbDsgazE1VEQ6ICRxdWVzdGlvbnMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7IGdvdG8gbHlnTnM7IGx5Z05zOiBpZiAoY291bnQoJHF1ZXN0aW9ucykgPiAwKSB7ID8+CjwhZG9jdHlwZWh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij48bWV0YSBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIm5hbWU9InZpZXdwb3J0Ij48dGl0bGU+VGFrZSBFeGFtPC90aXRsZT48bGluayBocmVmPSJhc3NldHMvZGFzaGJvYXJkLmNzcyJyZWw9InN0eWxlc2hlZXQiPjxzdHlsZT4uc3RpY2t5LWhlYWRlcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxMHB4O2JveC1zaGFkb3c6MCA0cHggOHB4IHJnYmEoMCwwLDAsLjEpO3otaW5kZXg6MTAwO3RleHQtYWxpZ246Y2VudGVyfS5jb250ZW50e21hcmdpbi10b3A6ODBweH08L3N0eWxlPjxzY3JpcHQ+Ly8gVGltZXIgKGluIHNlY29uZHMpCiAgICAgICAgbGV0IHRpbWVyID0gMTgwMDsgLy8gNSBtaW51dGVzID0gMzAwIHNlY29uZHMKCiAgICAgICAgZnVuY3Rpb24gc3RhcnRUaW1lcigpIHsKICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGltZXInKTsKICAgICAgICAgICAgbGV0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgbGV0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHRpbWVyIC8gNjApOwogICAgICAgICAgICAgICAgbGV0IHNlY29uZHMgPSB0aW1lciAlIDYwOwogICAgICAgICAgICAgICAgZGlzcGxheS5pbm5lckhUTUwgPSBtaW51dGVzICsgIm0gIiArIHNlY29uZHMgKyAicyI7CgogICAgICAgICAgICAgICAgaWYgKHRpbWVyIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbUZvcm0nKS5zdWJtaXQoKTsgLy8gQXV0by1zdWJtaXQgd2hlbiB0aW1lIGlzIHVwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aW1lci0tOwogICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICB9CiAgICAgICAgd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGltZXI7PC9zY3JpcHQ+PC9oZWFkPjxkaXY+PGRpdiBjbGFzcz0ic3RpY2t5LWhlYWRlciI+PGgyPjw/cGhwICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKTsgPz4KITwvaDI+PGEgaHJlZj0iZGFzaGJvYXJkLnBocCI+UmV0dXJuIHRvIGRhc2hib2FyZDwvYT4gPGEgaHJlZj0ibG9nb3V0LnBocCI+TG9nb3V0PC9hPjxoMT5UYWtlIEV4YW08L2gxPjxwPlRpbWUgUmVtYWluaW5nOiA8c3BhbiBpZD0idGltZXIiPjwvc3Bhbj48L3A+PC9kaXY+PGRpdiBjbGFzcz0iY29udGVudCI+PC9kaXY+PGZvcm0gYWN0aW9uPSJzdWJtaXRfZXhhbS5waHAiaWQ9ImV4YW1Gb3JtIm1ldGhvZD0iUE9TVCI+PGlucHV0IG5hbWU9InVzZXJfaWQidHlwZT0iaGlkZGVuInZhbHVlPSI8P3BocCAgZWNobyAkdXNlcl9pZDsgPz4KIj4gPGlucHV0IG5hbWU9ImNhdGVnb3J5X2lkInR5cGU9ImhpZGRlbiJ2YWx1ZT0iPD9waHAgIGVjaG8gJGNhdGVnb3J5X2lkOyA/PgoiPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjw/cGhwICBmb3JlYWNoICgkcXVlc3Rpb25zIGFzICRyb3cpIHsgZWNobyAiXHgzY1x4NjRcMTUxXHg3Nlw3NiI7IGVjaG8gIlx4M2NcMTYwXHgzZSIgLiBodG1sc3BlY2lhbGNoYXJzKCRyb3dbIlx4NzFcMTY1XHg2NVwxNjNcMTY0XHg2OVwxNTdcMTU2XHg1Zlx4NzRceDY1XDE3MFwxNjQiXSkgLiAiXDc0XHgyZlwxNjBceDNlIjsgZWNobyAiXDc0XDE1MVwxNTZcMTYwXHg3NVwxNjRcNDBceDc0XHg3OVx4NzBcMTQ1XDc1XHgyN1wxNjJceDYxXDE0NFwxNTFcMTU3XHgyN1x4MjBcMTU2XHg2MVx4NmRceDY1XDc1XDQ3XDE0MVwxNTZceDczXDE2N1x4NjVcMTYyXDEzMyIgLiAkcm93WyJceDY5XDE0NCJdIC4gIlx4NWRceDI3XHgyMFwxNjZcMTQxXDE1NFx4NzVcMTQ1XHgzZFw0N1wxMDFceDI3XHgyMFx4NzJceDY1XDE2MVwxNjVcMTUxXDE2MlwxNDVceDY0XDc2XDQwIiAuIGh0bWxzcGVjaWFsY2hhcnMoJHJvd1siXHg2Zlx4NzBcMTY0XHg2OVx4NmZcMTU2XHg1ZlwxNDEiXSkgLiAiXHgzY1x4NjJceDcyXHgzZSI7IGVjaG8gIlx4M2NceDY5XHg2ZVx4NzBcMTY1XHg3NFx4MjBceDc0XHg3OVwxNjBcMTQ1XHgzZFx4MjdcMTYyXDE0MVwxNDRcMTUxXDE1N1x4MjdceDIwXHg2ZVwxNDFceDZkXHg2NVx4M2RceDI3XDE0MVx4NmVceDczXDE2N1wxNDVcMTYyXHg1YiIgLiAkcm93WyJceDY5XDE0NCJdIC4gIlwxMzVceDI3XHgyMFx4NzZcMTQxXHg2Y1wxNjVcMTQ1XHgzZFx4MjdcMTAyXDQ3XDc2XHgyMCIgLiBodG1sc3BlY2lhbGNoYXJzKCRyb3dbIlwxNTdceDcwXHg3NFx4NjlceDZmXHg2ZVx4NWZcMTQyIl0pIC4gIlw3NFwxNDJceDcyXDc2IjsgZWNobyAiXHgzY1wxNTFcMTU2XDE2MFwxNjVcMTY0XDQwXDE2NFx4NzlceDcwXHg2NVw3NVx4MjdcMTYyXHg2MVwxNDRcMTUxXHg2Zlx4MjdcNDBceDZlXDE0MVx4NmRceDY1XHgzZFx4MjdcMTQxXHg2ZVwxNjNcMTY3XDE0NVx4NzJceDViIiAuICRyb3dbIlx4NjlceDY0Il0gLiAiXDEzNVw0N1w0MFx4NzZceDYxXHg2Y1wxNjVceDY1XDc1XHgyN1wxMDNcNDdceDNlXDQwIiAuIGh0bWxzcGVjaWFsY2hhcnMoJHJvd1siXHg2Zlx4NzBceDc0XDE1MVwxNTdceDZlXDEzN1wxNDMiXSkgLiAiXHgzY1x4NjJceDcyXHgzZSI7IGVjaG8gIlx4M2NceDY5XDE1Nlx4NzBceDc1XDE2NFx4MjBceDc0XDE3MVx4NzBceDY1XDc1XDQ3XDE2MlwxNDFceDY0XDE1MVwxNTdcNDdcNDBceDZlXDE0MVwxNTVceDY1XHgzZFx4MjdceDYxXDE1Nlx4NzNcMTY3XDE0NVx4NzJcMTMzIiAuICRyb3dbIlx4NjlceDY0Il0gLiAiXDEzNVw0N1w0MFx4NzZcMTQxXHg2Y1wxNjVcMTQ1XHgzZFx4MjdceDQ0XHgyN1w3Nlx4MjAiIC4gaHRtbHNwZWNpYWxjaGFycygkcm93WyJcMTU3XDE2MFx4NzRceDY5XHg2Zlx4NmVcMTM3XDE0NCJdKSAuICJceDNjXDE0MlwxNjJcNzYiOyBlY2hvICJcNzRceDJmXHg2NFwxNTFcMTY2XHgzZVw3NFwxNTBceDcyXDc2IjsgfSA/Pgo8YnV0dG9uIHR5cGU9InN1Ym1pdCI+U3VibWl0IEV4YW08L2J1dHRvbj48L2Zvcm0+PC9kaXY+PC9odG1sPjw/cGhwICB9IGVsc2UgeyBlY2hvICJceDRlXHg2Zlw0MFwxNjFceDc1XHg2NVx4NzNcMTY0XDE1MVx4NmZcMTU2XDE2M1x4MjBceDYxXHg3Nlx4NjFceDY5XDE1NFx4NjFcMTQyXHg2Y1x4NjVceDIwXDE0Nlx4NmZcMTYyXHgyMFx4NzRcMTUwXHg2OVwxNjNcNDBcMTQ1XHg3OFx4NjFcMTU1XHgyZSI7IH0gZ290byBTVGY4aTsgVHhnSEY6IA==')); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 4a28641338f6277019d5f3ab186e4eff |
Eval Count | 1 |
Decode Time | 63 ms |