Пишу для практики небольшой новостной сайт. Пока на стадии написания авторизации. Суть у меня пока такая: Есть главный файл index.htm в нем только форма для входа и одновременно(пока) для регистрации, в поля вводятся пара логин/пароль, проверяется наличие данной пары в бд, если нету то записывается. Использовал сессию для сохранения вводимых данных, в show.htm просто пока для себя отображаю, что было введено пользователем, проверка входных параметров в этом же файле. Оцените по возможности. Укажите на ошибки, дайте какое - нибудь наставление или натолкните на правильную мысль.) Файлы пхп разместил в отдельной директории. В Htm файлах стараюсь только подключать нужные файлы. Оцените код)
index.htm
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<meta name="author" content="admin" />
<title>вход</title>
</head>
<body>
<form action="php/session.php" method="post">
<label>Логин:<br /><input type="text" name="login" value="<?php echo filter_var($_SESSION['login'], FILTER_SANITIZE_SPECIAL_CHARS); ?>" /><br /></label>
<label>Пароль:<br /><input type="password" name="pass" value="<?php echo filter_var($_SESSION['pass'], FILTER_SANITIZE_SPECIAL_CHARS); ?>" /><br /></label>
<label>Почта:<br /><input type="text" name="email" value="<?php echo filter_var($_SESSION['email'], FILTER_SANITIZE_EMAIL); ?>" /><br /></label>
<label><button type="submit">Войти</button></label>
</form>
</body>
</html>
php/session.php
<?php
session_start();
$whitelist = array(
'login' => 'login',
'pass' => 'pass',
'email' => 'email'
);
$incoming = array_keys(array_intersect_key($_POST, $whitelist));
foreach($whitelist as $key){
$_SESSION[$key] = $_POST[$key];
}
header('Location: show.htm');
php/users.php
<?php
$SelectFromDb = "SELECT * FROM people WHERE name = '$login'";
$res = mysqli_query($mysqli,$SelectFromDb);
$num = mysqli_num_rows($res);
if($num == 0){
$querry = "INSERT INTO people(name, pass, email) VALUES('$login', '$pass', '$email')";
$result = mysqli_query($mysqli, $querry) or die("Ошибка записи!");
}
else {
echo "Ошибка записи в БД! Данный логин уже существует!";
}
php/show.htm
<?php
session_start();
$login = filter_var($_SESSION['login'], FILTER_SANITIZE_SPECIAL_CHARS);
$pass = filter_var($_SESSION['pass'], FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_var($_SESSION['email'], FILTER_SANITIZE_EMAIL);
require_once ('db.php');
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<meta name="author" content="admin" />
<title>Результат</title>
</head>
<body>
<table>
<tr>
<?php echo $login; ?>
</tr>
<tr>
<?php echo $pass; ?>
</tr>
<tr>
<?php echo $email; ?>
</tr>
</table>
<form action="../index.htm" method="post">
<input type="hidden" name="login" value="<?php echo $login; ?>" />
<input type="hidden" name="pass" value="<?php echo $pass; ?>" />
<input type="hidden" name="email" value="<?php echo $email; ?>" />
<button type="submit">Редактровать</button>
</form>
<?php require_once('users.php'); ?>
</body>
</html>