Per un tema o uno script venduto a chi non è uno sviluppatore, spegnere il sito su una copia senza licenza è la mossa sbagliata: a soffrirne è di solito l’acquirente che ha ricopiato male la chiave, e a pagarla è la tua casella di assistenza. banniere() restituisce invece un piccolo avviso fisso: nient’altro cambia nella pagina.
require_once __DIR__ . '/Licence.php';
$reglages = @include __DIR__ . '/license.php';
$licence = new Licence(
is_array($reglages) ? $reglages['cle'] : '',
__DIR__ . '/cache'
);
register_shutdown_function(function () use ($licence) {
echo $licence->banniere('My theme');
});
L’acquirente lo fa sparire mettendo la sua chiave in un file, accanto alla libreria. Quel file è l’unica cosa che deve toccare.
<?php
return array(
'cle' => '',
);
Restituisce una stringa vuota quando la licenza è valida, e anche quando la rete è caduta: un visitatore non vede mai un avviso perché il nostro server ha avuto una brutta nottata. Con una chiave di sviluppo lo dice, con discrezione, ed è esattamente ciò che vuoi mentre costruisci.
Un tema HTML, un file Figma, un set di icone, un font: niente di tutto ciò gira su un server che puoi interrogare. Tutto quello che consegni viene letto, modificato e ridistribuito da chi possiede i file. Non c’è alcun controllo da aggiungere, e non esiste una versione di questa pagina in cui le cose cambino.
Non fingere. Uno script offuscato che chiama casa da una pagina statica, un’impronta nascosta in un canvas, una build che si rompe dopo trenta giorni: tutto questo lo toglie in un pomeriggio l’unica persona che ti avrebbe piratato, e tutto questo finisce in un ticket di assistenza dei cinquanta che hanno pagato. Spenderesti la tua credibilità per non proteggere nulla.
Quello che esiste invece agisce alla consegna, non all’esecuzione. Ogni download viene riconfezionato per l’acquirente che l’ha richiesto, e porta tre cose:
È tracciabilità, non prevenzione, e non te la venderemo per altro: un acquirente che cancella il file e svuota il commento se ne va con una copia pulita. Quello che ti dà è un nome quando una copia spunta dove non dovrebbe, un motivo perché quell’acquirente ci pensi due volte, e le due cose che una copia piratata non ha mai: gli aggiornamenti e la tua assistenza.
Qui conta una distinzione. Se il tuo tema contiene del PHP — un modulo di contatto, un file di configurazione, un include — allora gira su un server, il controllo qui sopra è reale e l’avviso funziona. Solo nel caso completamente statico, HTML e CSS e nient’altro, non esiste alcun controllo a runtime.
Scrivici dalla tua area autore. Una domanda che è stato necessario porre significa di solito che a questa pagina manca un paragrafo.