S A R - A T

Domande? Risposte!

Gli autori di Sar-At rispondono ai dubbi degli autori di siti

Gestione di apici e virgolette nel CMS

L'amore, ah, l'amore

Ultimo aggiornamento 15/11/2022

Domanda

Ho qualche problema quando i testi da inserire nelle mie pagine web contengono virgolette ed apici, particolarmente nel titolo della pagina o nei testi descrittivi delle immagini. Non capisco cosa faccia esattamente Sar-At per gestirle e, per la verità, neppure perché ci siano problemi.


Risposta

La questione è abbastanza intricata. Fortunatamente, le più recenti versioni del programma fanno moltissimo per risolvere tutte le problematiche in modo invisibile. Ecco una spiegazione completa.

Prima premessa: i caratteri " e ' (virgolette diritte ed apici diritti) hanno un significato speciale sia nel linguaggio PHP — quello da noi usato per scrivere Sar-At), sia nello HTML — quello con cui sono scritte tutte le pagine web — sia nel linguaggio SQL — quello usato per manipolare i database. In sostanza, non si possono usare così come sono.
In nessun caso ci sono problemi usando le virgolette curve o inglesi che dir si voglia, come “queste” e neppure gli apici ricurvi come ‘questi’ (se non vedete la differenza, ingrandite il testo di questa pagina usando i comandi da menu del vostro browser).

Per quanto riguarda il SQL, tutte le versioni di Sar-At gestiscono appropriatamente la presenza di virgolette e aggirano tutti i problemi.

Per quanto riguarda il linguaggio PHP, esiste una preferenza globale, cambiando la quale cambia il trattamento delle virgolette e degli apici. Questa preferenza si chiama magic_quotes. Gli autori del PHP suggeriscono (e, con la più recente versione del linguaggio, richiedono) che magic_quotes resti spento per motivi di sicurezza e le più recenti versioni di Sar-At si comportano di conseguenza.

Per quanto riguarda il linguaggio HTML, esiste un problema subdolo. Supponete di avere nel vostro sito una sezione immagini. Per ogni immagine voi volete memorizzare un documento JPEG, una didascalia e un testo di descrizione. Nelle pagine web che mostrano le immagini voi legittimamente scrivere una cosa di questo tipo:
<img alt='{didascalia}' src='{immagine}' /><br />
{testo_descrittivo}

Per chi non conosce lo HTML, questo significa: mostra l'immagine, sotto ad essa mostra il testo, quando il mouse si sposta sopra all'immagine mostra la didascalia in un riquadro giallo.

Sin qui, sembra tutto lineare. Cosa succede però se voi inserite nel vostro sito l'immagine di un cuore e come didascalia scrivete "l'amore"? Sino alla versione 6.1.1 di Sar-At, quel che ottenete in HTML è:
<img alt='l' amore' src='cuore.jpg' /><br />


La didascalia, che comincia con un apice, risulta terminata da un apice. La didascalia visibile ai visitatori è semplicemente la lettera L. Questo non va bene.

Per rimediare a questo problema, Sar-At codifica virgolette ed apici con il sistema delle entità SGML. Per chi conosce lo HTML: il risultato finale è
<img alt='l&#39; amore' src='cuore.jpg' /><br />
Per chi non lo conosce: virgolette ed apici vengono codificati e il visitatore vede effettivamente la scritta "L'amore".

Questa soluzione introduce un ulteriore problema. Quando noi stiamo scorrendo le immagini nella linguetta "Pagine" di Sar-At, se facciamo una ricerca usando il box "filtra" (quello mostrato nella illustrazione qui sopra) e cerchiamo in mezzo alle didascalie la frase "l'amore" rischiamo di non trovare la nostra immagine. Il problema viene risolto in Sar-At, che in questi casi cerca automaticamente nel database l'entità &#39;

{description