diff --git a/Connections/cmctrfdb.php b/Connections/cmctrfdb.php
index 7ffb319..639edb6 100644
--- a/Connections/cmctrfdb.php
+++ b/Connections/cmctrfdb.php
@@ -2,20 +2,53 @@
# FileName="WADYN_MYSQLI_CONN.htm"
# Type="MYSQL"
# HTTP="true"
-$hostname_cmctrfdb = "localhost";
-$database_cmctrfdb = "cmccopia";
-$username_cmctrfdb = "solocla";
-$password_cmctrfdb = "!Massarosa2";
+
+@session_start();
+
+/*
+|--------------------------------------------------------------------------
+| Load Composer and .env
+|--------------------------------------------------------------------------
+| This file is inside: cmccopiaoriginale/Connections/
+| vendor and .env are inside: cmccopiaoriginale/
+*/
+
+require_once __DIR__ . '/../vendor/autoload.php';
+
+$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
+$dotenv->safeLoad();
+
+/*
+|--------------------------------------------------------------------------
+| Database configuration from .env
+|--------------------------------------------------------------------------
+*/
+
+$hostname_cmctrfdb = $_ENV['DB_HOST'] ?? getenv('DB_HOST') ?? 'localhost';
+$database_cmctrfdb = $_ENV['DB_DATABASE'] ?? getenv('DB_DATABASE') ?? '';
+$username_cmctrfdb = $_ENV['DB_USERNAME'] ?? getenv('DB_USERNAME') ?? '';
+$password_cmctrfdb = $_ENV['DB_PASSWORD'] ?? getenv('DB_PASSWORD') ?? '';
$servername = $hostname_cmctrfdb;
$username = $username_cmctrfdb;
$password = $password_cmctrfdb;
$dbname = $database_cmctrfdb;
-@session_start();
+/*
+|--------------------------------------------------------------------------
+| MySQLi connection
+|--------------------------------------------------------------------------
+*/
$cmctrfdb = mysqli_init();
-if (defined("MYSQLI_OPT_INT_AND_FLOAT_NATIVE")) $cmctrfdb->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, TRUE);
-$cmctrfdb->real_connect($hostname_cmctrfdb, $username_cmctrfdb, $password_cmctrfdb, $database_cmctrfdb) or die("Connect Error: " . mysqli_connect_error());
-?>
\ No newline at end of file
+if (defined("MYSQLI_OPT_INT_AND_FLOAT_NATIVE")) {
+ $cmctrfdb->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
+}
+
+$cmctrfdb->real_connect(
+ $hostname_cmctrfdb,
+ $username_cmctrfdb,
+ $password_cmctrfdb,
+ $database_cmctrfdb
+) or die("Connect Error: " . mysqli_connect_error());
diff --git a/composer.json b/composer.json
index 61d7067..d9d8bc9 100644
--- a/composer.json
+++ b/composer.json
@@ -47,6 +47,7 @@
"vanguardapp/activity-log": "^5.0",
"vanguardapp/announcements": "^5.0",
"vanguardapp/plugins": "^5.0",
+ "vlucas/phpdotenv": "^5.5",
"webpatser/laravel-countries": "dev-master"
},
"require-dev": {
@@ -54,10 +55,11 @@
"barryvdh/laravel-ide-helper": "^2.8",
"brianium/paratest": "^7.1",
"fakerphp/faker": "^1.9.1",
+ "laravel/sail": "^1.0",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^7.0",
"phpunit/phpunit": "^10.0",
- "laravel/sail": "^1.0",
+ "robmorgan/phinx": "^0.16.12",
"spatie/laravel-ignition": "^2.0"
},
"autoload": {
diff --git a/composer.lock b/composer.lock
index 65792ae..184c5aa 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "74eabfd6eabed5b7a287ed59958be1dd",
+ "content-hash": "63d9208be1d64ed3a27b520913b605df",
"packages": [
{
"name": "akaunting/laravel-setting",
@@ -7777,6 +7777,388 @@
],
"time": "2023-03-13T10:11:07+00:00"
},
+ {
+ "name": "cakephp/chronos",
+ "version": "3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/chronos.git",
+ "reference": "e6e777b534244911566face8a5dbdbd7f7bda5a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/chronos/zipball/e6e777b534244911566face8a5dbdbd7f7bda5a6",
+ "reference": "e6e777b534244911566face8a5dbdbd7f7bda5a6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/clock": "^1.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "cakephp/cakephp-codesniffer": "^5.0",
+ "phpunit/phpunit": "^10.5.58 || ^11.5.3 || ^12.1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cake\\Chronos\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "http://nesbot.com"
+ },
+ {
+ "name": "The CakePHP Team",
+ "homepage": "https://cakephp.org"
+ }
+ ],
+ "description": "A simple API extension for DateTime.",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/cakephp/chronos/issues",
+ "source": "https://github.com/cakephp/chronos"
+ },
+ "time": "2026-04-10T02:50:39+00:00"
+ },
+ {
+ "name": "cakephp/core",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/core.git",
+ "reference": "f1046353dd45ab79610d50ef088d5feecd26b115"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/core/zipball/f1046353dd45ab79610d50ef088d5feecd26b115",
+ "reference": "f1046353dd45ab79610d50ef088d5feecd26b115",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/utility": "^5.4.0",
+ "league/container": "^5.1",
+ "php": ">=8.2",
+ "psr/container": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "psr/container-implementation": "^2.0"
+ },
+ "suggest": {
+ "cakephp/cache": "To use Configure::store() and restore().",
+ "cakephp/event": "To use PluginApplicationInterface or plugin applications.",
+ "league/container": "To use Container and ServiceProvider classes"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.5.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "psr-4": {
+ "Cake\\Core\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/core/graphs/contributors"
+ }
+ ],
+ "description": "CakePHP Framework Core classes",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "cakephp",
+ "core",
+ "framework"
+ ],
+ "support": {
+ "forum": "https://stackoverflow.com/tags/cakephp",
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/cakephp/issues",
+ "source": "https://github.com/cakephp/core"
+ },
+ "time": "2026-07-19T15:27:06+00:00"
+ },
+ {
+ "name": "cakephp/database",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/database.git",
+ "reference": "9c23364ffe580ad5716062160c8c9b8dbb644a43"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/database/zipball/9c23364ffe580ad5716062160c8c9b8dbb644a43",
+ "reference": "9c23364ffe580ad5716062160c8c9b8dbb644a43",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/chronos": "^3.3",
+ "cakephp/core": "^5.4.0",
+ "cakephp/datasource": "^5.4.0",
+ "cakephp/event": "^5.4.0",
+ "php": ">=8.2",
+ "psr/log": "^3.0"
+ },
+ "require-dev": {
+ "cakephp/i18n": "^5.4.0",
+ "cakephp/log": "^5.4.0",
+ "cakephp/utility": "^5.4.0"
+ },
+ "suggest": {
+ "cakephp/i18n": "If you are using locale-aware datetime formats.",
+ "cakephp/log": "If you want to use query logging without providing a logger yourself.",
+ "cakephp/utility": "If you want to use EnumLabelTrait."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cake\\Database\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/database/graphs/contributors"
+ }
+ ],
+ "description": "Flexible and powerful Database abstraction library with a familiar PDO-like API",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "abstraction",
+ "cakephp",
+ "database",
+ "database abstraction",
+ "pdo"
+ ],
+ "support": {
+ "forum": "https://stackoverflow.com/tags/cakephp",
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/cakephp/issues",
+ "source": "https://github.com/cakephp/database"
+ },
+ "time": "2026-07-28T18:27:47+00:00"
+ },
+ {
+ "name": "cakephp/datasource",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/datasource.git",
+ "reference": "a951c9c64ac0815c0393e50259068cc01da7b14b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/datasource/zipball/a951c9c64ac0815c0393e50259068cc01da7b14b",
+ "reference": "a951c9c64ac0815c0393e50259068cc01da7b14b",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/core": "^5.4.0",
+ "php": ">=8.2",
+ "psr/simple-cache": "^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "cakephp/cache": "^5.4.0",
+ "cakephp/collection": "^5.4.0",
+ "cakephp/utility": "^5.4.0"
+ },
+ "suggest": {
+ "cakephp/cache": "If you decide to use Query caching.",
+ "cakephp/collection": "If you decide to use ResultSetInterface.",
+ "cakephp/utility": "If you decide to use EntityTrait."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cake\\Datasource\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/datasource/graphs/contributors"
+ }
+ ],
+ "description": "Provides connection managing and traits for Entities and Queries that can be reused for different datastores",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "cakephp",
+ "connection management",
+ "datasource",
+ "entity",
+ "query"
+ ],
+ "support": {
+ "forum": "https://stackoverflow.com/tags/cakephp",
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/cakephp/issues",
+ "source": "https://github.com/cakephp/datasource"
+ },
+ "time": "2026-07-19T15:27:06+00:00"
+ },
+ {
+ "name": "cakephp/event",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/event.git",
+ "reference": "bddfe2634e76a3dfbc02d9c9fccd2e0a27530aba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/event/zipball/bddfe2634e76a3dfbc02d9c9fccd2e0a27530aba",
+ "reference": "bddfe2634e76a3dfbc02d9c9fccd2e0a27530aba",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/core": "^5.4.0",
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cake\\Event\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/event/graphs/contributors"
+ }
+ ],
+ "description": "CakePHP event dispatcher library that helps implementing the observer pattern",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "cakephp",
+ "dispatcher",
+ "event",
+ "observer pattern"
+ ],
+ "support": {
+ "forum": "https://stackoverflow.com/tags/cakephp",
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/cakephp/issues",
+ "source": "https://github.com/cakephp/event"
+ },
+ "time": "2026-07-19T15:27:06+00:00"
+ },
+ {
+ "name": "cakephp/utility",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/utility.git",
+ "reference": "4e5b69fbef582d2a04087ae5823567c472f05a42"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/utility/zipball/4e5b69fbef582d2a04087ae5823567c472f05a42",
+ "reference": "4e5b69fbef582d2a04087ae5823567c472f05a42",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/core": "^5.4.0",
+ "php": ">=8.2"
+ },
+ "suggest": {
+ "ext-intl": "To use Text::transliterate() or Text::slug()",
+ "lib-ICU": "To use Text::transliterate() or Text::slug()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-5.next": "5.5.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Cake\\Utility\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/utility/graphs/contributors"
+ }
+ ],
+ "description": "CakePHP Utility classes such as Inflector, String, Hash, and Security",
+ "homepage": "https://cakephp.org",
+ "keywords": [
+ "cakephp",
+ "hash",
+ "inflector",
+ "security",
+ "string",
+ "utility"
+ ],
+ "support": {
+ "forum": "https://stackoverflow.com/tags/cakephp",
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/cakephp/issues",
+ "source": "https://github.com/cakephp/utility"
+ },
+ "time": "2026-07-19T15:27:06+00:00"
+ },
{
"name": "composer/class-map-generator",
"version": "1.0.0",
@@ -8635,6 +9017,90 @@
},
"time": "2023-03-06T14:23:15+00:00"
},
+ {
+ "name": "league/container",
+ "version": "5.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/container.git",
+ "reference": "58accbc032f0090a9bd08326f93062c5a658b2c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/container/zipball/58accbc032f0090a9bd08326f93062c5a658b2c5",
+ "reference": "58accbc032f0090a9bd08326f93062c5a658b2c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^2.0.2",
+ "psr/event-dispatcher": "^1.0"
+ },
+ "provide": {
+ "psr/container-implementation": "^1.0"
+ },
+ "replace": {
+ "orno/di": "~2.0"
+ },
+ "require-dev": {
+ "nette/php-generator": "^4.1",
+ "nikic/php-parser": "^5.0",
+ "phpstan/phpstan": "^2.1.11",
+ "phpunit/phpunit": "^10.5.45|^11.5.15|^12.0",
+ "roave/security-advisories": "dev-latest",
+ "scrutinizer/ocular": "^1.9",
+ "squizlabs/php_codesniffer": "^3.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-3.x": "3.x-dev",
+ "dev-4.x": "4.x-dev",
+ "dev-5.x": "5.x-dev",
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Container\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Phil Bennett",
+ "email": "mail@philbennett.co.uk",
+ "role": "Developer"
+ }
+ ],
+ "description": "A fast and intuitive dependency injection container.",
+ "homepage": "https://github.com/thephpleague/container",
+ "keywords": [
+ "container",
+ "dependency",
+ "di",
+ "injection",
+ "league",
+ "provider",
+ "service"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/container/issues",
+ "source": "https://github.com/thephpleague/container/tree/5.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/philipobenito",
+ "type": "github"
+ }
+ ],
+ "time": "2026-03-19T18:52:39+00:00"
+ },
{
"name": "maximebf/debugbar",
"version": "v1.18.2",
@@ -9614,6 +10080,141 @@
},
"time": "2021-02-03T23:26:27+00:00"
},
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "robmorgan/phinx",
+ "version": "0.16.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/phinx.git",
+ "reference": "1cce44387a9146dc04c312e6a231b17fb30385cd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/phinx/zipball/1cce44387a9146dc04c312e6a231b17fb30385cd",
+ "reference": "1cce44387a9146dc04c312e6a231b17fb30385cd",
+ "shasum": ""
+ },
+ "require": {
+ "cakephp/database": "^5.0.2",
+ "composer-runtime-api": "^2.0",
+ "php-64bit": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/config": "^4.0|^5.0|^6.0|^7.0|^8.0",
+ "symfony/console": "^6.0|^7.0|^8.0"
+ },
+ "require-dev": {
+ "cakephp/cakephp-codesniffer": "^5.0",
+ "cakephp/i18n": "^5.0",
+ "ext-json": "*",
+ "ext-pdo": "*",
+ "phpunit/phpunit": "^10.5",
+ "symfony/yaml": "^4.0|^5.0|^6.0|^7.0|^8.0"
+ },
+ "suggest": {
+ "ext-json": "Install if using JSON configuration format",
+ "ext-pdo": "PDO extension is needed",
+ "symfony/yaml": "Install if using YAML configuration format"
+ },
+ "bin": [
+ "bin/phinx"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Phinx\\": "src/Phinx/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rob Morgan",
+ "email": "robbym@gmail.com",
+ "homepage": "https://robmorgan.id.au",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Woody Gilk",
+ "email": "woody.gilk@gmail.com",
+ "homepage": "https://shadowhand.me",
+ "role": "Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "rquadling@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/phinx/graphs/contributors",
+ "role": "Developer"
+ }
+ ],
+ "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.",
+ "homepage": "https://phinx.org",
+ "keywords": [
+ "database",
+ "database migrations",
+ "db",
+ "migrations",
+ "phinx"
+ ],
+ "support": {
+ "issues": "https://github.com/cakephp/phinx/issues",
+ "source": "https://github.com/cakephp/phinx/tree/0.16.12"
+ },
+ "time": "2026-07-03T07:27:17+00:00"
+ },
{
"name": "sebastian/cli-parser",
"version": "2.0.0",
@@ -10816,6 +11417,155 @@
],
"time": "2023-01-24T07:20:39+00:00"
},
+ {
+ "name": "symfony/config",
+ "version": "v6.4.43",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "e39cdd91b2adf67a117bea29660b73d896937d86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/e39cdd91b2adf67a117bea29660b73d896937d86",
+ "reference": "e39cdd91b2adf67a117bea29660b73d896937d86",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/finder": "<5.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v6.4.43"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-07-21T09:46:53+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v7.4.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "ff16a16bf87fdf264638b8f6995b3515975e3c79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/ff16a16bf87fdf264638b8f6995b3515975e3c79",
+ "reference": "ff16a16bf87fdf264638b8f6995b3515975e3c79",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0|^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v7.4.15"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-07-22T07:36:05+00:00"
+ },
{
"name": "symfony/yaml",
"version": "v6.2.7",
@@ -10952,6 +11702,6 @@
"php": "^8.1.0",
"ext-json": "*"
},
- "platform-dev": [],
+ "platform-dev": {},
"plugin-api-version": "2.6.0"
}
diff --git a/phinx.php b/phinx.php
new file mode 100644
index 0000000..84fd54b
--- /dev/null
+++ b/phinx.php
@@ -0,0 +1,29 @@
+load();
+
+return [
+ 'paths' => [
+ 'migrations' => __DIR__ . '/db/migrations',
+ 'seeds' => __DIR__ . '/db/seeds',
+ ],
+ 'environments' => [
+ 'default_migration_table' => 'phinxlog',
+ 'default_environment' => 'production',
+ 'production' => [
+ 'adapter' => 'mysql',
+ 'host' => $_ENV['DB_HOST'],
+ 'name' => $_ENV['DB_DATABASE'],
+ 'user' => $_ENV['DB_USERNAME'],
+ 'pass' => $_ENV['DB_PASSWORD'],
+ 'port' => 3306,
+ 'charset' => 'utf8mb4',
+ ],
+ ],
+ 'version_order' => 'creation',
+];
diff --git a/public/adddocument.php b/public/adddocument.php
index 5febddc..0cbcb9e 100644
--- a/public/adddocument.php
+++ b/public/adddocument.php
@@ -70,6 +70,64 @@ $certname->execute(); ?>
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- getColumnVal("idcertification") != '5') and ($trfnumberfinal->getColumnVal("idcertification") != '6')) { ?>
-
-
-
-
-
-
-
-
-
Foto frontale e laterale
-
-
-
-
-
-
-
-
-
-
-
-
- getColumnVal("idarticletype") == '1') {
- $photo1 = $photoshoesside;
- $photo2 = $photoshoessole;
- } elseif ($trfnumberfinal->getColumnVal("idarticletype") == '2') {
- $photo1 = $photogloveup;
- $photo2 = $photoglovebottom;
- } elseif ($trfnumberfinal->getColumnVal("idarticletype") == '3') {
- $photo1 = $photomasksidea;
- $photo2 = $photomasksideb;
- } ?>
- |
- |
- |
-
-
- |
-
- |
- |
-
-
-
-
-
- |
-
-
-
- getColumnVal("photoone"))) { ?>
- " height="200" alt="" />
-
-
- |
-
- |
-
-
- getColumnVal("phototwo"))) { ?>
-
- " height="200" alt="" />
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setQuery("SELECT * FROM fileattached WHERE fileattached.idtrfdetails='$idtrf'");
- $filenamelist->execute();
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- |
-
- |
-
-
-
-
- atEnd()) {
- $wa_startindex = $filenamelist->Index;
- ?>
-
- |
- " target="_blank">
- |
- getColumnVal("description_fileattached")); ?> |
-
-
-
- ">
- |
-
- moveNext();
- }
- $filenamelist->moveFirst(); //return RS to first record
- unset($wa_startindex);
- unset($wa_repeatcount);
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setQuery("SELECT * FROM additionalphotos WHERE additionalphotos.idtrf='$idtrf'");
- $additionalphotoslist->execute();
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- | - |
-
- |
-
-
-
- atEnd()) {
- $wa_startindex = $additionalphotoslist->Index;
- ?>
-
-
- " target="_blank">
- " class="thumbnail">
-
- |
-
-
- ">
-
-
- |
-
- moveNext();
- }
- $additionalphotoslist->moveFirst(); //return RS to first record
- unset($wa_startindex);
- unset($wa_repeatcount);
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-