web-dev-qa-db-fra.com

Désinfection et validation du champ de courrier électronique

Dois-je utiliser is_email() pour valider un champ de courrier électronique? Dans WP. J'ai mis le champ email dans un widget. J'apprécierais volontiers de l'aide.

function update($new_instance, $old_instance) {
     $instance = $old_instance;
     $instance['email'] = is_email($new_instance['email']);

    return $instance;
     }

Et

<p>
    <label for="<?php echo  $this->get_field_id('email'); ?>">
     <?php _e('Email'); ?>  </label>
     <input class="widefat" id="<?php echo $this->get_field_id('email'); ?>" name="<?php echo $this->get_field_name('email'); ?>" type="email" value="<?php echo $email; ?> " />
    </p>
    <?php
    }

Utiliser is_email() est-il correct pour cela? Je vous remercie!

1
mattnewbie

Selon la documentation, is_email () est utilisé pour valider un email et le renvoie s'il est valide ou faux s'il ne l'est pas. Alors utilisez-le correctement.

La seule chose que je peux voir dans votre code, c'est que si l'email n'est pas valide, vous configurez les données avec une valeur booléenne FALSE.

 $instance['email'] = is_email($new_instance['email']);
 //with a bad email address, this will be the same as writing
 $instance['email'] = false;

Selon ce que vous faites dans le widget, cela peut vous donner des résultats inattendus.

Je voudrais plutôt faire quelque chose comme ce qui suit

$instance['email'] = ( is_email($new_instance['email']) ) ? $new_instance['email'] : '';

Cela vous assurera que si l'appel is_email () renvoie false, vous définissez $ instance ['email'] sur une chaîne vide au lieu d'une valeur booléenne.

J'espère que cela t'aides!

2
Welcher