Přihlašování na stránky pomocí ASP – posíláme heslo

3. října 2001

V předcházejícím článku o přihlašování na web stránky jsme dali uživatelům možnost změnit si své heslo. Tento pro uživatele vstřícný krok však sebou nese jeden velký problém a to sice zvýšenou možnost zapomenutí hesla a tím pádem i znepřístupnění web stránek pro uživatele do té doby, než mu správce aplikace sdělí jeho heslo. V dnešním článku se dozvíte, jak zajistit možnost zaslání hesla na email, který je uveden v databázi.

Předpokladem správné funkce je ovšem zajištění stavu, že kombinace emailové adresy a jména uvedených v databázi budou unikátní. To lze snadno zajistit při vkládání uživatelů do databáze, ale o tom až v některém z dalších dílů toho seriálu. Pro dnešní díl budeme předpokládat, že emaily a jména v databázi jsou skutečně unikátní.

Celá dnešní „přidaná hodnota“ bude opět umístěna v jediném souboru, který se bude jmenovat mailpsw.asp V souboru bude umístěn jednoduchý formulář, který se zobrazí při přístupu na mailpsw.asp bez předchozího vyplnění formuláře a skript, který na základě vyplněné email adresy a jména odešle heslo, které těmto zadaným údajům odpovídá.

<!–#include file=“connect.asp“–>
<%
if Request.Form(„email“)=““ and Request.Form(„jmeno“)=““ then
%>
   <FORM action=“mailpsw.asp“ method=POST id=form name=form>
   Jméno:<INPUT type=“text“ id=jmeno name=jmeno><br>
   E-mail:<INPUT type=“text“ id=email name=email><br>
   <INPUT type=“submit“ value=“Submit“ id=submit1 name=submit1>
   <INPUT type=“reset“ value=“Reset“ id=reset1 name=reset1>
   </FORM>
<%
else
   if isconnectdb() then
      sql=“select jmeno,heslo,email from USERS where email='“&Request.Form(„email“)&“‚ and jmeno='“&Request.Form(„jmeno“)&“‚“
      set rs=objconn.execute(sql)
      if not rs.eof and not rs.bof then
         ‚ posilame heslo
         Set myMail=server.CreateObject(„CDONTS.NewMail“)
         myMail.From= „clanek@interval.cz“
         myMail.To=rs(„email“)
         myMail.Subject=“Mail z aplikace prihlaseni“
         myMail.Body=“Vase heslo je: „& rs(„heslo“)
         mymail.Send
         set myMail=nothing
         Response.Write „Vaše heslo bylo posláno na adresu: „&rs(„email“)
      else
         Response.Write „Zadaná email adresa nebo jméno nejsou v databázi“
      end if
      rs.close
      set rs=nothing
   else
      Response.Write „Nepodařilo se spojit s databází“
   end if
end if
%>

Pokud není kombinace zadaného jména a adresy nalezena v databázi, nebo se nelze s databází spojit, je o tom uživatel informován.

Ve skriptu je použito souboru connect.asp, který zajišťuje spojení s databází a byl již několikrát popisován v předchozích článcích. Na základě vyplněné email adresy sestavíme SQL dotaz, pomocí kterého se pokusíme v databázi najít odpovídající záznam. Pokud najdeme záznam, který odpovídá zadané emailové adrese, odešleme na tuto adresu heslo. Podobněji je posílání emailu popsáno v článcích o posílání emailu pomocí ASP, které najdete v této rubrice Interval.cz.

A ještě jeden tip na závěr dnešního článku. Pokud chcete mít formulář pro poslání hesla na jiné stránce, můžete jej bez obav umístit kamkoliv. V tomto případě ale doporučuji po zpracování provést přesun zpět na stránku, ze které bylo volání provedeno.

Vše, co jsem vám dneska předvedl, si můžete stáhnout zde.

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *