codice:
################################################################################
#------------------------------------------------------------------------------#
# logout
#------------------------------------------------------------------------------#
################################################################################
function Logout($user) {
$cookie = explode("|", base64_decode($user));
$result = mysql_query("SELECT password FROM ".$prefix."_users WHERE username='$cookie[1]'");
$row = mysql_fetch_array($result);
$pass = $row['password'];
if ($cookie[2] == $pass && $pass != "") {
return $cookie;
} else {
unset($user);
unset($cookie);
}
setcookie("user");
$user = "";
header("Location: users.php");
}
################################################################################
#------------------------------------------------------------------------------#
# Register
#------------------------------------------------------------------------------#
################################################################################
function Register(){
include("header.php");
register_form();
include("footer.php");
}
function register_form(){
global $username, $password, $email, $fullname, $user_taken_err, $email_taken_err;
echo "<center><font class=\"title\">Form di registrazione</font></center>
\n";
echo "<center>I campi con l'asterisco (*) sono obbligatori.
<form name=\"RegisterForm\" method=\"POST\" action=\"users.php\" onsubmit='return CheckRegisterForm(RegisterForm)'>
<table align=\"center\" border=\"1\" width=\"400\" id=\"table1\" cellpadding=\"2\" bordercolor=\"#C0C0C0\">
<tr>
<td width=\"100\" align=\"right\">Username:</td>
<td><input type=\"text\" name=\"username\" size=\"18\" value=\"$username\"> * $user_taken_err</td>
</tr>
<tr>
<td align=\"right\">Password:</td>
<td><input type=\"password\" name=\"password\" size=\"18\" value=\"$password\"> *</td>
</tr>
<tr>
<td align=\"right\">Email:</td>
<td><input type=\"text\" name=\"email\" size=\"27\" value=\"$email\"> * $email_taken_err</td>
</tr>
<tr>
<td align=\"right\">Nome completo:</td>
<td><input type=\"text\" name=\"fullname\" size=\"27\" value=\"$fullname\"></td>
</tr>
<tr>
<td></td>
<td> <input type=\"hidden\" name=\"maa\" value=\"do_Register\">
<input type=\"submit\" value=\"Registra\"></td>
</tr>
</table></form>";
}
function do_Register(){
global $db, $prefix, $username, $password, $email, $fullname, $user_taken_err, $email_taken_err;
global $site_name, $site_email, $site_url;
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$email = mysql_real_escape_string($_POST['email']);
$fullname = mysql_real_escape_string($_POST['fullname']);
//this function will check fields incase of javascript not working.
if((!$username) || (!$password) || (!$email)){
if(trim(empty($username))){
}
if(empty($password)){
}
if(trim(empty($email))){
}
//print the error message and load the form.
include("header.php");
echo "<center><font class=\"error\">Errore:
Controlla se hai inserito tutti i dati.</font></center>\n";
register_form();
include("footer.php");
exit();
}
/*--nothing empty? lets do the register-------------------------------------------------------------*/
$sql_email_check = mysql_query("SELECT email FROM ".$prefix."_users WHERE email='$email'");
$sql_username_check = mysql_query("SELECT username FROM ".$prefix."_users WHERE username='$username'");
$email_check = mysql_num_rows($sql_email_check);
$username_check = mysql_num_rows($sql_username_check);
if(($email_check > 0) || ($username_check > 0)){
//define error message for usage in multi plces.
$exist_msg= "<font class=\"error\">(Già registrato!.)</font>";
if($email_check > 0){
$email_taken_err = $exist_msg;
unset($email);
}
if($username_check > 0){
$user_taken_err = $exist_msg;
unset($username);
}
//if the username or email already been taken load the form and print errors.
include("header.php");
register_form();
include("footer.php");
exit();
}
$md5_password = md5($password);
$result = mysql_query("INSERT INTO ".$prefix."_users ( username,password,email,fullname)
VALUES('$username','$md5_password','$email','$fullname')") or die ("Error in registration sql:". mysql_error());
$subject = "I tuoi dati di accesso su $site_name";
$message = "
Benvenuti su $site_name
Conserva questa mail perchè contiene i tuoi dati di accesso. Le informazione del tuo account sono le seguenti:
----------------------------
Username: $username
Password: $password
----------------------------
Il tuo account è ora attivo. Puoi usarlo per accedere al nostro sito:
$site_url
Ti preghiamo di non dimenticare la password poichè nel nostro database degli utenti risulta criptata e quindi non possiamo comunicartela.
Se dovessi dimenticarla puoi chiederne una nuova, tramite il form dedicato; in questo caso al termine della procedura ti sarà inviata tramite e-mail.
Grazie per esserti registrato.
--
- $site_name
$site_url
Questa mail è stata generata automaticamente dal nostro database.
Ti preghiamo di non rispondere alla suddetta poichè non ci giungerà nessun tuo messaggio";
if(!mail($email,$subject,$message, "FROM: $site_name <$site_email>")){
die ("Impossibile inviare la e-mail di registrazione. Si prega di contattare lo staff ($site_email)");
}else{
include("header.php");
echo "registrazione effettuata!";
login_form();
include("footer.php");
}
}
################################################################################
#------------------------------------------------------------------------------#
# Forgot Password
#------------------------------------------------------------------------------#
################################################################################
function Forgot_pwd_form(){
global $error_msg;
echo "<center><font class=\"title\">Mandami una nuova password</font>
<form method='POST' action='users.php'>
<table border='0' cellpadding='4'>
<tr>
<td bgcolor='#E2E2E2'>Username:</td>
<td bgcolor='#E2E2E2'><input type='text' name='username' size='11'></td>
</tr>
<tr>
<td bgcolor='#E2E2E2'>Email:</td>
<td bgcolor='#E2E2E2'><input type='text' name='email' size='11'></td>
</tr>
<tr>
<td></td>
<td>
<input type='hidden' name='maa' value='do_Forgot_pwd'>
<input type='submit' value='Send password'></p>
</td>
</tr>
</table><center>$error_msg</center>
</form>";
}
function Forgot_pwd(){
global $user, $prefix, $db;
include("header.php");
Forgot_pwd_form();
include("footer.php");
}
function do_Forgot_pwd(){
global $user, $prefix, $db, $email, $username, $error_msg, $site_name ,$site_email, $site_url;
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$result = mysql_query("SELECT * FROM ".$prefix."_users WHERE username='$username' AND email='$email'");
$check = mysql_num_rows($result);
if($check == 1){
function new_pwd() {
$chars = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pwd = $pwd . $tmp;
$i++;
}
return $pwd;
}
$new_pwd = new_pwd();
$md5_password = md5($new_pwd);
$sql = mysql_query("UPDATE ".$prefix."_users SET password='$md5_password' WHERE email='$email'");
$subject = "New password";
$message = "
Salve $username,
Hai ricevuto questa e-mail perchè hai richiesto una nuova password per il tuo account su $site_name.
Qui sotto trovi le credenziali di accesso.
--------------------------
Username: $username
Password: $new_pwd
--------------------------
Puoi effettuare il login da qui:
$site_url
Puoi tranquillamente modificare la password tramite la pagina dedicata al tuo account. Per ogni problema rivolgiti al webmaster.
--
-Grazie
$site_name
Questa mail è stata generata automaticamente dal nostro database.
Ti preghiamo di non rispondere alla suddetta poichè non ci giungerà nessun tuo messaggio";
mail($email,$subject,$message, "FROM: $site_name <$site_email>");
include("header.php");
echo "La tua nuova password ti è stata mandata via mail.";
echo "
attendere prego...";
include("footer.php");
}else{
include("header.php");
Forgot_pwd_form();
echo "<center><font class=\"error\">Errore: username/email errati</font></center>
";
include("footer.php");
}
}
################################################################################
#------------------------------------------------------------------------------#
# a switch for switching between functions
#------------------------------------------------------------------------------#
################################################################################
switch ($maa){
case "Forgot_pwd":
Forgot_pwd();
break;
case "do_Forgot_pwd":
do_Forgot_pwd();
break;
case "Register":
Register();
break;
case "do_Register":
do_Register();
break;
case "Logout":
Logout($user);
break;
case "Login":
Login();
break;
case "do_login":
do_login();
break;
Default:
index($user);
Break;
}
?>