4E e 4I: procedura di registrazione nuovo utente in Php e file di testo
Questa procedura consente di inserire le credenziali tramite la pagina login.php dove vengono richieste la username e la password.
Nei campi input text viene inserito l'attributo required che obbliga l'utente a compilare il campo.
Required è un attributo booleano.
Quando presente, specifica che è necessario compilare un campo di input prima dell'invio del modulo.
Required funziona con i seguenti tipi di input: testo, ricerca, URL, telefono, e-mail, password, selettori di data, numero, casella di controllo, radio e file.
pagina login.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Utente</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
form {
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
width: 300px;
text-align: center;
}
h2 {
color: #333;
}
label {
display: block;
margin: 10px 0;
font-weight: bold;
}
input {
width: 100%;
padding: 10px;
margin-bottom: 15px;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
input[type="submit"] {
background-color: #4caf50;
color: white;
padding: 10px 15px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
input[type="submit"]:hover {
background-color: #45a049;
}
p {
margin-top: 10px;
font-size: 14px;
}
a {
color: #3498db;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<form method="post" action="login.php">
<h2>Login Utente</h2>
<label>Username:</label>
<input type="text" name="username" required>
<label>Password:</label>
<input type="password" name="password" required>
<input type="submit" value="Login">
<p><a href="register.php">Non sei ancora registrato? Clicca qui</a></p>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = md5($_POST['password']); // Non consigliato per un'applicazione reale
// r perchè apro il file in modalità lettura
$file = fopen('users.txt', 'r');
while (!feof($file)) {
$line = fgets($file);
$fields = explode("|", $line);
$storedUsername = $fields[0];
$storedPassword = trim($fields[1]);
if ($username == $storedUsername && $password == $storedPassword) {
echo "Login avvenuto con successo!";
fclose($file);
header("Location: index.php");
exit();
}
}
fclose($file);
echo "Credenziali non valide. Riprova.";
}
?>
</body>
</html>
Se le credenziali non sono state memorizzate nel file users.txt si procede alla registrazione.
La password memorizzata nel file di testo è stata criptata con la funzione MD5
pagina register.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Registrazione Utente</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
form {
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
width: 300px;
text-align: center;
}
h2 {
color: #333;
}
label {
display: block;
margin: 10px 0;
font-weight: bold;
}
input {
width: 100%;
padding: 10px;
margin-bottom: 15px;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
input[type="submit"] {
background-color: #3498db;
color: white;
padding: 10px 15px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
input[type="submit"]:hover {
background-color: #2980b9;
}
</style>
</head>
<body>
<form method="post" action="register.php">
<h2>Registrazione Utente</h2>
<label>Username:</label>
<input type="text" name="username" required>
<label>Password:</label>
<input type="password" name="password" required>
<input type="submit" value="Registra">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = md5($_POST['password']);
$userData = "$username|$password\n";
// Apri il file in modalità append
$file = fopen('users.txt', 'a');
// Qui ho fatto si che le informazioni dell'utente venissero scritte nel file
fwrite($file, $userData);
fclose($file);
echo "Registrazione avvenuta con successo!";
header("Location: login.php");
exit();
}
?>
</body>
</html>
Parametri, metodi e funzioni utilizzate in questa procedura:
$userData = "$username|$password\n"; vengono memorizzati nella variabile $userData i dati relativi al contenuto delle due variabili $username e $password con il carattere "|" e il parametro "\n"
Si usa il carattere \n per andare a capo: se all'interno o alla fine di una stringa compare \n, in quel punto si andrà a capo.$file = fopen('users.txt', 'a+');
Commenti
Posta un commento