alfs18 /
ramverk1-projekt
| 1 | <?php |
||||
| 2 | |||||
| 3 | namespace Alfs18\User\HTMLForm; |
||||
| 4 | |||||
| 5 | use Alfs18\User\User; |
||||
| 6 | use Anax\HTMLForm\FormModel; |
||||
| 7 | use Psr\Container\ContainerInterface; |
||||
| 8 | |||||
| 9 | /** |
||||
| 10 | * Example of FormModel implementation. |
||||
| 11 | */ |
||||
| 12 | class UserLoginForm extends FormModel |
||||
| 13 | { |
||||
| 14 | /** |
||||
| 15 | * Constructor injects with DI container. |
||||
| 16 | * |
||||
| 17 | * @param Psr\Container\ContainerInterface $di a service container |
||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||
| 18 | */ |
||||
| 19 | public function __construct(ContainerInterface $di) |
||||
| 20 | { |
||||
| 21 | parent::__construct($di); |
||||
| 22 | |||||
| 23 | $this->form->create( |
||||
| 24 | [ |
||||
| 25 | "id" => __CLASS__, |
||||
| 26 | "legend" => "User Login", |
||||
| 27 | "class" => "login" |
||||
| 28 | ], |
||||
| 29 | [ |
||||
| 30 | "user" => [ |
||||
| 31 | "type" => "text", |
||||
| 32 | //"description" => "Here you can place a description.", |
||||
| 33 | //"placeholder" => "Here is a placeholder", |
||||
| 34 | ], |
||||
| 35 | |||||
| 36 | "password" => [ |
||||
| 37 | "type" => "password", |
||||
| 38 | //"description" => "Here you can place a description.", |
||||
| 39 | //"placeholder" => "Here is a placeholder", |
||||
| 40 | ], |
||||
| 41 | |||||
| 42 | "submit" => [ |
||||
| 43 | "type" => "submit", |
||||
| 44 | "value" => "Login", |
||||
| 45 | "callback" => [$this, "callbackSubmit"] |
||||
| 46 | ], |
||||
| 47 | ] |
||||
| 48 | ); |
||||
| 49 | } |
||||
| 50 | |||||
| 51 | |||||
| 52 | |||||
| 53 | /** |
||||
| 54 | * Callback for submit-button which should return true if it could |
||||
| 55 | * carry out its work and false if something failed. |
||||
| 56 | * |
||||
| 57 | * @return boolean true if okey, false if something went wrong. |
||||
| 58 | */ |
||||
| 59 | public function callbackSubmit() |
||||
| 60 | { |
||||
| 61 | // $this->form->addOutput( |
||||
| 62 | // "Trying to login as: " |
||||
| 63 | // . $this->form->value("user") |
||||
| 64 | // . "<br>Password is kept a secret..." |
||||
| 65 | // //. $this->form->value("password") |
||||
| 66 | // ); |
||||
| 67 | // |
||||
| 68 | // // Remember values during resubmit, useful when failing (return false) |
||||
| 69 | // // and asking the user to resubmit the form. |
||||
| 70 | // $this->form->rememberValues(); |
||||
| 71 | // |
||||
| 72 | // return true; |
||||
| 73 | |||||
| 74 | $res = new User(); |
||||
| 75 | // Get values from the submitted form |
||||
| 76 | |||||
| 77 | $acronym = $res->changeCharacter($this->form->value("user")); |
||||
| 78 | $password = $res->changeCharacter($this->form->value("password")); |
||||
| 79 | |||||
| 80 | |||||
| 81 | // Try to login |
||||
| 82 | $db = $this->di->get("dbqb"); |
||||
| 83 | $db->connect(); |
||||
| 84 | $user = $db->select("password") |
||||
| 85 | ->from("User") |
||||
| 86 | ->where("acronym = ?") |
||||
| 87 | ->execute([$acronym]) |
||||
| 88 | ->fetch(); |
||||
| 89 | |||||
| 90 | // $user is null if user is not found |
||||
| 91 | if (!$user || !password_verify($password, $user->password)) { |
||||
|
0 ignored issues
–
show
$password of type array is incompatible with the type string expected by parameter $password of password_verify().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 92 | var_dump($acronym); |
||||
|
0 ignored issues
–
show
|
|||||
| 93 | var_dump($password); |
||||
| 94 | $this->form->rememberValues(); |
||||
| 95 | $this->form->addOutput("User $acronym or password $password did not match."); |
||||
| 96 | return false; |
||||
| 97 | } |
||||
| 98 | |||||
| 99 | // $_SESSION["status"] = "Logga ut"; |
||||
| 100 | // $_SESSION["status_url"] = "user/logout"; |
||||
| 101 | $_SESSION["status"] = [ |
||||
| 102 | "text" => "Profil", |
||||
| 103 | "url" => "user/profile", |
||||
| 104 | "title" => "Profil", |
||||
| 105 | "submenu" => [ |
||||
| 106 | "items" => [ |
||||
| 107 | [ |
||||
| 108 | "text" => "Logga ut", |
||||
| 109 | "url" => "user/logout", |
||||
| 110 | "title" => "Logga ut", |
||||
| 111 | ], |
||||
| 112 | ], |
||||
| 113 | ], |
||||
| 114 | ]; |
||||
| 115 | $_SESSION["acronym"] = $acronym; |
||||
| 116 | // $this->form->addOutput("User logged in."); |
||||
| 117 | return true; |
||||
| 118 | } |
||||
| 119 | } |
||||
| 120 |