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.

Žádný příspěvek v diskuzi

Odpovědět