• User Attivo

    Ciao Dark!

    Mi sto cimentando su CodeIgniter, me lo hanno consigliato più persone e con questo secondo tutorial in Italiano che trovo o ci provo adesso o mai più.

    Le prime domande:

    1. Alla pagina di download fanno scegliere tra la versione stable (attualmente 2.2.1) e quella in sviluppo attivo (attualmente 3.0 RC2).
      Hai idea se cambia molto o hai suggerimenti su quale scegliere?
      Dovrebbe servire per un sito definibile come "CMS" con iscrizione utenti e varie funzioni che dovrei completare entro dicembre.

    2. Su $this->db->escape().
      Si utilizza inserendo tra le parentesi la variabile da verificare ( tipo $this->db->escape($username) ) ?
      Se si, è possibile anche con unico comando fare l'escape di più variabili ($this->db->escape($username, $valore1, $valore2)) ?

    Inoltre, per quanto riguarda $_GET e $_POST, è valido:
    $username = (isset($_POST['username'])) ? trim($_POST['username']) : '';
    if (!get_magic_quotes_gpc()) { $username = addslashes($username); }
    $this->db->escape($username);

    O l'uso di $this->db->escape($username) permette di ignorare il controllo magic_quotes_gpc?

    Ottima guida come sempre, con l'altro sull'area privata ho iniziato con PHP, con questa ho le idee molto più chiare su CI e MVC. 😄


  • ModSenior

    Ciao,
    ti rispondo per punti:

    1. Puoi già utilizzare la versione 3.0 che ha solo problemi minori, ed è ormai questione di poco tempo per la stable.

    2. Devi utilizzarlo nella query, ogni valore che passi per fare ad esempio:

    WHERE nome = $username
    

    Deve essere cosi:

    WHERE nome = **$this->db->escape(**$username)
    

    NOTA: Non è necessario che metti tu manualmente gli apici, la funzione di occupa anche di questo aspetto oltre che dal garantirti la protezione da SQL INJECTION, per cui non sono necessarie operazioni con addslashes e simili.
    Fermo restando che se utilizzi l'ORM di codeigniter, invece di fare manualmente le query, non è necessario occuparsi di questo aspetto, in quanto viene già eseguito automaticamente.


  • User Attivo
    1. Perfetto, inizio direttamente con la documentazione della 3 allora, sperando che entro dicembre ci sia la stable.
    2. Ok, quindi quello basta per evitare gli altri controlli (a parte quelli specifici).

    Onestamente mi sfugge il suggerimento sull'ORM. Ho provato a fare una ricerca ma sembra un qualcosa da aggiungere e ci sarebbe più scelta (datamapper, doctrine, gas, ecc..). Però dal tuo consiglio sembrava un qualcosa di già incluso nel pacchetto di CI.

    Grazie!


  • ModSenior

  • User Attivo

    Nel settaggio dell'encryption key, come deve essere la chiave nel file config?
    Va bene una di quelle proposte in questo sito: randomkeygen.com
    Dove è indicato CodeIgniter Encryption Keys (Can be used for any other 256-bit key requirement)
    ?

    Impostata la chiave, CI procede in automatico a criptare cookie e sessioni?

    Grazie!


  • ModSenior

    Per fare il crypt delle sessioni, devi impostare il valore nel file di configurazione. Mentre i normali cookie, sono comunque non codificati.


  • User Attivo

    L'unica che non capisco è l'uso degli helper. Non si possono fare le stesse operazioni anche all'interno delle classi, evitando gli helper?


  • ModSenior

    Un helper puoi utilizzarlo anche in una view, in maniera diretta ad esempio. Poi è normale che volendo si possa fare anche utilizzando una classe/libreria, ma dal punto di vista logico sono per usi diversi


  • User Attivo

    Chiarissimo,

    Grazie!


  • User Attivo

    E' normale che un template a se stante si vede correttamente, mentre se messo in una view mi esce fuori con margini in alto e in basso?
    Sapete dirmi come posso risolverlo?

    Grazie!