validation

Mattepuffo's logo
Validazione dei form in HTML

Validazione dei form in HTML

In genere è sempre buona norma validare i dati di un form sia lato server che lato client.

Per quanto riguarda il client, ci siamo sempre avvalsi di Javascript (o di uno dei milioni plugin per jQuery).

Ma con HTML 5 possiamo farne a meno.

Anche se il supporto dei browser non è al 100%, ci rimane comunque la parte server; quindi, per quanto mi riguarda, preferisco evitare l'uso dei plugin o di Javascript per fare questo (almeno quando possibile).

Mattepuffo's logo
Inviare email con CodeIgniter

Inviare email con CodeIgniter

CodeIgniter è uno dei framewrok PHP più utilizzati; io lo stesso su due progetti e mi ci trovo bene.

Ne ho già parlato in altri articoli, e oggi vediamo come sia semplice inviare email.

Supponiamo di voler inviare dopo che l'utente ha inviato un form; nel caso specifico l'utente dovrà inserire la propria email con la quale si è registrato in modo da potergli reinviare la password (che si è dimenticato)

<div id="login">
    <?php echo validation_errors('<p class="error">', '</p>'); ?>
    <?php echo form_open('pwdrecovery/dorecover'); ?>
    <dl>
        <dt><label for="cl_email">Email:</label></dt>
        <dd><input type="text" name="cl_email" value="<?php echo set_value('cl_email'); ?>" autofocus /></dd>
    </dl>
    <dl>
        <dd><input type="submit" value="Send" name="submit" /></dd>
    </dl>
</form>
</div>

Viene richiamata la funzione doRecover del controller PwdRecovery:

public function doRecover() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('cl_email', 'Email', 'required|trim|valid_email');
        if ($this->form_validation->run() == FALSE) {
            $data = array();
            $data['title'] = 'Login';
            $this->load->view('header', $data);
            $this->load->view('pwd_recovery_view', $data);
            $this->load->view('footer');
        } else {
            $this->load->model('email_model');
            $this->email_model->sendEmail($this->input->post('cl_email'), 'Password', 'La tua nuova password è NUOVA_PASSWORD');
            redirect('home');
        }
    }

Carico la libreria form_validation per validare il form (è obbligatorio mettere una email ben formata).

Mattepuffo's logo
Validazione form con LiveValidation

Validazione form con LiveValidation

LiveValidation libreria Javascript che serve per validare i form in tempo reale.

Può essere usato in modalità stand-alone o come plugin di Prototype.

Io ho optato per la prima soluzione.

Scaricate la libreriria da qua e aggiungetela alla pagina:

<script type="text/javascript" src="lib/livevalidation.js"></script>

Le opzioni che ha sono molte, come anche i validatori:

  • campo vuoto
  • email
  • numeri
  • ecc

Qui trovate vari esempi.

Io vi mostro quelli che ho usato io nel mio form:

<form name="comments-form" action="">
<p>
<label>Email</label>          
<input type="text" name="email" value="" size="22" id="com_email" />
<script type="text/javascript">
var campo = new LiveValidation('com_email', { validMessage: "\u221a" });
campo.add(Validate.Presence);
campo.add(Validate.Email);
</script>
</p>
<p>
<textarea name="text" cols="40" rows="8" id="com_text"></textarea>
<script type="text/javascript">
var campo = new LiveValidation('com_text', { validMessage: "\u221a" });
campo.add(Validate.Presence);
</script>
</p>
<div>
<input type="submit" value="Invia il tuo commento" name="sumbit-comment" />
</div>
</form>

Prendiamo il campo email: