Development

Documentation/fr_FR/askeet/trunk/D6 (diff)

You must first sign up to be able to contribute.

Changes between Version 1 and Version 2 of Documentation/fr_FR/askeet/trunk/D6

Show
Ignore:
Author:
mikael.randy (IP: 88.160.26.16)
Timestamp:
02/12/08 22:52:22 (10 years ago)
Comment:

1ere traduction

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/fr_FR/askeet/trunk/D6

    v1 v2  
    11{{{ 
    22#!html 
    3 <div style="border: solid 3px #ff8;padding:10px;margin:5px;background-color: #ffd"> 
     3<div style="border: solid 2px #f80;padding:10px;margin:5px;background-color: #fdb"> 
    44}}} 
    5 Cette partie de la documentation askeet n'est pas encore traduite. Vous pouvez : 
    6  
    7  * [http://www.symfony-project.com/askeet/6 Consulter cette page en anglais] 
    8  * [wiki:Resources/fr_FR/ Contribuer à l'effort de traduction de la documentation] :) 
     5Cette partie de la documentation est en cours de traduction. Cela signifie qu'elle est traduite de manière soit incomplète, soit inexacte. En attendant que cette traduction soit terminée, vous pouvez consulter la [http://www.symfony-project.org/book/trunk/about version en anglais] pour des informations plus fiables. 
     6{{{ 
     7#!html 
     8</div> 
     9}}} 
    910 
    1011{{{ 
     12#!WikiMarkdown 
     13Calendrier de l'avent sixième jour: Sécurité et validation de formulaire 
     14======================================================================== 
     15 
     16Précédemment dans Symfony 
     17------------------------- 
     18Au cours du [cinquième jour] (4.txt), vous avez dû manipuler les templates et les actions. Les formulaires et les pagineur n'ont plus aucun secret pour vous. Mais après avoir construit le formulaire de connexion, vous attendez surement de nous que nous vous montrions comment restreindre l'accès à certaines fonctionnalités pour les membres non-authorisés. C'est ce que nous allons réaliser aujourd'hui, a l'aide de plusieurs validation de formulaires. Comme nous allons également ajouter des classes personnelles à l'application, vous devriez également comprendre les concepts exposés dans le  chapitre concernant les [extensions personnelles] (http://www.symfony-project.com/book/1_0/07-Inside-the-View-Layer) dans le livre Symfony. 
     19 
     20Validation du formulaire de connexion 
     21------------------------------------- 
     22 
     23### Fichier de validation 
     24Le formulaire de connexion dispose de deux champs : `nickname` et `password` 
     25Mais que doit-il se passer si l'utilisateur soumets des données incorrectes ? Pour gérer ce cas de figure, vous devez créer un fichier `login.yml` dans le répertoire `/frontend/modules/user/validate` (Notez que `login` est le nom de l'action dont le formulaire doit être validé). Ajouter le contenu suivant à ce fichier : 
     26 
     27    methods: 
     28      post: [nickname, password] 
     29 
     30    names: 
     31      nickname: 
     32        required:     true 
     33        required_msg: your nickname is required 
     34        validators:   nicknameValidator 
     35 
     36      password: 
     37        required:     true 
     38        required_msg: your password is required 
     39 
     40    nicknameValidator: 
     41        class:        sfStringValidator 
     42        param: 
     43          min:        5 
     44          min_error:  nickname must be 5 or more characters 
     45 
     46Premièrement, sous l'entête `methods`, vous devez lister les champs à valider pour la méthode du formulaire (nous ne définissons ici que la méthode POST car les données GET ne sont utilisées que pour afficher le formulaire et n'ont pas besoin d'être validée). 
     47Puis, sous l'entête `names`, les critères de validation de chaque champs à valider sont listés, suivi du message d'erreur correspondant. 
     48Eventuellement, à l'image du champs `nickname`, il est possible de définir des règles de validation spécifiques, sous l'entête correspondant au nom de cette règle. Dans cet exemple, le `sfStringValidator` est un validateur proposé par symfoy qui valide le format d'une chaine de caractères (les validateurs par défaut proposés par Symfony sont détaillés dans le chapitre exposant [comment valider un formulaire] (http://www.symfony-project.com/book/1_0/10-Forms) dans le livre Symfony) 
     49 
     50### Gestionnaire d'erreur 
     51 
     52Maintenant, qu'est-il sensé se passer si un utilisateur valide des données invalides ? Les conditions écrites dans le fichier `login.yml` ne seront pas satisfaites, et le controleur de symfony va transmettre la requête à la méthode `handleErrorLogin` de la classe `userActions` - à l'image de la méthode `executeLogin()`, tel que défini dans l'argument de la balise `form_tag`. 
     53Si cette méthode n'existe pas, le comportement par défaut est d'afficher le template `loginError.php`. La raison de ce comportement est que la méthode `handleError()` d'origine retourne : 
     54 
     55[php] 
     56public function handleError() 
     57{ 
     58  return sfView::ERROR; 
     59} 
     60  
     61Nous avons un nouveau gabarit à écrire. Or, il serait préférable de ré-afficher le formulaire de connexion , avec les messages d'erreur affichés près des champs invalides. Donc, nous allons modifier le comportement de l'erreur de connexion pour afficher le template `loginSuccess.php` en cas d'erreur. 
     62 
     63[php] 
     64public function handleErrorLogin() 
     65{ 
     66  return sfView::SUCCESS; 
     67} 
     68  
     69>**NOTE** 
     70>La convention de nommage qui lie le nom de l'action, sa valeur de retour et le nom du fichier template est détaillée dans le [chapitre concernant la couche "Vue"] (http://www.symfony-project.com/book/1_0/07-Inside-the-View-Layer) du livre Symfony