* Accès 2 : compte connecté dont com_id est dans KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS */ $blnNoMaintenance = true; session_start(); require_once __DIR__ . '/php/inc_fonctions.php'; header('X-Robots-Tag: noindex, nofollow'); header('Cache-Control: no-store, no-cache, must-revalidate'); global $objDatabase, $vDomaine; function kc_set_allowed_com_ids() { if (!defined('KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS') || KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS === '') { return []; } $arr = array_map('intval', explode(',', KEYCHAIN_HTTP_EDIT_ALLOWED_COM_IDS)); return array_values(array_filter($arr, function ($id) { return $id > 0; })); } function kc_set_com_id_authorized() { if (!isset($_SESSION['com_id']) || (int) $_SESSION['com_id'] <= 0) { return false; } return in_array((int) $_SESSION['com_id'], kc_set_allowed_com_ids(), true); } $strSecret = isset($_GET['k']) ? (string) $_GET['k'] : ''; $blnAuthSecret = ($strSecret !== '' && hash_equals(KEYCHAIN_HTTP_EDIT_SECRET, $strSecret)); if ($blnAuthSecret) { $_SESSION['kc_edit_auth_key'] = 1; } $blnAuthUser = kc_set_com_id_authorized(); $blnAuth = $blnAuthSecret || $blnAuthUser || !empty($_SESSION['kc_edit_auth_key']); if (!$blnAuth) { if (!isset($_SESSION['com_id']) && kc_set_allowed_com_ids() !== []) { $_SESSION['redirect_after_login'] = $_SERVER['REQUEST_URI']; header('Location: ' . $vDomaine . '/compte'); exit; } http_response_code(403); echo '
Accès refusé.
'; if (kc_set_allowed_com_ids() !== []) { echo ''; } echo ''; exit; } if (empty($_SESSION['kc_edit_csrf'])) { $_SESSION['kc_edit_csrf'] = bin2hex(random_bytes(16)); } $strCsrf = $_SESSION['kc_edit_csrf']; $strBasePath = $_SERVER['PHP_SELF']; function kc_set_page_url(array $params = []) { global $strBasePath; $query = $params; if (!empty($_SESSION['kc_edit_auth_key']) && !isset($query['k'])) { $query = array_merge(['k' => KEYCHAIN_HTTP_EDIT_SECRET], $query); } $qs = http_build_query($query); return $strBasePath . ($qs !== '' ? '?' . $qs : ''); } $strPageUrl = kc_set_page_url(); $strBaseUrlHtml = htmlspecialchars($strPageUrl, ENT_QUOTES, 'UTF-8'); $blnCanShareLink = !empty($_SESSION['kc_edit_auth_key']); $strShareUrl = ''; if ($blnCanShareLink) { $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; $strShareUrl = $scheme . '://' . $_SERVER['HTTP_HOST'] . kc_set_page_url(['k' => KEYCHAIN_HTTP_EDIT_SECRET]); } $strUserName = ''; if ($blnAuthUser && !empty($_SESSION['com_prenom'])) { $strUserName = trim((string) $_SESSION['com_prenom']); } elseif ($blnAuthUser && !empty($_SESSION['com_info']['com_prenom'])) { $strUserName = trim((string) $_SESSION['com_info']['com_prenom']); } $strMessage = ''; $strMessageClass = ''; $intPk = 0; $strCurrentHttp = ''; $blnShowUrlForm = false; $strVehiculeSaisi = ''; if (!empty($_GET['ok'])) { $strMessage = 'Le lien de votre code QR a été enregistré. Vous pouvez modifier un autre véhicule ci-dessous.'; $strMessageClass = 'ok'; } function kc_set_parse_vehicule_no($input) { $input = trim((string) $input); if ($input === '' || !ctype_digit($input)) { return 0; } $no = intval($input); if ($no <= 0) { return 0; } return $no + KEYCHAIN_HTTP_EDIT_SHIFT; } function kc_set_validate_url($url) { $url = trim($url); if ($url === '') { return false; } if (!filter_var($url, FILTER_VALIDATE_URL)) { return false; } $parts = parse_url($url); if (empty($parts['scheme']) || !in_array(strtolower($parts['scheme']), ['http', 'https'], true)) { return false; } return $url; } function kc_set_save_lien_for_pk($intPk, $strVehiculeSaisi, $strNewHttp) { global $objDatabase, $strMessage, $strMessageClass, $strCurrentHttp, $blnShowUrlForm; if ($strVehiculeSaisi !== '' && kc_set_parse_vehicule_no($strVehiculeSaisi) !== $intPk) { $intPk = 0; } if ($intPk <= 0) { $strMessage = 'Veuillez recommencer avec votre numéro de véhicule.'; $strMessageClass = 'err'; return false; } $sqlCheck = 'SELECT pk_key_chain FROM key_chain WHERE pk_key_chain = ' . $intPk; if ($objDatabase->fxGetRow($sqlCheck) === null) { $strMessage = 'Code QR introuvable. Vérifiez votre numéro de véhicule.'; $strMessageClass = 'err'; return false; } $sqlUpdate = "UPDATE key_chain SET key_chain_http = '" . $objDatabase->fxEscape($strNewHttp) . "' WHERE pk_key_chain = " . $intPk; if ($objDatabase->fxQuery($sqlUpdate) === false) { $strMessage = 'Impossible d’enregistrer pour le moment. Réessayez plus tard.'; $strMessageClass = 'err'; $blnShowUrlForm = true; $strCurrentHttp = $strNewHttp; return false; } header('Location: ' . kc_set_page_url(['ok' => '1'])); exit; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $strPostedCsrf = isset($_POST['csrf']) ? (string) $_POST['csrf'] : ''; if (!hash_equals($strCsrf, $strPostedCsrf)) { $strMessage = 'Veuillez recharger la page et réessayer.'; $strMessageClass = 'err'; } else { $strAction = isset($_POST['action']) ? (string) $_POST['action'] : ''; if ($strAction === 'load') { $strVehiculeSaisi = isset($_POST['vehicule_no']) ? trim((string) $_POST['vehicule_no']) : ''; $intPk = kc_set_parse_vehicule_no($strVehiculeSaisi); if ($intPk <= 0) { $strMessage = 'Veuillez entrer un numéro de véhicule valide.'; $strMessageClass = 'err'; } else { $sql = 'SELECT key_chain_http FROM key_chain WHERE pk_key_chain = ' . $intPk; $row = $objDatabase->fxGetRow($sql); if ($row === null || !isset($row['key_chain_http'])) { $strMessage = 'Aucun code QR trouvé pour ce numéro de véhicule.'; $strMessageClass = 'err'; } else { $strCurrentHttp = $row['key_chain_http']; $blnShowUrlForm = true; } } } elseif ($strAction === 'save') { $intPk = intval(isset($_POST['pk']) ? $_POST['pk'] : 0); $strVehiculeSaisi = isset($_POST['vehicule_no']) ? trim((string) $_POST['vehicule_no']) : ''; $strLienPost = isset($_POST['lien_qr']) ? trim((string) $_POST['lien_qr']) : ''; $strNewHttp = kc_set_validate_url($strLienPost); if ($strNewHttp === false) { $strMessage = 'Veuillez entrer une adresse Web valide (commençant par http:// ou https://).'; $strMessageClass = 'err'; $blnShowUrlForm = true; $strCurrentHttp = $strLienPost; } else { kc_set_save_lien_for_pk($intPk, $strVehiculeSaisi, $strNewHttp); } } elseif ($strAction === 'save_ms1') { $intPk = intval(isset($_POST['pk']) ? $_POST['pk'] : 0); $strVehiculeSaisi = isset($_POST['vehicule_no']) ? trim((string) $_POST['vehicule_no']) : ''; kc_set_save_lien_for_pk($intPk, $strVehiculeSaisi, 'https://ms1.ca'); } } } ?>Entrez votre numéro de véhicule. Vous pourrez ainsi changer le lien de votre code QR.
Véhicule
Sinon modifiez l’adresse ci-dessus et appuyez sur Entrée pour enregistrer.