![]() |
|
Recuperare le password con Asp
A quanti servizi di Hosting, di Affiliazione, Email, Forum, Newsletter, Newsgroup, Chat, ed altre diavolerie del genere siete registrati? Se sono la metà dei miei saranno un migliaio! E pretendete che mi ricordi tutte le Password? Specie di quei servizi che all'atto dell'iscrizione generano Password casuali tipo a56Xo98D72.
<%@LANGUAGE = JScript%>
<%
// Operazioni preliminari:
// - Apro un buffer di memoria per evitare di incappare in errori di caching
// - Verifico che il modulo sia stato inviato
// - Setto l'espressione regolare di un indirizzo email
Response.Buffer = true;
var invia = new String(Request.QueryString("invia"));
var controlla = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]{2,})+.)+([a-zA-Z0-9]{2,})+$/;
%>
<html>
<body>
<h3 align="center">Hai dimenticato la Password?</h3>
<p align="center">Inserisci l'indirizzo email con cui ti sei registrato e la riceverai entro pochi minuti!</p>
<p align="center">
<form method="POST" action="password.asp?invia=PWD">
<input type="text" name="email">
<input type="submit" value="OK">
<form>
</p>
<p align="center">
<%
if (invia == "PWD")
{
// Recupero l'indirizzo email dell'utente dal modulo
var email = new String(Request.Form("email"));
// Se non viene inerito alcun indirizzo email restituisco un messaggio di errore
if (!controlla.test(email))
{
Response.Write("<font color='#FF0000'>Email errata... non te ne sei accorto!</form>");
}
else
{
// Apro la connessione al database e verifico che l'utente esista
var Cn = new ActiveXObject("ADODB.Connection");
Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb"));
var verifica = Cn.Execute("SELECT * FROM utenti WHERE email = '" + email + "'");
// Se l'utente non esiste restituisco un altro messaggio di errore
if (verifica.EOF)
{
Response.Write("<font color='#FF0000'>Email non presente, non sei registrato... muori!</form>");
}
// Se l'utente esiste gli invio la mail con la Password
else
{
var mail = new ActiveXObject("CDONTS.NewMail");
mail.To = email;
mail.From = "staff@servizio.ext"; // Email del tuo servizio con cui invii la mail all'utente
mail.Subject = "Password dimenticata";
mail.Body = "Ciao " + verifica("username") + ", la tua Password è " + verifica("password");
mail.Send();
Response.Write("Password inviata all'indirizzo " + email);
Response.Write("<br>Ti consiglio una curetta di fosforo!");
}
Cn.Close();
}
}
%>
</p>
</body>
</html>
Lo scopo per cui si compiono tante operazioni preliminari e verifiche è quello di evitare sprechi di risorse... perchè uccidere la salute ad un povero server Web facendogli aprire una connessione ed inviare una mail ad un utente che non esiste?
|
IN EVIDENZA
Una slidegallery con jQuery
Pagamenti online con PayPal e PHP
Breve guida a jQuery
Effetto ombra su testo con Photoshop
Guadagna col tuo sito grazie a TradeD...
Guida XHTML
Riscrivere le URL con Asp
Riavviare IIS
HTTP 500 internal server error
Generare password casuali in Javascri...
Errore 80004005: Cannot update. Datab...
Introduzione ad Ajax ed Asp con Jscri...
Referenze dei Tag Html
Stringhe di connessione via ODBC e Ol...
Referenze dei fogli di stile Css
Le espressioni regolari in Javascript
|
||||
© 2001/2010 lukeonweb.net - A cura di Luca Ruggiero, Partita IVA 05564851219 -
Privacy |
Pubblicità |
Contatti
| |||||