ok!!! adesso il file index.php si sa che ha il codice per username e password, ed inoltre il form con i moduli per l'accesso
il database è quello che ho postato prima!
il file config.php idem postato anche
restano altri quali: common.php
Codice PHP:
<?php
include('config.php');
include('includes/auth.inc.php');
$link = @mysql_connect(HOST, USERNAME, PASSWD)
or die('Connessione al database fallita.');
@mysql_select_db(DB_NAME)
or die('Selezione del database fallita.');
?>
poi il file pagina.php
Codice PHP:
<?php
include('common.php');
$user_data = auth_check_user();
extract($user_data);
echo 'Benvenuto '. $user_name;
?>
<br />
Per effetuare il logout clicca qui <b><a href="logout.php">[LogOut]</a></b>
poi il file logout.php
Codice PHP:
<?php
include('common.php');
$res = auth_session_destroy();
header('Location: '. LOGIN_PAGE);
?>
e poi il file auth.inc.php
Codice PHP:
<?php
function auth_generate_sid()
{
$sid = md5(uniqid(rand(), true));
return $sid;
}
function auth_session_begin($user_id)
{
$session_id = auth_generate_sid();
$time = time();
$sql = "INSERT INTO sessions
(session_id, session_user_id, session_start)
VALUES ('$session_id', $user_id, $time)";
$result = @mysql_query($sql);
if (!$result)
{
die('Si è verificato un errore
nell\'avvio della sessione.');
}
setcookie(COOKIE_NAME, $session_id);
return true;
}
function auth_session_destroy()
{
global $_COOKIE;
if (isset($_COOKIE[COOKIE_NAME]))
{
$session_id = $_COOKIE[COOKIE_NAME];
$sql = "DELETE FROM sessions WHERE
session_id = '$session_id'";
$result = @mysql_query($sql);
if (!$result)
{
die('Si è verificato un errore
nel rimuovere la sessione.');
}
setcookie(COOKIE_NAME);
return true;
}
// Non è loggato.
return false;
}
function auth_check_user_login($username, $passwd)
{
/*
* Avendo definito prima di quanti e quali caratteri
* devono essere formati username e password, facciamo
* un po' di pulizia sull'imput dell'utente
*/
$username = addslashes($username);
$passwd = addslashes($passwd);
$sql = "SELECT user_id, user_username, user_passwd
FROM users
WHERE user_username = '$username'
AND user_passwd = MD5('$passwd')";
$result = @mysql_query($sql);
if (!$result)
{
die('Si è verificato un errore nel verificare
i dati per l\'autenticazione.');
}
if (mysql_num_rows($result) == 1)
{
list($user_id, $db_username, $db_passwd) = mysql_fetch_row($result);
if ($db_username == $username && $db_passwd == md5($passwd))
{
return $user_id;
}
else
{
return;
}
}
else
{
return;
}
}
function auth_check_user()
{
global $_COOKIE;
if (isset($_COOKIE[COOKIE_NAME]))
{
$session_id = $_COOKIE[COOKIE_NAME];
$sql = "SELECT u.user_name
FROM sessions s
LEFT JOIN users u ON u.user_id = s.session_user_id
WHERE s.session_id = '$session_id'";
$result = @mysql_query($sql);
if (!$result)
{
die('Si è verificato un errore nella verifica della sessione.');
}
if (mysql_num_rows($result) == 1) {
$user_info = mysql_fetch_assoc($result);
return $user_info;
}
else
{
/*
* C'è il cookie ma non c'è la sessione nel db
* molto strano meglio uscire.
*/
exit;
}
}
else
{
header('Location: '. LOGIN_PAGE);
exit;
}
}
?>
sono alle prime armi perciò cercate di capirmi grazie.
EDIT: P.S: approposito!!! se qualcuno di voi così gentile dopo quello che ho pubblicato potesse darmi una spiegazione dettagliata con eventuali correzioni scritte ve ne sarei grati.
grazie ancora.