Cerca avançada
Resultats de la cerca
S’han trobat 616 coincidències
Settings de CI4
La llibreria Settings de CodeIgniter 4 és una eina molt potent que serveix de pont entre els arxius de configuració estàtics (els que hem vist abans a app/Config) i la base de dades. El problema que resol: Normalment, si vols canviar el $siteName que està a C...
Session
Les Sessions a CodeIgniter 4 són el mecanisme que permet identificar un usuari a través de diferents pàgines. Com que el protocol web (HTTP) no té memòria, sense sessions el servidor no sabria que l'usuari que visita la pàgina "Perfil" és el mateix que fa un s...
Flashdata i Tempdata
Com funcionen Flashdata i Tempdata a CodeIgniter 4, totes dues formen part de la llibreria Session, però tenen cicles de vida diferents. Flashdata (Dades Flash) Què són? Són dades de sessió dissenyades per durar només una petició. Un cop l'usuari carrega la...
El problema
Sovint, ens quedem amb el INT AUTO_INCREMENT per comoditat, però preparar-los per a problemes del món real (seguretat, escalabilitat i distribució). L'AUTO_INCREMENT (o SERIAL en PostgreSQL) ha estat l'estàndard "per defecte" durant dècades. Però en l'arquitec...
UUID v4
L'enfocament "fàcil" per guardar l'UUID és com a VARCHAR(36). Tot i que ho enfocarem des d'aquest punt de vista fins al més òptim (Professional): guardar-lo com a BINARY(16). Això estalvia espai i millora lleugerament el rendiment de la memòria cau de la base ...
UUID v7
L'UUID v7 combina la unicitat distribuïda de l'UUID amb l'eficiència d'ordenació (localitat temporal) d'un ID autoincremental. Instal·lació de dependències Necessitem assegurar-nos que tenim una versió de ramsey/uuid que suporti la RFC 9562 (disponible des d...
Snowflake IDs
Aquesta opció és la preferida per arquitectures d'alt rendiment (High Frequency Trading, Xarxes Socials massives com Twitter/X, Instagram). El Snowflake ID (floc de neu) genera un enter de 64 bits (BIGINT) compost per: Un Timestamp (ms). Un ID de ...
ULID
ULID (Universally Unique Lexicographically Sortable Identifier) cobreix un punt dolç molt interessant: és tècnicament molt similar a l'UUID v7 (tots dos són de 128 bits i ordenables per temps), però la representació en text és molt més amigable. Mentre que un...
NanoID
NanoID és una opció fascinant que prové de l'ecosistema JavaScript. És l'equivalent modern i "hipster" dels UUIDs. El seu principal atractiu és que aconsegueix una seguretat de col·lisió similar a l'UUID v4 però amb una cadena molt més curta (normalment 21 car...
Codeigniter service
Què és un Service a CI4? Tècnicament, un Service a CodeIgniter 4 és simplement un mètode dins de la classe App\Config\Services (que hereta de CodeIgniter\Config\BaseService). Actua com un Contenidor de Dependències (Service Locator). La seva responsabilitat ...
Auth filter
Exemple. AuthFilter Aquest és l'estàndard per protegir rutes privades. Si l'usuari no té sessió, el filtre "talla" l'execució i redirigeix, de manera que el controlador protegit mai arriba a executar-se. 1. Creació del Filtre (app/Filters/AuthFilter.php) ...
La BBDD: Migration + Model + Entity + Seeder
La BBDD. Migració Primer, definim l'estructura. El camp password serà un VARCHAR(255) per allotjar el hash generat per password_hash (Bcrypt/Argon2). Fitxer: app/Database/Migrations/2026-06-01-000001_CreateUsersTable.php PHP <?php name...
El filter Autentica
Filter (Autentica) Implementem la lògica d'autenticació. Important: hem de registrar l'àlies després de crear la classe. Fitxer: app/Filters/Autentica.php <?php namespace App\Filters; use CodeIgniter\Filters\FilterInterface; use CodeIgniter\HTTP\Requ...
Controller: login + auth + logout + dashboard
Controller (UserDemo) Fitxer: app/Controllers/UserDemo.php <?php namespace App\Controllers; use App\Controllers\BaseController; use App\Models\UserModel; class UserDemo extends BaseController { // Mostra el formulari public function logi...
Vistes: login/logout + dashboard
Pàgina login Fitxer: app/Views/userdemo/login.php <!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <title>Login d'Usuari</title> <style> body { font-family: sans-serif; padding: 20px; } .alert { padding: 10px;...
Configuració de Routes
A l'arxiu app/Config/Routes.php, tens dues maneres principals d'aplicar el filtre autentica. Opció A: Aplicar a rutes individuals Això és útil si només tens una pàgina per protegir. $routes->get('userdemo/login', 'UserDemo::login'); $routes->post('userd...
Importar CSVs
A l'hora d'introduir informació en una base de dades, molt habitualment necessitarem incloure informació bàsica que ja podem obtenir d'un arxiu de dades tipus CSV, per incorporar-ho al projecte podem fer-ho amb dos enfocaments diferents: Inserció massiv...
Introducció a l'autenticació de dos factors
Què és l'Autenticació de Dos Factors (2FA)? L'autenticació de dos factors (2FA) és una capa de seguretat addicional que garanteix que qui intenta accedir a un compte és qui diu ser. El concepte es basa en la premissa que per a comprometre un compte, un atacan...