salut les amis, j'ai créer une fonction login dont je teste les logins et les passwords avec ceux dans la base de données mais j'ai rencontré un problème qui me gène, la moitié de la fonction fonctionne et l'autre non, je vous explique un peu: quand je saisit un username et un password correctes il faut qu'un message "hello $username " s'affiche et si le username et le login sont faux donc un message "hello failed" s'affiche.
Alors mon problème c'est que toujours il m'affiche qu'un Hello failed :(

5 réponses


Vallyan
Réponse acceptée
  • Tu as fait un var_dump() de tes variables pour vérifier que tu récupères bien ce que tu veux ? ('_username' dans la vue, et 'username' dans le controller ... c'est normal ?)
  • Tu ne hash pas les password ?
yoss
Auteur

voilà ma fonction dans

class AdminController extends Controller
{

            public function loginAction(Request $request)
         {

        if ($request->getMethod() == 'POST') {
            $username = $request->get('username');
            $password = $request->get('password');
            $em = $this->getDoctrine()->getEntityManager();
            $repository = $em->getRepository('YossAdminBundle:Administrateur');
            $user = $repository->findOneBy(array('username' => $username, 'password' => $password));
            if ($user) {
                return $this->render('YossAdminBundle:Admin:login.html.twig', array('name' => $user->getUsername()));
            } else {
                return $this->render('YossAdminBundle:Admin:login.html.twig', array('name' => 'failed'));

            }
            return $this->render('YossAdminBundle:Admin:login.html.twig');
        }
    }
}

et voilà sa vue: login.html.twig

{% extends 'YossAdminBundle::layout.html.twig' %}
{% block body %}
            <div id="right_container">
                    <form class="form-signin" method="POST" action="login">
                        <h2 class="form-signin-heading">Please sign in </h2> <br>
                        <div id="loginRow">
                            {% trans %}Username{% endtrans %} :
                            <input type="text" name="_username" value="" placeholder="email or username" /> <br>
                        </div>
                        <div id="loginRow">
                            {% trans %}Password{% endtrans %} :
                            <input type="password" name="_password" value="" placeholder="ton mot de passe ici" />
                        </div>
                        <div id="loginRow">
                            <button type="submit" name="login" class="btn btn-large btn-primary">{% trans %}Enter{% endtrans %}</button> <br>
                        </div>

                    </form>
                </div>

    {% if name is defined %}
        <div class="alert-info fade in">
         <strong> Hello {{ name }} </strong>
        </div>
    {% endif %}

{% endblock %}

et voilà mon route : routing.yml

yoss_admin_bundle_login:
pattern: admin/login
defaults: { _controller: YossAdminBundle:Admin:login }
_method: GET | POST

Merci

Bonjour,

Ton post n'a rien à faire dans Suggestion mais à mettre dans la catégorie Symfony et change ton titre pour qu'il soit plus explicite.

Cordialement

yoss
Auteur

ahhh désolé les amis j'ai pas remarqué que j'étais sur cette catégorie désolé autre fois :(

yoss
Auteur

merci beaucoup Vallyan ça marche grâce a toi