phpBBmodders : Clés de formulaires Intermédiaire

phpBBmodders : Clés de formulaires


Article de phpbbmodders : Clés de formulaires
Un article qui explique comment utiliser les clés de formulaires.
Soumis par lefty74 le 31 mars 2008 à 21h33

» Clés de formulaires

Lorsque vous codez des formulaires qui incluent des modifications de votre base de données, il y a essentiellement deux façons de le faire : la boîte de confirmation ou les signes de formulaire. Il y a déjà des fonctions dans le fichier includes/functions.php qui sont utilisées pour cela.

» La fonction confirm_box()

Pour les opérations sensibles, il faut toujours permettre à l'utilisateur de confirmer l'action. Pour les écrans de confirmation, utilisons la fonction confirm_box().

Lorsque l'utilisateur confirme qu'il continue, l'action sera complétée. Par exemple, les données soumises seront traitées.

Code: Tout sélectionner
confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html', $u_action = ''


Les paramètres de la fonction:

$check = Il s'agit de VRAI ou FAUX. Faux affichera la boîte de confirmation et Vrai vérifie si l'action a été confirmée.
$title = Le titre/message qui apparaît dans la boîte de confirmation.
Note: Pour le message, la fonction text_CONFIRM est joint au titre.
Si le titre ne peut être trouvé dans les fichiers de langue, un titre par défaut sera dés lors utilisé.
Si la variable title_CONFIRM ne peut être trouvée dans les fichies de langue, la variable $user->lang qui est placée dans la fonction est utilisée.


$hidden = Cette variable sert à construire vos variables cachées à conserver lors de la confirmation de votre action.
$html_body = Fichier template de la boîte de confirmation. Par défaut, c'est confirm_body.html.
$u_action = Une action personnalisée du formulaire peut être entrée ici sinon cela utilise la dernière page sur laquelle l'utilisateur se trouvait.

Un simple exemple de boîte de confirmation:

Code: Tout sélectionner
if ($submit)
{
    if (confirm_box(true))
    {
        //action the stuff and do the alterations to the DB...
    }
    else
    
{
        confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
            'id'      => $id,
            'u'         => $user_id,
            'action'   => $action))
        );
    }


» Les fonctions add_form_key() et check_form_key()

Pour toutes les instances où vous utilisez un formulaire et n'utilisez pas déjà la fonction confirm_box(), vous aurez besoin de vérifier le formulaire en utilisant les fonctions add_form_key() et check_form_key().

» La fonction add_form_key()

Pour définir la clé, vous utiliserez la fonction add_form_key($form_name) par laquelle la variable $form_name est définie par vous-même comme suit:

Code: Tout sélectionner
add_form_key('add_links'); 


Ce qui suit créera un formulaire de temps et un signe de forme lequel sera utilisé ultérieurement pour vérifier la clé du formulaire. En outre, il crée une variable appelée {S_FORM_TOKEN} laquelle sera placée dans votre fichier template comme suit:

Code: Tout sélectionner
...
       </p>
       </fieldset>
    {S_FORM_TOKEN}
</
form>
 


» La fonction check_form_key()

Lorsque vous avez soumis les données, vous aurez besoin d'ajouter la fonction check_form_key.

Code: Tout sélectionner
check_form_key($form_name, $timespan = false, $return_page = '', $trigger = false, $minimum_time = false


Les paramètres de la fonction:

$form_name = Cela doit avoir le même nom que celui assigné pour la fonction add_form_key.

$timespan = Cela détermine l'âge maximum acceptable pour un formulaire soumis (en secondes). Si le champ n'est pas utilisé, la configuration par défaut est utilisée.

$return_page = Ici, vous pouvez spécifier une adresse comme lien de retour.

$trigger = Si le choix est sur oui, cela déclenchera un message d'erreur quand on rencontre un formulaire invalide.

$minimum_time = Similaire à la variable $timespan mais cela détermine l'âge minimum acceptable pour un formulaire soumis (en secondes). Si le champ n'est pas utilisé, la configuration par défaut est utilisée.

Un rapide exemple pour les fonctions add_form_key et check_form_key:

Code: Tout sélectionner
add_form_key('add_links');

if ($submit && !check_form_key('add_links'))
{
    trigger_error('FORM_INVALID');


Les informations ci-dessus peuvent être trouvées dans le guide de codage phpBB.

Avatar de l’utilisateur
EricSchreiner
Traducteur
Traducteur
 
Rédigé le: 08 Juin 2009 à 17:26
Articles: 6
Noter cet article: 123456 Votants: Aucun
Mots-clés: Clés, de, formulaires, 30x

Retourner vers Développement


cron