Skip to content
Snippets Groups Projects
Commit 78bbfcaf authored by SARPCAN ERCAN's avatar SARPCAN ERCAN :hourglass_flowing_sand:
Browse files

blade

parent d7fd97ec
No related merge requests found
......@@ -7,86 +7,93 @@ use PDO;
class MyUser
{
private $_login;
private $_password;
private const USER_TABLE = "Users";
public function __construct( string $login, string $password = null )
{
$this->setLogin($login);
$this->setPassword($password);
}
public function login() : string
{
return $this->_login;
}
public function setLogin( string $login ) : void
{
$this->_login = $login;
}
public function password() : string
{
return $this->_password;
}
public function setPassword( ?string $password ) : void
{
$this->_password = $password;
}
public function exists() : bool
{
// 1. On prépare la requête $request
$request = DB::connection()->getPdo()->prepare('SELECT password FROM '.self::USER_TABLE.' WHERE login = :login');
// 2. On assigne $login au paramêtre :login
$ok = $request->bindValue( ":login", $this->_login, PDO::PARAM_STR );
// 3. On exécute la requête $request
$ok &= $request->execute();
if (!$ok)
throw new Exception("Error: user access in DB failed.");
// 4. On vérifie que l'utilisateur a été trouvé et que son mot de passe
// correspond à celui de l'attribut $this->_password
$user = $request->fetch(PDO::FETCH_ASSOC);
return $user && password_verify($this->_password,$user['password']);
}
public function create() : void
{
$request = DB::connection()->getPdo()->prepare('INSERT INTO '.self::USER_TABLE.'(login,password) VALUES (:login,:password)');
$ok = $request->bindValue( ":login", $this->_login, PDO::PARAM_STR );
$ok &= $request->bindValue( ":password", password_hash($this->_password,PASSWORD_DEFAULT), PDO::PARAM_STR );
$ok &= $request->execute();
if ( !$ok )
throw new Exception("Error: user creation in DB failed.");
}
public function changePassword( string $newpassword ) : void
{
$request = DB::connection()->getPdo()->prepare('UPDATE '.self::USER_TABLE.' SET password = :password WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$ok &= $request->bindValue(':password', password_hash($newpassword,PASSWORD_DEFAULT), PDO::PARAM_STR);
$ok &= $request->execute();
if ( !$ok )
throw new Exception("Error: password updating failed.");
$this->setPassword($newpassword);
}
public function delete() : void
{
$request = DB::connection()->getPdo()->prepare('DELETE FROM '.self::USER_TABLE.' WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$ok &= $request->execute();
if ( !$ok )
throw new Exception("Error while deleting your account.");
}
private $_login;
private $_password;
private const USER_TABLE = "Users";
public function __construct(string $login, string $password = null)
{
$this->setLogin($login);
$this->setPassword($password);
}
public function login(): string
{
return $this->_login;
}
public function setLogin(string $login): void
{
$this->_login = $login;
}
public function password(): string
{
return $this->_password;
}
public function setPassword(?string $password): void
{
$this->_password = $password;
}
public function exists(): bool
{
// 1. On prépare la requête $request
$request = DB::connection()->getPdo()->prepare('SELECT password FROM ' . self::USER_TABLE . ' WHERE login = :login');
// 2. On assigne $login au paramêtre :login
$ok = $request->bindValue(":login", $this->_login, PDO::PARAM_STR);
// 3. On exécute la requête $request
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: user access in DB failed.");
}
// 4. On vérifie que l'utilisateur a été trouvé et que son mot de passe
// correspond à celui de l'attribut $this->_password
$user = $request->fetch(PDO::FETCH_ASSOC);
return $user && password_verify($this->_password, $user['password']);
}
public function create(): void
{
$request = DB::connection()->getPdo()->prepare('INSERT INTO ' . self::USER_TABLE . '(login,password) VALUES (:login,:password)');
$ok = $request->bindValue(":login", $this->_login, PDO::PARAM_STR);
$ok &= $request->bindValue(":password", password_hash($this->_password, PASSWORD_DEFAULT), PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: user creation in DB failed.");
}
}
public function changePassword(string $newpassword): void
{
$request = DB::connection()->getPdo()->prepare('UPDATE ' . self::USER_TABLE . ' SET password = :password WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$ok &= $request->bindValue(':password', password_hash($newpassword, PASSWORD_DEFAULT), PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: password updating failed.");
}
$this->setPassword($newpassword);
}
public function delete(): void
{
$request = DB::connection()->getPdo()->prepare('DELETE FROM ' . self::USER_TABLE . ' WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error while deleting your account.");
}
}
}
<?php
if ( empty($_SESSION['user']) )
{
header('Location: signin');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Account</title>
</head>
<body>
@extends('layouts.app')
@section("title", "Account")
@section("content")
<p>
Hello <?= $_SESSION['user'] ?> !<br>
Hello <?=$_SESSION['user']?> !<br>
Welcome on your account.
</p>
<ul>
......@@ -22,10 +10,12 @@
<li><a href="deleteuser">Delete my account.</a></li>
</ul>
<p><a href="signout">Sign out</a></p>
<?php if ( !empty($_SESSION['message']) ) { ?>
<?php if (!empty($_SESSION['message'])) {?>
<section>
<p><?= $_SESSION['message'] ?></p>
<p><?=$_SESSION['message']?></p>
</section>
<?php } ?>
</body>
</html>
<?php }?>
@endsection
@extends('layouts.app')
@section("title", "Change password")
@section("content")
<h1>Change password</h1>
<form action="changepassword" method="post">
<label for="newpassword">New password</label> <input type="password" id="newpassword" name="newpassword" required>
<label for="confirmpassword">Confirm password</label><input type="password" id="confirmpassword" name="confirmpassword" required>
<input type="submit" value="Change my password">
</form>
<p>
Go back to <a href="account">Home</a>.
</p>
<?php if (!empty($_SESSION['message'])) {?>
<section>
<p><?=$_SESSION['message']?></p>
</section>
<?php }?>
@endsection
<?php
if ( empty($_SESSION['user']) )
{
header('Location: signin');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Change password</title>
</head>
<body>
<h1>Change password</h1>
<form action="changepassword" method="post">
<label for="newpassword">New password</label> <input type="password" id="newpassword" name="newpassword" required>
<label for="confirmpassword">Confirm password</label><input type="password" id="confirmpassword" name="confirmpassword" required>
<input type="submit" value="Change my password">
</form>
<p>
Go back to <a href="account">Home</a>.
</p>
<?php if ( !empty($_SESSION['message']) ) { ?>
<section>
<p><?= $_SESSION['message'] ?></p>
</section>
<?php } ?>
</body>
</html>
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('content')
<h1>
This is the main content.
</h1>
@parent
@show
@include("shared.message")
</body>
</html>
\ No newline at end of file
@if(isset($message))
{{$message}}
@endif
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Signin</title>
</head>
<body>
@extends('layouts.app')
@section("title", "Signin")
@section("content")
<h1>Signin</h1>
<form action="authenticate" method="post">
<label for="login">Login</label> <input type="text" id="login" name="login" required autofocus>
......@@ -16,10 +11,9 @@
<p>
If you don't have an account, <a href="signup">signup</a> first.
</p>
<?php if ( !empty($_SESSION['message']) ) { ?>
<?php if (!empty($_SESSION['message'])) {?>
<section>
<p><?= $_SESSION['message'] ?></p>
<p><?=$_SESSION['message']?></p>
</section>
<?php } ?>
</body>
</html>
<?php }?>
@endsection
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Signup</title>
</head>
<body>
@extends('layouts.app')
@section("title", "Signup")
@section("content")
<h1>Signup</h1>
<form action="adduser" method="post">
<label for="login">Login</label> <input type="text" id="login" name="login" required autofocus>
......@@ -15,10 +11,9 @@
<p>
If you already have an account, <a href="signin">signin</a>.
</p>
<?php if ( !empty($_SESSION['message']) ) { ?>
<?php if (!empty($_SESSION['message'])) {?>
<section>
<p><?= $_SESSION['message'] ?></p>
<p><?=$_SESSION['message']?></p>
</section>
<?php } ?>
</body>
</html>
<?php }?>
@endsection
......@@ -11,56 +11,56 @@ use Illuminate\Support\Facades\Route;
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
session_start();
*/
Route::prefix('admin')->group(function () {
if (!isset($_SESSION["user"])) {
return redirect("signin");
} else {
Route::post('changepassword', function () {
return view('adduser');
});
Route::group([], function () {
session_start();
Route::get('deleteuser', function () {
return view('formpassword');
});
Route::get('formpassword', function () {
return view('formpassword');
});
Route::get('account', function () {
return view('account');
});
Route::get('signout', function () {
session_destroy();
Route::prefix('admin')->group(function () {
if (!isset($_SESSION["user"])) {
return redirect("signin");
});
}
});
Route::get('signup', function () {
return view('signup');
});
Route::get('/', function () {
return view('signin');
});
Route::get('signin', function () {
return view('signin');
});
Route::post('adduser', function () {
return view('adduser');
});
} else {
Route::post('changepassword', function () {
return view('adduser');
});
Route::get('deleteuser', function () {
return view('formpassword');
});
Route::get('formpassword', function () {
return view('formpassword');
});
Route::get('account', function () {
return view('account');
});
Route::get('signout', function () {
session_destroy();
return redirect("signin");
});
}
});
Route::get('signup', function () {
return view('signup');
});
Route::get('/', function () {
return view('signin', ['message'=>'message par défaut']);
});
Route::get('signin', function () {
return view('signin');
});
Route::post('adduser', function () {
return view('adduser');
});
Route::post('authenticate', function () {
return view('authenticate');
});
Route::post('authenticate', function () {
return view('authenticate');
});
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment