作者laechan (小太保)
看板mud_sanc
标题[分享] ASP 登入帐号密码设计 & 其它..
时间Mon Jun 25 16:42:27 2012
这两天在医院顾我爸,顺便利用空档时间改良公司的程式。
一、简易网站 & 树状结构
这个就套用上次研究出来的东西
http://sanclaechan.myweb.hinet.net/tree.html
将上面的树状下拉结构放到我自己写的网站里头。
(在上面的页面按右键选检视原始码可以看到原始码)
二、帐号密码登入设定
我写了两支程式,check_login.asp 以及 login.asp,
check_login.asp 是给我写的各个 asp 档用的,在每个
asp 档的档头加上下面的东西..
<!--#include file="check_login.asp" -->
这样在开启每个 asp 档时就会先呼叫 check_login.asp
,其内容如下...
<%
server_ip = Request.ServerVariables("SERVER_NAME")
page_name = Request.ServerVariables("SCRIPT_NAME")
' 比方你开启的网页是
http://10.1.1.1/xxx/compare.asp
' server_ip = 10.1.1.1
' page_name = /xxx/compare.asp
' 所以 server_ip + page_name = 上面的网页全名
ip = Request.ServerVariables("REMOTE_ADDR")
' ip = 你的连线 ip
' 用 Application 来储存永久资料
' 用 session 来储存页面资料(页面全关掉该资料就消失)
if Application(ip) = date then
session("can_login") = ip
else
session("can_login") = ""
end if
if session("can_login") = "" then
session("re_url") = "
http://" & server_ip & page_name
server.transfer("login.asp")
response.end
end if
%>
上面的意思就是说,如果网页没有判断到 session("can_login")
的话,它就自动转址到 login.asp,同时储存一个 re_url 的东
西,来纪录使用者目前开出来的网页。
这样玩家在 login.asp 那边只要输入正确的帐号密码,就可以靠
re_url 把使用者再导回他原先开启的网页,然後这时因为已经有
session("can_login") 了,就能开启原本网页的内容,而不需要
再输入帐号密码。
而 Application 就是用来控制「过期时间」,我的设计是「当天
」也就是 date 参数,因此只要系统读取的 date 跟 Application
储存的不同时,就会要求使用者再去 login.asp 验证一次。
所以同一天内只需要输入一次帐密。
login.asp 的内容如下..
<form>
请输入帐号:<input type=text name=input_1><p>
请输入密码:<input type=password name=input_2><p>
<input type=button name=button1 value="送出"><p>
</form>
<%
ip = Request.ServerVariables("REMOTE_ADDR")
input_1 = request("input_1")
input_2 = request("input_2")
if input_1 = "" or input_2 = "" then
response.end
end if
// 然後经过验证确定输入的正确时(假设有个函数在做验证)
if match_input(input_1,input_2) = 1 then
response.write "帐号登入成功。"
Application(ip) = date
session("can_login") = ip
response.write "<meta http-equiv='reflash' content='2; url=" &
session("re_url") & "'>"
else
response.write "帐号密码错误!请重新输入喔。"
response.end
end if
%>
关键程式段就是..
<meta http-equiv='reflash' content='秒数; url=要转址的网页'>
以上面来说就是两秒後自动转去 session("re_url") 所纪录的网址,
这是最简单的转址做法。
三、消网页卷轴
比方我的网页有一个左边功能表,则当功能表里面的东西塞太多时,
它会自动产生一个卷轴让你可以往下拉。
但是有时候我们会不希望这条卷轴出现,但是又希望可以用滚轮下拉
,这时候可以采取的做法就是
改变卷轴的颜色。比方网页的底色是白
色(#FFFFFF),那可以在 <html> 下这样子做..
left.asp
===========================================================
<html>
<style types="text/css"><!--
body {
scrollbar-face-color: #FFFFFF;
scrollbar-shadow-color: #FFFFFF;
scrollbar-highlight-color: #FFFFFF;
scrollbar-3dlight-color:#FFFFFF;
scrollbar-darkshadow-color: #FFFFFF;
scrollbar-track-color: #FFFFFF;
scrollbar-arrow-color: #FFFFFF;
}
--></style>
.
.
===========================================================
这样卷轴的所有元素的颜色就会完全跟底色同化,就不会看到卷轴了
,但是卷轴依然会在,所以滑鼠滚轮一样有作用。
卷轴的元素依上面所列就是 face-color、shadow-color、.......等
等,把这些全部通通设成白色,那在网页上自然就看不到这条卷轴。
底下的页面有讲解各元素代表的意义
http://tinyurl.com/5z7ndh
如果你查网页,多半只会查到要你在 <frame src 那里对 scrolling
这个属性做控制(yes/no/auto/....),假设你把 scrolling 设成 no
,卷轴同样会不见,但如此一来滑鼠滚轮也会失去作用。一百个网页
大概 99 个都在讲这个,之前卡在这里卡很久..
我下一阶段要做的则是 ACCESS WEB 资料库,但是这个阶段
还不急,我目前在公司所有该写的程式都已经写的差不多了
,主要是我最近先完成了一支专门用来捞资料的泛用程式叫
做 rtrv.asp.当我需要捞资料时,这程式可以先让我观看未
翻译的结果(而且有做表格化),而如果有需要我再依据这份
结果所呈现的资料结构方式(表格化很容易观看出来),再来
撰写编译後的结果即可。
(我以前的做法就是先让它秀未编译结果,再改成可阅读,以
後等於未编译结果通通由上面的程式先做,我可以省不少工)
所以我最近会再放心力在 sanc 上。
另外分享我的经验,对於处理资料的工作,有几个面向..
1.资料汇入、资料大批汇入
2.单笔资料读取、新增及修改
3.资料比对、大批资料比对
而就目前来说「资料比对」是最好用的。因为一笔资料里面
可能包含几十个至几百个细项资料,传统比对方式是针对每
一笔细项资料去看说哪一笔出问题,但是相类似的资料之间
其实它们的细项资料设定也是类似的,这时就可以用资料比
对的方式,把疑似有问题的资料,跟一笔没问题的相似资料
拿出来一起比对,然後把不同之处标注红色,这时一比就知
道有问题资料的哪些细项资料可能设错,可以大幅缩短抓错
时间,这就是「资料比对」的好处。
那我很庆幸我有先在圣殿写 compare,它对我之後在公司写
compare_data.asp 时提供了很多帮助,再来就是在圣殿磨
出来的字串解析及处理,也节省了我很多开发程式的时间。
一点心得分享给各位。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 210.61.157.53 (06/25 16:46)