40 lines
842 B
PHP
40 lines
842 B
PHP
<?php
|
||
// qr_img.php
|
||
// Génération dynamique d’un QR code PNG via ?t=TOKEN
|
||
|
||
// IMPORTANT : aucun espace avant <?php
|
||
// Aucun echo avant les headers
|
||
|
||
require_once __DIR__ . '/../libs/phpqrcode-master/qrlib.php';
|
||
|
||
// Vérification du token
|
||
if (empty($_GET['t'])) {
|
||
http_response_code(400);
|
||
exit;
|
||
}
|
||
|
||
$strToken = trim($_GET['t']);
|
||
|
||
// Validation basique (évite injections bizarres)
|
||
if (!preg_match('/^[A-Za-z0-9]+$/', $strToken)) {
|
||
http_response_code(400);
|
||
exit;
|
||
}
|
||
|
||
// URL encodée dans le QR (landing page existante)
|
||
$strQrUrl = 'https://' . $_SERVER['HTTP_HOST'] . '/q.php?t=' . urlencode($strToken);
|
||
|
||
// Headers image
|
||
header('Content-Type: image/png');
|
||
header('Cache-Control: public, max-age=3600');
|
||
|
||
// Génération directe vers la sortie navigateur
|
||
QRcode::png(
|
||
$strQrUrl,
|
||
null,
|
||
QR_ECLEVEL_Q,
|
||
6
|
||
);
|
||
|
||
exit;
|