NO... cmq io eviterei in assoluto un txt esterno con le password (anche se criptate con salt).
Quando si fa un login è preferibile utilizzare mysql... ma se si vuole evitare e creare un login multiutente io farei così.
- LibreriaLogin.php
Codice PHP:
<?php
function db_user()
{
$_USERS = array();
$_USERS['tizio'] = array(
'password' => 'PassTizio',
'email' => 'email@email.it',
'sesso' => 'M',
'hobby' => 'giocare a calcio'
);
$_USERS['caio'] = array(
'password' => 'test',
'email' => 'esempio@email.it',
'altezza' => '1.78',
'età' => '25'
);
/*
oltre alle info dell'utente
una articolazione di questo tipo
è utile per gestire i permessi differenziati
*/
$_USERS['sempronio'] = array(
'password' => 'test2',
'insert' => TRUE,
'delete' => FALSE
);
return $_USERS;
}
function login_user($username, $pass)
{
$array_utenti = db_user();
// se esiste l'utente
if(array_key_exists($username, $array_utenti))
{
// se quell'utente ha quella password
if($array_utenti[$username]['password']==$pass)
{
return TRUE;
}
}
return FALSE;
}
function variables_session_login($username)
{
$_SESSION['login'] = TRUE;
$_SESSION['username'] = $username;
}
function logout_user()
{
if(isset($_SESSION['login']))
{
unset($_SESSION['login']);
}
if(isset($_SESSION['username']))
{
unset($_SESSION['username']);
}
}
function is_logged_user()
{
if(isset($_SESSION['login']) AND isset($_SESSION['username']))
{
if($_SESSION['login']==TRUE)
{
return TRUE;
}
}
return FALSE;
}
function login_form()
{
$form = '
<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="loginform">
<fieldset>
<legend>Login</legend>
<label>Username</label>
<input type="text" name="usern" value="" /><br />
<label>Password</label>
<input type="password" name="pass" value="" /><br />
<label> <label>
<input type="submit" name="submit" value="Login" /><br />
</fieldset>
</form>
';
return $form;
}
?>
- login.php
Codice PHP:
<?php
require_once('LibreriaLogin.php');
session_start();
$msg = '';
if(isset($_POST['submit']))
{
$_POST = array_filter($_POST, "is_string");
$_POST = array_map("stripslashes", $_POST);
$_POST = array_map("trim", $_POST);
$user = isset($_POST['usern']) ? $_POST['usern'] : '';
$pass = isset($_POST['pass']) ? $_POST['pass'] : '';
if(login_user($user, $pass)==TRUE)
{
variables_session_login($user);
$msg = '
<p>
<strong style="color:green;">Login eseguito con successo.</strong>
<br />
Benvenuto '.$_SESSION['username'].'
</p>';
}
else
{
$msg = '<p><strong style="color:red;">Login errato.</strong></p>';
}
}
else if(isset($_GET['action']))
{
if(stripslashes($_GET['action'])=='out')
logout_user();
}
?>
<html>
<head>
<title>Login page</title>
<body>
<?php
echo $msg;
if(!is_logged_user())
echo login_form();
else
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=out">Logout</a>';
?>
</body>
</html>