2011-01-27 5 views
0
 
//creates a sfForm for the login 
    $this->form = new sfForm(); 
    $this->form->setWidgets(array(
    'email' => new sfWidgetFormInputText(array('default' => '[email protected]')), 
    'password' => new sfWidgetFormInputPassword() 
    ) 
); 

    //TODO: sfValidatorRegex on the password! 
    $this->form->setValidators(array(
    'email' => new sfValidatorEmail(), 
    'password' => new sfValidatorString(array(
    'min_length' => 8, 
    'max_length' => 255), 
    array(
    'min_length' => 'Password is too short. Minimum 8 characters required.') 
    ))); 

Puis, après je vérifie la demande de soumettre le paramètreSymfony validation du formulaire

 
if($this->form->isValid(){ 
    loginUser(); 
} 

Il ne marche pas aussi court soit le mot de passe, ou par courriel faux je mets, échouer jamais.

Répondre

2

Vous n'êtes pas lier les données post à la forme.

Vous devez mettre votre formulaire dans un fichier séparé, je suppose que vous le mettez dans lib/form/LoginForm.class.php.

Dans la méthode configure() du formulaire créer un format de nom: $this->widgetSchema->setNameFormat("login[%s]").

code de Votre action:

$this->form = new LoginForm(); 
if ($request->isMethod("post")) { 
    $this->form->bind($request->getParameter("login")); 
    if ($this->form->isValid()) { 
    //whatever 
    } 
} 

Avant de créer un système d'authentification et d'autorisation à partir de zéro, un coup d'oeil à la norme symfony de facto de celui-ci: sfDoctrineGuardPlugin. Il a également une version propulsée, appelée sfGuardPlugin.

+0

Merci pour la réponse, je vais essayer. – Johannes

+0

Je pensais que l'authentification et auhtorization était déjà intégrée dans symfony. L'autorisation est définie dans security.yml et settings.yml? Et l'authentification est un $ getUser-> setAuthenticated. Ce que je crée est juste le login et la déconnexion, pour définir et désactiver le 'authentifié'. Ensuite, j'ai mis en place ce qu'il faut autoriser dans les settings.yml et security.yml. Quoi de différent avec ce plugin? J'ai lu le readme mais il n'y avait pas plus de documentation que l'installation. Merci. – Johannes

+1

Un système de base est intégré, comme la gestion des informations d'identification de session en cours ou l'authentification. Le plugin fournit un moyen standard de gestion des utilisateurs - utilisateurs, groupes et informations d'identification stockés dans la base de données. – Maerlyn