* 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é'; echo '

Accès refusé.

'; if (kc_set_allowed_com_ids() !== []) { echo '

Se connecter

'; } 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'); } } } ?> Code QR — lien de redirection

Code QR

Bonjour .

Entrez votre numéro de véhicule. Vous pourrez ainsi changer le lien de votre code QR.

Lien à envoyer aux autres

Chaque personne ouvre ce lien et entre son numéro de véhicule.

Remplissez le numéro, puis cliquez ou appuyez sur Entrée.

Véhicule

Ou enregistrer directement le lien par défaut :

Sinon modifiez l’adresse ci-dessus et appuyez sur Entrée pour enregistrer.

← Autre numéro de véhicule