Я работаю в login, чтобы приватизировать немного Веб приложение, которое я делаю. Моими знаниями дело не в том, что они были основными, но также лучшие, и я нуждаюсь в помощи.
Нет метода реестра. Реестр сделаю я лично с базы данных. То, в чем я нуждаюсь, так это советы или способами делать этот login и позже, контроль сеанса, больше страховок, надежнее, лучшую структуру документов .php в корневом каталоге...
На данный момент, единственным, что я применяю, является PDO и изрекает их prepare
чтобы предотвращать вставки SQL.
Структура документов они:
login.php (Здесь - формуляр, и где работают функции). Это код PHP, который есть перед заголовком, чтобы управлять о login:
if (isset($_POST['entrar'])) {
require "functions.php";
$error = [];
$user = ValidUser($error);
if(empty($error)){
logearUsuario($user);
header("Location: application.php");
}
}
Имена переменных, которые нужно подбирать из-за form: user (пользователь), pass (password) и входить (submit)
conn.php (В этом документе находится необходимое для связи в базу данных, в está случай MySQL, но в будущем он изменится PostgreSQL. Говорится о функции, которую он включает во все необходимое, чтобы присоединяться)
function connection(){
try{
$dsn = 'mysql:host=localhost; dbname=controlusuarios';
$userBBDD = 'root';
$passBBDD = '';
$conn = new PDO($dsn, $userBBDD, $passBBDD);
return $conn;
}catch(Exception $e){
die('Error: ' . $e->GetMessage());
}
}
functions.php (Он содержит несколько функций. Одна, чтобы санкционировать пользователя, и другая для logearlo. Условие logeo случается в документе login.php)
function validUser(&$error){
if((!isset($_POST['user'])) || (!isset($_POST['pass']))){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}
$user = $_POST['user'];
$pass = $_POST['pass'];
if(($user == '') || ($pass == '')){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}else{
$con = connection();
$sql = "SELECT name FROM usuarios WHERE name = :user AND password = :pass";
$query = $con->prepare($sql);
$query-> bindParam(':user', $user);
$query-> bindParam(':pass', $pass);
$query-> execute();
$contador = $query -> rowCount();
if($contador != 1){
$error[0] = "Usuario y/o contraseña incorrectos.";
return null;
}
$con = null;
return $user;
}
}
function logearUsuario($user){
session_start();
$_SESSION['name'] = $user;
}