PHO POO chapitre 20 - Back-end - Undefined array key "username"

Par catyoh, il y a 5 ans


Bonjour,

L'affichage du formulaire dans la page "index.php?p=login fonctionne. Mais quand je soumets le formulaire login.php, j'obtiens des warnings : undefined array key "usernames" et undefined array key "passwords". Or, le var_dump($POST) affiche :
array(2) { ["username
"]=> string(4) "demo" ["password_"]=> string(4) "demo" }

Ci-dessus le fichier Login.php :

<?php use Core\Auth\DBAuth; use Core\HTML\BootstrapForm; $form = new BootstrapForm($_POST); if(!empty($_POST)) { $auth = new DBAuth(App::getInstance()->getDb()); var_dump($_POST); if($auth->login($_POST["username"], $_POST["password"])) { die('Connecté'); } else { die('Non connecté'); } } //$form = new BootstrapForm($_POST); ?> <form method = "POST" style="margin-top: 20px;"> <?= $form->input('username', 'Pseudo'); ?> <?= $form->input('password', 'Mot de passe', ['type' => 'password']); ?> <?= $form->submit() ?> </form>

et la classe DBAuth :

<?php namespace Core\Auth; use Core\Database\Database; class DBAuth { private $db; public function __construct(Database $db) { $this->db = $db; } /** * @param $username * @param $password * return boolean */ public function login($username, $password) { $user = $this->db->prepare( "SELECT * FROM users WHERE username = ?", [$username], null, true ); if($user) { return $user->password = sha1($password); } else { return false; } } public function logged() { return isset($_SESSION['auth']); } } ?>

Ce que j'obtiens

aarray(2) { ["username"]=> string(4) "demo" ["password"]=> string(4) "demo" }

Warning: Undefined array key "username" in C:\xampp\htdocs\www\POO\Blog\pages\users\login.php on line 11

Warning: Undefined array key "password" in C:\xampp\htdocs\www\POO\Blog\pages\users\login.php on line 11

Non connecté

Aucune réponse