Commit fd92f99a authored by Vadym Gidulian's avatar Vadym Gidulian

Initial commit

parent a85319c7
<?php
define('PATH_TO_XML', __DIR__ . '/users.xml');
function authenticateUser($login, $password) {
$users = simplexml_load_file(PATH_TO_XML);
foreach ($users as $user) {
if ($user->login == $login) {
return password_verify($password, $user->password);
}
}
return false;
}
function addUser($login, $password) {
$password = password_hash($password, PASSWORD_DEFAULT);
$users = simplexml_load_file(PATH_TO_XML);
$user = $users->addChild('user');
$user->addChild('login', $login);
$user->addChild('password', $password);
$users->asXML(PATH_TO_XML);
}
<?php
session_start();
if (!isset($_SESSION['logged_in']) || !$_SESSION['logged_in']) : ?>
<form action="login.php" method="post">
<input type="text" name="login" placeholder="User name"><br>
<input type="password" name="password" placeholder="Password"><br>
<a href="signup.php">Sign up</a>
<button>Log in</button>
<?php if (isset($_SESSION['login_failed']) && $_SESSION['login_failed']) : ?>
<br><span style="color: red">Incorrect login or password</span>
<?php $_SESSION['login_failed'] = false;
endif;
?>
</form>
<?php else : ?>
<form action="logout.php">
<button>Log out</button>
</form>
Secret content
<?php endif; ?>
<?php
require 'auth.php';
session_start();
$login = $_POST['login'];
$password = $_POST['password'];
if (authenticateUser($login, $password)) {
$_SESSION['logged_in'] = true;
} else {
$_SESSION['login_failed'] = true;
}
header("Location: index.php");
die();
<?php
session_start();
$_SESSION['logged_in'] = false;
header("Location: index.php");
die();
\ No newline at end of file
<?php
require 'auth.php';
switch ($_SERVER['REQUEST_METHOD']) {
case 'GET': ?>
<form method="post">
<input type="text" name="login" placeholder="User name"><br>
<input type="password" name="password" placeholder="Password"><br>
<button>Sign up</button>
</form>
<?php
break;
case 'POST':
$login = $_POST['login'];
$password = $_POST['password'];
addUser($login, $password);
header("Location: index.php");
die();
break;
}
<?xml version="1.0"?>
<users>
</users>
Markdown is supported
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