load(); } catch (Exception $e) { error_log("Errore nel caricamento del file .env: " . $e->getMessage()); ?> getConnection(); // Verifica che almeno uno degli ID sia passato $iddatadb = isset($_GET['iddatadb']) && !empty($_GET['iddatadb']) ? intval($_GET['iddatadb']) : null; $idquotations = isset($_GET['idquotations']) && !empty($_GET['idquotations']) ? intval($_GET['idquotations']) : null; if (!$iddatadb && !$idquotations) { error_log("Errore: ID riga o ID quotations non fornito"); ?> prepare("SELECT {$paramName}, {$field} FROM {$table} WHERE {$paramName} = ?"); $stmt->execute([$paramValue]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row) { error_log("Errore: Riga non trovata per {$paramName} = {$paramValue}"); ?> getMessage()); ?> prepare("SELECT id, file_path, file_name, description, uploaded_at FROM {$photoTable} WHERE {$photoParamName} = ? ORDER BY uploaded_at DESC"); $stmt->execute([$paramValue]); $photos = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { error_log("Errore query foto: " . $e->getMessage()); $photos = []; // Imposta array vuoto in caso di errore } // Definisci il percorso base per le foto $photoBasePath = '../photostrf/'; // Usa la variabile d'ambiente BASE_URL $baseUrl = rtrim($_ENV['BASE_URL'], '/'); $uploadUrl = $iddatadb ? $baseUrl . "/upload_photos_mobile.php?iddatadb=" . $iddatadb : $baseUrl . "/upload_photos_mobile.php?idquotations=" . $idquotations; // Genera il QR code con endroid/qr-code 6.0.6 $qrCodeDir = '../photostrf/qrcodes/'; if (!is_dir($qrCodeDir)) { mkdir($qrCodeDir, 0755, true); } $qrCodeFile = $qrCodeDir . "qrcode_{$id}.png"; $writer = new PngWriter(); $qrCode = new QrCode( data: $uploadUrl, encoding: new Encoding('UTF-8'), errorCorrectionLevel: ErrorCorrectionLevel::Low, size: 150, margin: 10, roundBlockSizeMode: RoundBlockSizeMode::Margin, foregroundColor: new Color(0, 0, 0), backgroundColor: new Color(255, 255, 255) ); $result = $writer->write($qrCode); $result->saveToFile($qrCodeFile); ?>