第二步:建立流程图
下面,建立一个流程图,用来说明口令处理的流程。由于这个处理过程相对简单,所以不必使用图形表示。
口令处理流程应当是现有程序调用的第一批例程之一。在用户第一次访问程序时,会看到一个登录页面。如果用户提交了正确的口令,那么需要设置一个cookies,当用户再次访问程序时,将读取这个cookie。如果用户输入了错误的口令,就会显示无效登录页面。
如果登录表单里没有口令,就代表这是用户第一次访问程序,还没有输入口令;或者说明用户可能已经输入了口令,但是没有保存在他们机器的上的cookie里。在这种情况下,应当有一个带有正确口令的cookie,只有cookie存在,程序才继续,如果不存在或者不正确,程序就应当转到登录屏幕并退出。
这听起来可能有点复杂,但是如果你看看有关的Perl脚本,就会找到感觉。
$pw; # 实际的口令 $in; # 用户在登录表单里输入的口令 $ck; # 保存在cookie里的用户口令 ### 登录表单例程 ### 这些例程检测用户在登录页里输入的口令是否正确 if ($in && $in eq $pw) { # 输入的口令正确 &SetCookie("passlib_pw","$in"); # 设置口令cookie return; # 继续执行程序 } elsif ($in && $in ne $pw) { # 输入的口令不正确 print "Content-type: text/html "; # 打印内容头信息 print &Template("$cgidir/_passlib_invalid.html"); # 输出无效登录页面 exit; # 退出 } ### COOKIE 例程 ### 这些例程检测保存在口令cookies里的口令是否正确 elsif ($ck && $ck eq $pw) { # 保存在cookie里的口令正确 return; # 继续执行程序 } else { # 保存在 cookie 里的口令不正确或者不存在 print "Content-type: text/html "; # 打印内容头信息 print &Template("$cgidir/_passlib_login.html"); # 输出登录页 exit; # 退出 }