I have a little problem with my Symfony 4 login page. When users submits the form, the following error appears:
Notice: A non well formed numeric value encountered
and yet when I go to the data base the login is there, the password is there too (hash it out of course) and despite this it doesn't work.
this is the controller
<?php
namespace App\Controller ;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\User ;
//Class pour authentification
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils ;
class SecurityController extends AbstractController
{
/**
* @Route("/login" , name="login")
*/
public function login(AuthenticationUtils $authentication)
{
$error = $authentication->getLastAuthenticationError();
$lastUsername = $authentication->getLastUsername();
return $this->render('Authentification/login.html.twig' ,[
'error' => $error,
'last_username' => $lastUsername,
]) ;
}
}
security.yaml file:
security:
providers:
from_database:
entity:
class: App\Entity\User
property: username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: lazy
form_login:
remember_me: true
check_path: /login
logout :
path: /logout
target: /
access_control:
- { path: ^/admin, roles: ROLE_ADMIN } #cane_loader
encoders:
App\Entity\User:
algorithm: bcrypt
cost : 14
form login :
{% extends 'baseConnection.html.twig' %}
{% block title %}Se Connecter{% endblock %}
{% block body %}
<div class="container">
<h3>Page de Connection de l'application CUMA le PROGRES</h3>
<p class="btn float-right color-br" onclick="window.history.back();">Retour</p>
{% if error %}
<div class="alert alert-danger">
{% if error %}
{{ error.messageKey | trans(error.messagedata , 'security') }}
{% endif %}
</div>
{% endif %}
<form action="{{ path('login')}}" method="post">
<div class="form-group">
<label for="username">Nom d'utilisateur</label>
<input type="text" id="username" name="_username" class="form-control" placeholder="Vôtre nom d'utilisateur est du style: Prénom.Nom" value="{{ last_username }}">
</div>
<div class="form-group">
<label for="password">Mot de passe</label>
<input type="password" id="password" name="_password" class="form-control" placeholder="Vôtre mot de passe ..... ( en cas d'oublie aller voir Fabien ABISUR )">
</div>
<button type="submit" class="btn color-br">Se Connecter</button>
</form>
</div>
{% endblock %}