non ci siamo !$connection = mysqli_query ('login','admin_login','*****');
alla funzione devi passare la connessione e poi la query non i dati di connessione.
come hai fatto sotto
if (false == mysqli_query($connection,$sql))
non ci siamo !$connection = mysqli_query ('login','admin_login','*****');
if (false == mysqli_query($connection,$sql))
non ci siamo !
alla funzione devi passare la connessione e poi la query non i dati di connessione.
come hai fatto sotto
<?php
// includo il file con la lista delle funzioni di utilità
require_once 'inc/utils.php';
// Qui inseriremo gli errori avvenuti durante la validazione
// dei dati inseriti dall'utente nel form di login
$formErrors = array();
// Questi sono i dati inviati dall'utente
$userName = $_POST['user-name'];
$userEmail = $_POST['user-email'];
$userEmailRepeat = $_POST['user-email-repeat'];
$userPassword = $_POST['user-password'];
$userPasswordRepeat = $_POST['user-password-repeat'];
/* Controllo sull'indirizzo email
*
* Se la lunghezza è 0 allora il campo è vuoto
* altrimenti controllo che l'indirizzo email sia valido
* altrimenti controllo che l'indirizzo email sia uguale
* all'indirizzo email ripetuto
*/
if (strlen($userEmail) == 0)
{
$formErrors[] = 'Il campo email è obbligatorio.';
}
else if (false == emailIsValid($userEmail))
{
$formErrors[] = "L'indirizzo email inserito non è corretto";
}
else if ($userEmail != $userEmailRepeat)
{
$formErrors[] = "L'indirizzo email e l'indirizzo ripeti email non sono uguali";
}
/* Controllo sulla password inserita
*
* Se la lunghezza è 0 allora il campo è vuoto
* altrimenti controllo che la password abbia una lunghezza di almeno 6 caratteri
* altrimenti controllo che il campo password ed il campo ripeti password siano uguali
*/
if (strlen($userPassword) == 0)
{
$formErrors[] = 'Il campo password è obbligatorio';
}
else if (strlen($userPassword) < 6)
{
$formErrors[] = 'La password inserita è troppo corta';
}
else if ($userPassword != $userPasswordRepeat)
{
$formErrors[] = 'Il campo password ed il campo ripeti password non sono uguali';
}
/* Controllo sul campo nome
*
* Se la lunghezza è 0 allora il campo è vuoto
* altrimenti controllo che il campo nome abbia una lunghezza di almeno 3 caratteri
*/
if (strlen($userName) == 0)
{
$formErrors[] = 'Il campo nome è obbligatorio';
}
else if (strlen($userName) < 3)
{
$formErrors[] = 'Il nome inserito è troppo corto';
}
// Se il conteggio degli errori è 0 allora i dati inviati dall'utente
// sono validi, procedo con la registrazione del nuovo utente
if (count($formErrors) == 0)
{
// includo ora la lista di funzioni che servono per gestire l'utente
require_once 'inc/user.php';
// Per prima cosa mi assicuro che l'indirizzo email del nuovo utente
// non sia già registrato nel database
if (true == userEmailExists($userEmail))
{
$formErrors[] = "L'indirizzo email inserito è già stato registrato";
}
else
{
// La password inserita viene ora criptata tramite la funzione md5()
// criptare la password è un buon modo per alzare il livello di sicurezza
// del nostro sistema di login
$userPassword = md5($userPassword);
// Questo è il codice alfanumerico di 32 caratteri che verrà utilizzato
// nel link di attivazione account
$activationToken = md5(time().'_'.$userEmail);
/* Tento di registrare il nuovo utente sul database
*
* Se non riesco avverto il nuovo utente che non ho potuto registrarlo
* altrimenti gli invio una email contenente un link con cui confermare
* la registrazione
*/
$userData = array(
'email' => $userEmail,
'password' => $userPassword,
'name' => $userName,
'token' => $activationToken
);
$userId = registerNewUser($userData);
if (false == $userId)
{
$formErrors[] = 'Si è verificato un errore durante la registrazione';
}
else
{
// Questo è il link di attivazione che serve all'utente per confermare
// la propria registrazione
$activationLink = 'http://'.$_SERVER['HTTP_HOST'];
$activationLink .= str_replace('register.php', 'confirm.php', $_SERVER['REQUEST_URI']);
$activationLink .= '?token='.$activationToken;
// Invio la mail in formato HTML
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Oggetto e testo dell'email da inviare
$subject = 'Attivazione account';
$emailText = "<p>Gentile {$userName}, la tua registrazione è avvenuta correttamente.</p>"
. "<p>Per attivare il tuo account, clicca sul link sottostante</p>"
. "<p><a href=\"{$activationLink}\">Clicca qui per attivare il tuo account</p>";
// Provo ora ad inviare l'email all'indirizzo del nuovo utente
// Redirigo poi il nuovo utente alla pagina di conferma invio email
if (false == mail($userEmail, $subject, $emailText, $headers))
{
$formErrors[] = "Si è verificato un errore durante il tentativo di invio dell'email di conferma";
}
else
{
header('Location: confirm_sendmail.php');
}
}
}
}
// Stampo a video la lista degli errori, se presenti
echo showFormErrors($formErrors);
?>
$userId = registerNewUser($userData);
if (false == $userId) {
$formErrors[] = 'Si è verificato un errore durante la registrazione';
}
<?php
/*
* Questo file contiene la lista di funzioni di utilit�
* utilizzate nel sistema
*/
// Questa funzione permette di stampare una lista
// HTML di $formErrors
function showFormErrors($formErrors)
{
return '<ul><li>'.implode('</li><li>', $formErrors).'</li></ul>';
}
// Questa funzione si occupa di controllare se un indirizzo
// email � stato scritto correttamente
function emailIsValid($email)
{
if (false == preg_match('/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/', $email))
{
return false;
}
else
{
return true;
}
}
// Questa funzione si occupa di controllare se un token
// � scritto correttamente
function tokenIsValid($token)
{
// Un token deve essere composto solamente da numeri e lettere
// ed avere una lunghezza di 32 caratteri
if (false == preg_match('/^([a-z0-9]){32}$/', $token))
{
return false;
}
else
{
return true;
}
}
<?php
/*
* In questo file sono contenute le funzioni utili
* alla gestione degli utenti
*/
// Includo la lista delle funzioni per dialogare con il database
require_once 'database.php';
// Questa funzione si occupa di autenticare un utente
// nel sistema
function authenticateUser($userEmail, $userPassword)
{
// Apro una connessione con il database
$connection = getConnection();
// Cerco nel database un utente attivo
// con la coppia email:password specificata
$sql = "SELECT user_id
FROM user
WHERE
email = '%s'
AND
password = '%s'
AND
active = 1";
// Assegno alla query i parametri da cercare
$sql = sprintf($sqli, $userEmail, $userPassword);
// Eseguo la query sul database
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure non ho trovato nessun risultato
if (false == $result || mysqli_num_rows($result) == 0)
return false;
// Questa riga contiene le informazioni dell'utente, se trovato nel database
$row = mysqli_fetch_assoc($result);
// Ritorno lo user_id dell'utente
return $row['user_id'];
}
// Questa funzione permette di registrare un nuovo utente nel sistema
function registerNewUser($userData)
{
// Apro una connessione con il database
$connection = getConnection();
// Questi sono i dati da inserire nel database
$userEmail = $userData['email'];
$userPassword = $userData['password'];
$userName = $userData['name'];
$token = $userData['token'];
// Query per inserire i nuovi dati nel database
$sql = "INSERT INTO user
(email, password, name, token)
VALUES
('%s', '%s', '%s', '%s') ";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql,
$userEmail,
$userPassword,
$mysqli_real_escape_string, ($userName),
$token);
// Provo ad inserire i dati
if (false == mysqli_query($connection, $sql))
{
return false;
}
// se sono riuscito ad inserire i dati,
// ritorno l'ultimo user_id inserito
else
{
return mysqli_insert_id($connection);
}
}
// Questa funzione controlla l'esistenza
// nel database di un utente con uno specifico indirizzo email
function userEmailExists($userEmail)
{
// Apro una connessione con il database
$connection = getConnection();
// Conto il numero di utenti registrati con
// l'indirizzo email specificato
$sql = "SELECT user_id
FROM user
WHERE
email = '%s' ";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql, $userEmail);
// Eseguo la query sul database
$result = mysqli_query($connection , $sql);
// Se non ho trovato utenti oppure se si è
// verificato un errore
if (false == $result || mysqli_num_rows($result) == 0)
{
return false;
}
// Altrimenti vuol dire che ho trovato un utente
// con l'indirizzo email specificato
else
{
return true;
}
}
// Questa funzione cerca i dati di un utente
// in base al token specificato
function userFindByToken($token)
{
// Apro una connessione con il database
$connection = getConnection();
// Cerco un utente con un certo token
$sql = "SELECT *
FROM user
WHERE
token = '%s'";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql, $token);
// Eseguo la query sul database
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure non
// ho trovato nessun utente
if (false == $result || mysqli_num_rows($result) == 0)
{
return false;
}
// Ritorno i dati dell'utente trovato
return mysqli_fetch_assoc($result);
}
// Questa funzione cerca i dati di un utente
// in base all'indirizzo email specificato
function userFindByEmail($userEmail)
{
// Apro una connessione con il database
$connection = getConnection();
// Cerco un utente con un certo indirizzo email
$sql = "SELECT *
FROM user
WHERE
email = '%s'";
// Assegno alla query i parametri da cercare
$sql = sprintf($sqli, $userEmail);
// Eseguo la query sul database
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure non
// ho trovato nessun utente
if (false == $result || mysqli_num_rows($result) == 0)
{
return false;
}
// Ritorno i dati dell'utente trovato
return mysqli_fetch_assoc($result);
}
// Questa funzione cerca i dati di un utente
// in base ad un userId specificato
function userFindById($userId)
{
// Apro una connessione con il database
$connection = getConnection();
// Cerco un utente con un certo userId
$sql = "SELECT *
FROM user
WHERE
user_id = %d";
// Assegno alla query i parametri da cercare
$sql = sprintf($sqli, $userId);
// Eseguo la query sul database
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure non
// ho trovato nessun utente
if (false == $result || mysqli_num_rows($result) == 0)
{
return false;
}
// Ritorno i dati dell'utente trovato
return mysqli_fetch_assoc($result);
}
// Questa funzione serve per attivare l'account
// di un utente con un certo userId
function userActivate($userId)
{
// Apro una connessione con il database
$connection = getConnection();
// Attivo l'utente impostando il campo
// active a 1
$sql = "UPDATE user
SET active = 1, token = NULL
WHERE
user_id = %d";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql, $userId);
// Eseguo la query sul database
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure nessun utente
// � stato attivato
if (false == $result || mysqli_affected_rows($connection) == 0)
{
return false;
}
// Altrimenti l'utente � stato attivato
else
{
return true;
}
}
// Questa funzione permette di settare il token
// di uno specifico utente, identificato dal suo userId
function userSetToken($token, $userId)
{
// Apro la connessione al database
$connection = getConnection();
// Questa è la query di aggornamento
$sql = "UPDATE user
SET token = '%s'
WHERE user_id = %d";
// Assegno alla query i parametri da cercare
$sql = sprintf($sqli, $token, $userId);
// Eseguo la query
$result = mysqli_query($connection, $sql);
// Se si è verificato un errore oppure nessun token � stato settato
// ritorno false
if (false == $result || mysqli_affected_rows($connection) == 0)
{
return false;
}
// altrimenti ritorno true
else
{
return true;
}
}
// Query per inserire i nuovi dati nel database
$sql = "INSERT INTO user
(email, password, name, token)
VALUES
('%s', '%s', '%s', '%s') ";
// Assegno alla query i parametri da cercare
$sql = sprintf($sql,
$userEmail,
$userPassword,
$mysqli_real_escape_string, ($userName),
$token);
// Assegno alla query i parametri da cercare
$sql = sprintf($sql,
$userEmail,
$userPassword,
mysqli_real_escape_string($userName),
$token);
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?