Bonsoir a tous
Je me demandais est-il possible de créer un formulaire de connexion rapide sur sa page d'accueil ? Et on toujours obligé de mettre notre formulaire dans users/login ?
Merci

7 réponses


bonsoir, tu mets ton formulaire ou tu veux, temps que le "action" pointe sur le bon script de traitement.

krams33
Auteur

Je vois pas trop comment faire si mon formulaire se trouve sur default.ctp
et qu'il doit pointé sur user/login

krams33
Auteur

Le truc c'est qu'au lieu de me loguer a partir de la vue users/login je voudrais me loguer a partir de la racine du site mais tout en appelent le controller Users et la methode login

Et bien tu mets ton formulaire sur la page que tu veux, en y ajoutant les champs, et lors de la soumission du formulaire tu redirige sur la vue users/login.

Pour celà, tu mets dans ta balise <form> action="users/login"

<form action="users/login">
    <!-- Le reste du formulaire -->
</form>

Comme çà pas de problème, ton formulaire redirige vers la vue users/login, avec la information que tu aura saisit dedans pour qu'elle puisse les traiter, ensuite ta vue users/login redirige sur la racine de ton site.

krams33
Auteur

Mon formulaire ressemble a ça

<?php echo $this->Form->create('User'); ?>
    <?php echo $this->Form->input('username',array('label'=>"Votre login ")); ?>
    <?php echo $this->Form->input('password',array('label'=>"Mot de passe")); ?>
<?php echo $this->Form->end('Se connecter'); ?>

Il sait sur default.ctp

Fait le comme ça :

<?php echo $this->Form->create('User', 'users/login'); ?>
    <?php echo $this->Form->input('username',array('label' => "Votre login")); ?>
    <?php echo $this->Form->input('password',array('label' => "Mot de passe")); ?>
<?php echo $this->Form->end('Se connecter'); ?>

Et rajoute dans ta fonction create() un paramètre action :

create($name, $action)

Et remets cette action dans le formulaire que tu crées en mettant :

<form action="'.$action.'">

Puis adapate comme bon te semble ;)

Plutot

<?php echo $this->Form->create('User', array('action'=>'login')); ?>