set

Mattepuffo's logo
Gestire i cookie con CodeIgniter

Gestire i cookie con CodeIgniter

Oggi vediamo come gestire i cookie attraverso il framework CodeIngiter.

In generale abbiamo tre funzioni:

  • get_cookie
  • set_cookie
  • delete_cookie

Nel mio caso sto usando i cookie per salvare la lingua scelta (Italiano o Inglese).

Per la gestione del cookie ho creato un model apposito da richiamare dove mi serve.

Fate attenzione che la funzione set_cookie è leggermente diversa dalla funzione setcookie nativa di PHP.

Ad esempio i parametri path e dominio sono invertiti, e in CI mancano alcuni parametri.

Vediamo questa classe che fa da model:

<?php

class Lang_model extends CI_Model {

    public function getLang() {
        if (get_cookie('LANG') == 'eng') {
            $lang = array(
                'allUtente' => 'User'
            );
        } else {
            $lang = array(
                'allUtente' => 'Utente'
            );
        }
        return $lang;
    }

    public function setDefaultLang() { // SETTA IL COOKIE LA PRIMA VOLTA CHE SI ACCEDE SE NON ESISTE
        if (!get_cookie('LANG')) {
            set_cookie("LANG", 'ita', time() + 2592000, 'www.sito.it', '/');
        }
    }

    public function setLang($lng) {
        set_cookie("LANG", $lng, time() + 2592000, 'www.sito.it', '/');
    }

}

Ho tre funzioni.

Nella prima reperisco il valore del cookie, e in base a quello imposto le parole/frasi/quello che vi serve, in una o nell'altra lingua.

Mattepuffo's logo
Login con Codeigniter

Login con Codeigniter

Continua lo studio di questo ottimo framewrok, che probabilmente adotterò per un mio prossimo lavoro.

Oggi vediamo come creare un semplice sistema di login.

Prima di tutto assicuratevi di caricare automaticamente due librerie e due helper; andate in application -> config -> autoload.php:

$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('url', 'form');

Poi in application -> config -> config.php potete impostare le sessioni:

$config['sess_cookie_name'] = 'my_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'my_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

Oltre al nome della sessione ho anche cambiato il parametro sess_expire_on_close in modo che alla chiusura del browser la sessione si chiuda.

Dopo questa configurazione base passiamo alla view:

<fieldset>
    <legend>Login</legend>
    <?php echo validation_errors(); ?>
    <?php echo form_open('login/dologin'); ?>
    <table>
        <tbody>
            <tr>
                <td>User:</td>
                <td><input type="text" name="username" value="" /></td>
            </tr>
            <tr>
                <td>Password:</td>
                <td><input type="password" name="password" value="" /></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="Login" name="submit" /></td>
            </tr>
    </table>
</form>
</fieldset>

Un semplice form che richiama la funzione dologin del nostro controller login.

A questo punto ci rimangono i due punti fonamentali: il controller e il model.

Mattepuffo's logo
Leggere feed RSS in Asp.NET e C#

Leggere feed RSS in Asp.NET e C#

Necessità: mostrare i titoli degli utlimi articoli del mio blog (questo qua insomma) sul mio sito (MatteoFerrone.com).

Il sio è scritto in Asp.NET e C#, e oggi vi spiego come farlo.

Come al solito avremo bisogno di un pò di codice C# nel code-behind della pagina, e un pò di Asp.NET con i suoi controlli.

Cominciamo dalla prima parte:

public partial class Blog : System.Web.UI.Page
{
  protected string title;
  protected string desc;

  protected void Page_Load(object sender, EventArgs e)
  {
   DataSet ds = new DataSet("rss");
   ds.ReadXml("https://www.mattepuffo.com/site/index.php?format=feed&type=rss");
   title = ds.Tables["item"].Rows[0]["title"] as string;
   desc = ds.Tables["item"].Rows[0]["description"] as string;
   rss.DataSource = ds.Tables["item"];
   rss.DataBind();
  }
}

Le variabili protected (e non private perchè sennò non sarebbero raggiungibili sulla pagina) rappresentano i dati che vogliamo vedere: il titolo e la descrizione.

Sotto nel caricamento della pagina creiamo un DataSet dove immagazzinare i dati.

Mattepuffo's logo
Impostare gli mnemonici in JTabbedPane

Impostare gli mnemonici in JTabbedPane

Il JTabbedPane è qual componente SWING che ci permette di creare interfacce grafiche a tab.

Se usate il Look & Feel di default del sistema operativo potete usare la classica combinazione Ctrl + TAB per spostarvi tra i vari tab.

Ma se usate un altro Look & Feel, o se lo volete a prescindere per un fattore di comodità, potete impostare una vostra combinazione di tasti per richiamare i vari tab.

Io da esempio ho messo ALT + 1 al primo tab, e ALT + 2 al secondo.

Se ci basta ALT + qualcosa, ci basta impostare lo mnemonico.

Farlo è molto semplice.

Prima di tutto istanziamo un JTabbedPane e aggiungiamo due JPanel:

javax.swing.JTabbedPane jTabbedPane1 = new javax.swing.JTabbedPane();

jTabbedPane1.addTab("Panel 1", jpanel1);

jTabbedPane1.addTab("Panel 2", jpanel2);

Grosso modo una cosa del genere (dipende anche da che IDE usate e se lo usate).

Mattepuffo's logo
Close The Door: controllo delle porte in Windows

Close The Door: controllo delle porte in Windows

Come tutti sappiamo i vari Sistemi Operativi aprono delle porte versao internet senza che non lo sappiamo (a meno che non abbiamo un firewall che ci avverta).

E Windows questo giochetto lo fa ancora di più.....

In rete però si trovano vari programmi che permettono di controllare le varie porte aperte.

Trovo molto interessante questo: CloseTheDoor (qui potete scaricare la versione portable).

Questo programmino ha molte funzioni interessanti.

In apertura mostra le varie porte aperte, l'interfaccia su cui è in ascolto, protocollo, servizio, ecc.

Mattepuffo's logo
Impostare filtri in JTable

Impostare filtri in JTable

Articolo riscritto

In questo articolo vediamo come impostare un filtro in una JTable, scrivendo dentro una JTextfield.

In pratica vogliamo ottenere quell'effetto per cui man mano che scriviamo, rimangono solo i dati che "assomigliano" a ciò che scriviamo.

Quello che ci serve è un TableRowSorter, impostato dopo l'inizializzazzione della nostra JTable.

Poi aggiungete una JTextField alla finestra, ed impostate un evento che intercetta quando scrivete.