Visualizzazione post con etichetta web. Mostra tutti i post
Visualizzazione post con etichetta web. Mostra tutti i post

giovedì 2 ottobre 2008

Communicating thru Intenet

It's amazing how easy communicating thru Internet is. Just as an example yesterday I got a contact from Rick McKinney, an archer myth for myself! This is just the last important and/or famous person I met thru Internet, and in fact in the past I got contact with a lot of important developers (from PostgreSQL to Samba and Linux....).
This is one of the things I like the most about Internet: it does not matter who you are or what you do, you can always and easily meet people you only heard about!

martedì 30 settembre 2008

BlockSite

Mi è capitato di dover fare una installazione di computer ad una fiera, dove solo una parte all'interno di un sito doveva essere visibile. Solitamente quando era necessario bloccare determinati sit usavo il trucco di impostare nel browser web un proxy fittizio e di imporre il non utilizzo del proxy per i domini sbloccati. Ma per rendere accessibile solo la parte di un sito ho dovuto installare una estensione apposita di Mozilla Firefox: BlockSite. Tramite questo strumento è possibile impostare una lista di URL come whitelist o blacklist (nel mio caso whitelist), e quindi stabilire effettivamente quali URL possono essere accessibili e quali bloccati.
Nel mio caso specifico è stato sufficiente impostare nelle preferenze di BlockSite gli URL da sbloccare (whitelist) senza specificare nulla nella blacklist (quindi avendo bloccati tutti i siti), e di rimuovere il warning utente per i siti bloccati (questo per non infastidire i navigatori). Il risultato è che chiunque provi a navigare al di fuori della whitelist non ci riesce, e nessun errore viene visualizzato: semplicemente il browser web non si sposta dalla pagina correntemente caricata (quindi dall'URL in whitelist).

giovedì 24 aprile 2008

WebCalendar: bloccare gli inserimenti degli appuntamenti oltre una certa data

Utilizzo il comodo e bello WebCalendar, un calendario web semplice e potente che si appoggia ad un database SQL (io uso PostgreSQL) per memorizzare gli eventi e la profilazione utente.
Mi è stato chiesto di fare una modifica affinché il calendario non permettesse più l'inserimento di eventi oltre una data prefissata, e non avendo trovato nessuna funzionalità allo scopo, ho deciso di modificare il codice sorgente.
Premetto che non so assolutamente nulla di PHP (codice con il quale il calendario è implementato).
La prima idea che mi è venuta in mente è stata quella di modificare i file relativi alla visualizzazione del calendario (es. week.php e day.php) affinché disabilitassero i link per le date superiori a quelle di fine attività. Ovviamente questa non è una buona idea per due motivi:
  • occorre inserire gli stessi controlli in più file e, soprattutto, ricordarsi di abilitare tali controlli per ogni nuova vista;
  • la data di visualizzazione viene passata come parametro get agli script, e quindi un utente malizioso potrebbe comunque riuscire ad avere accesso al calendario in una data successiva quella di fine attività.
Ho quindi deciso di mettere mano al file che consente l'editazione (e la memorizzazione) di un appuntamento: edit_entry.php. In questo file ho inserito il seguente controllo subito prima della visualizzazione del form di editazione:


// Controllo che la data di fine calendario non sia superata
$endDate = "20080430";
if( $cal_date > $endDate ){
echo "Data di fine attivita' superata";
$can_edit = 0;
}


La variabile $endDate viene inizializzata al valore di fine attività, nel formato YYYYMMDD, mentre la variabile $cal_date contiene la data con la quale è stata richiamata la form di editazione. A questo punto il controllo fra le due variabili di cui sopra verifica se lasciare il form abilitato o disabilitarlo ($can_edit = 0) e stampare un messaggio di warning per l'utente.