做一个b/s教学刹车辅助系统多少钱要多少钱

XJTU Academic Hub
共计246,108条
文献类型选择
说明:高级检索多个条件检索时是按照顺序运算的:如 A或B与C 即:(A或B)与C
基于B/S模式的MBA教学辅助系统的设计与实现
Design and Realization of MBA Teaching System Based on B/S Pattern
&nbsp&nbsp
&nbsp&nbsp
本文介绍了笔者承担的西安交通大学MBA教学辅助系统的设计方案和实现技术,这套系统基于课堂教育+在线辅助教育的教学模式,针对MBA教学过程中出现的教学点分散、课程类型多、教学互动困难、本土案例不足等问题设计而成,对于解决MBA教学过程中存在的这些问题,提高教学质量有一定的辅助作用.
西安交通大学,陕西西安,710049
中国现代教育装备
相关关键词
西安交通大学图书馆 | 版权所有(C)
陕西省西安市咸宁西路28号
邮编:710049基于B/S模式的网络辅助教学系统研究;提要本文对基于B/S模式的网络辅教教学系统的系统;关键词:B/S;网络;辅助教学;中图分类号:G424文献标识码:A;一、引言;随着现代信息技术的迅猛发展,网络技术在教育中的应;对于非计算机院系的某些计算机类课程,如计算机文化;
基于B/S模式的网络辅助教学系统研究
提要本文对基于B/S模式的网络辅教教学系统的系统功能、用户功能和数据库设计进行研究,为教师和学生提供一个全面而高效的网络辅助教学系统。
关键词:B/S;网络;辅助教学
中图分类号:G424文献标识码:A
随着现代信息技术的迅猛发展,网络技术在教育中的应用日益广泛和深入,特别是Internet与校园网的接轨,为高校教育提供了丰富的资源,使网络教学真正成为现实,同时也为非集中课堂教学开辟了广阔的前景。网络辅助教学系统能充分发挥网络在教学中的优势,体现以学生为主体、教师为主导,构建学生充分参与和自主学习的环境等现代教育思想。同时,由于部分高校的部分课程存在着内容多、实践性强而课时少的矛盾,通过构建网络辅助教学系统能很好地解决这个问题。
对于非计算机院系的某些计算机类课程,如计算机文化基础、多媒体技术与原理、图形图像处理、ACCESS数据库原理与应用等非专业必修课程,通常课时安排少,而这些课程的内容多、实践性强,采取网络辅助教学平台可以减轻教师和学生的负担,提高工作和学习效率,很好地解决课时少与内容多、实践性强的矛盾。
包含各类专业文献、幼儿教育、小学教育、高等教育、生活休闲娱乐、专业论文、行业资料、文学作品欣赏、各类资格考试、基于B/S模式的网络辅助教学系统研究84等内容。 
 基于BS模式的网络教学辅助系统的设计与实现_信息与通信_工程科技_专业资料。基于BS 网络教学辅助系统模式的网络教学辅助系统的设计与实现 基于 B/S 模式的网络教学...  浅探B/S 模式的多媒体网络教学系统 【摘要】 随着全民教育和终身教育的推进,网络远程教育逐渐成为重要教育 形式, 而多媒体教学所需的海量数据对网络远程教育提出了...  毕业论文基于BS模式的在线考试系统_计算机软件及应用...全面的 反映教学的实际效果,有助于促进教学质量的...1.2 国内外研究现状随着网络技术的发展,无纸化办公...  基于Matlab 的 B/S 模式虚拟实践教学系统研究 摘要:Matlab 是目前国际公认的优秀计算软件,其强大的数据处理能力在经济 金融学领域得到高等院校及业界的广泛应用。 ...  毕业设计(论文) 题 目 基于 B/S 结构的网络教学平台的设计与实现 摘 要 随着计算机技术、网络技术、数据库技术、通信技术的飞速发展,社会已 然进入信息化时代,...  基于课堂的“老师教授――学生学习”的模式转变为通过多种途径 来实现,网络教学...1.2 网上教学系统的特点 网上教学系统的特点本系统采用 B/S 模式,使用 ASP ...  基于B S模式的教务管理系统的设计与实现 毕业设计开题报告_工学_高等教育_教育...1.3 课题的发展的现状和前景教学管理计算机化与网络化在国外的许多大学已开展多...  计算机毕业设计论文_基于BS模式的网络在线学习系统_工学_高等教育_教育专区 暂无评价|0人阅读|0次下载 计算机毕业设计论文_基于BS模式的网络在线学习系统_工学_...  无纸化考试系统则利用计算机网络和数据库技术可以实现对学生 的考核,省时省力。 1 开发模式介绍以及 B/S 结构特点 考试系统有 C/S 模式的也有 B/S 模式的,...请教,想做一个b/s版的设备信息管理系统,后台用什么写比较好 - C#当前位置:& &&&请教,想做一个b/s版的设备信息管理系统,后台用什么请教,想做一个b/s版的设备信息管理系统,后台用什么写比较好&&网友分享于:&&浏览:26次请问,想做一个b/s版的设备信息管理系统,后台用什么写比较好!请问,想做一个b/s版的设备信息管理系统,后台用什么写比较好!用C#还是ASP.net,我才刚学VS,所以想征求一下大家的意见,谢谢!!!!------解决方案--------------------后台是c#,vb之类的,asp.net是前台啊,晕~
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有[性能] php写的B/S应用系统中如何限制系统用户数?
[性能] php写的B/S应用系统中如何限制系统用户数?
各位大虾,小弟求助:
本人所在单位最近用PHP开发了一个web应用系统, 市场部在制定这个产品的价格的时候, 分了3个档次,5个用户数,10个用户数,和20个用户数.
但小弟不知道如何在PHP代码中限制这些用户数? 因为这个系统就是一般的web系统,代码都是脚本语言,这些源代码直接都能看到的,这套系统一旦安装在客户的机器上,他们就可以轻易改动这些设置.不象编译性语言的应用系统要花些时间才能破解.
我现在想不到任何办法去达到这个要求. 各位大虾帮助我.
Thanks in advance!
昵称: zagorot &时间:
昵称: hitty &时间:
昵称: zagorot &时间:
原帖由 zagorot 于
14:19 发表
加密代码后会不会对现场安装,调试或者维护造成什么不方便?
还有没有其他方法啊? 可以只加密系统限制那部分的代码
昵称: yejr &时间:
原帖由 yejr 于
16:35 发表
可以只加密系统限制那部分的代码 那...极大的加大破解的可能性了
昵称: wobushiwo &时间:
昵称: 北京野狼 &时间:
昵称: devboy &时间:
昵称: geel &时间:
昵称: hitty &时间:
原帖由 北京野狼 于
16:59 发表
限制系统用户数是什么意思?
限制用户总数?限制并发用户数? 哦,不好意思,是我没说清楚.
老板的意思是限制并发用户数.&&是不是只要限制session中的用户数量就可以了?&&
好象看起来,还是要用zend编译代码才能防止被技术含量低的人破解. 还有其他的妙招吗?
昵称: zagorot &时间:
原帖由 geel 于
02:31 发表
encode主要文件的同时再加密几个无关紧要的小文件,这之前把变量名都替换掉,再把代码写的乱七八糟,偶尔在不起眼的地方加上判断,再留个后门,让系统三天两头出点问题,你现场的时候顺便把他们自己加的用户干掉, ... 这招很绝呀. 不过要是我们没去现场,就没办法发现他们自己是否修改这些代码了.
昵称: zagorot &时间:
昵称: 北京野狼 &时间:
昵称: oklqh &时间:
昵称: geel &时间:
原帖由 zagorot 于
10:29 发表
哦,不好意思,是我没说清楚.
老板的意思是限制并发用户数.&&是不是只要限制session中的用户数量就可以了?&&
好象看起来,还是要用zend编译代码才能防止被技术含量低的人破解. 还有其他的妙招吗? 要并发数限制 配置你的WEB服务器就可以了
你可以对整个WEB服务器限制, 也可以对其中的一个站点(HOST)进行限制
昵称: MayerCN &时间:
原帖由 MayerCN 于
21:18 发表
要并发数限制 配置你的WEB服务器就可以了
你可以对整个WEB服务器限制, 也可以对其中的一个站点(HOST)进行限制
昵称: zagorot &时间:
昵称: 北京野狼 &时间:
原帖由 geel 于
21:02 发表
防那么严没有必要,让他们可以费点心思的多加用户,这样才有人买你的东西。多考虑考虑程序外面的事情。
昵称: zagorot &时间:
原帖由 zagorot 于
15:56 发表
这个我同意.
我是没有想到老板还要按照用户数来卖这个软件的. 根本没想到.不然,就会考虑用别的语言,不会使用php了.
用什么语言开发能限制用户数?
昵称: 北京野狼 &时间:
原帖由 zagorot 于
15:48 发表
关键的问题是,软件卖给别人了,那代码就会装在他们自己的服务器上,我是没办法控制他们的web服务器的.看来唯一的办法就只是加密代码了。
那可以把这部分数据放到你们的服务器嘛,每次都到你们服务器验证一下。如果客户的服务器用共享内存应该也可以。代码是一定要编译的。
一些想法,各位继续...
昵称: lovered &时间:
原帖由 北京野狼 于
16:31 发表
用什么语言开发能限制用户数? 换个角度说吧, 编译型的语言多少可以使用户不知道程序内部的工作原理,这样开发者就可以做一些手脚. 解释型语言如果代码不加密,用户就比较容易修改这些代码.
昵称: zagorot &时间:
原帖由 zagorot 于
16:52 发表
编译型的啊,至少可以让他们费点心思 在这个帖子里,我和你解释数次,限制用户数和开发语言没有关系。
你说说用c语言怎么做到限制用户数 ?
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
16:56 发表
在这个帖子里,我和你解释数次,限制用户数和开发语言没有关系。
你说说用c语言怎么做到限制用户数 ? 或许我没有很明确的解释清楚我的要求. 的确,看样子,我把限制用户数和开发语言挂上钩了. 但其实,我想讨论的应该是另外一个概念,就是代码的可读性和反编译性.
因为限制用户数, 在我看来, 无非是 限制整个系统的用户总数 或者 限制整个系统的在线用户数 , 这两个要求, 在编译型的语言编写的系统中,应该不难做到吧?
我唯一的担心,就是担心php语言的可读性, 用户可能会比较容易修改我们的代码,而除去我们的限制.
当然,任何方法都不可能完全限制别人破解代码. 但是我们的软件做为一个不太出名,价值不是很高,通用性不是很强的系统,应该不会引来高手破解代码.
我所想做的,只是增大客户破解我们代码的成本,以至于他们认为代价太大,不值得去破解. 仅此而已.
昵称: zagorot &时间:
原帖由 lovered 于
16:51 发表
那可以把这部分数据放到你们的服务器嘛,每次都到你们服务器验证一下。如果客户的服务器用共享内存应该也可以。代码是一定要编译的。
一些想法,各位继续... 这个到我们服务器验证的办法我觉得我们这套系统行不通, 因为客户有可能是没有连接internet的.
昵称: zagorot &时间:
昵称: wobushiwo &时间:
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
17:25 发表
限制整个系统的用户总数 或者 限制整个系统的在线用户数
用任何语言都无法做到。
php做不到评什么编译语言能做。
和开发语言有什么关系,真是没耐心再和你讲 确实,我说了,没有任何语言能够防止别人破解. 不知道你说的&任何语言都无法做到&是不是这个意思? 很多游戏是编译后的可执行文件,也一样被人破解. 机器码也一样可以修改,当然&任何语言都无法做到&.&&
如果除开&任何语言开发的系统都能够被破解& 这个问题以后, 当然可以做到限制用户数. 为什么你总要说做不到呢?
我也没怪php这个语言. 我只是想稍微提高破解的成本而已, 不想被人随意读懂,并修改代码中的用户数限制.
如果你没耐心和我讲,也没关系,或许我真的很春虫虫. 当然,也要谢谢你的热情帮忙.
我还想和其他朋友继续讨论用php来开发商业软件的问题.
昵称: zagorot &时间:
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
17:58 发表
也许我表达能力出了问题,那我再阐述一次。
开发语言本身做不到限制用户数,我说的任何话题都没指程序破解。
限制用户数必须在服务器上做限制,不是应用程序做的,你php写的程序如何能知道,现在
有多少 ... 哈哈,有趣. 我觉得可以做到啊. 比如不考虑效率和其他因素,一个最笨的办法就是在数据库里面保存每一个登陆用户的信息,这样我当然可以知道并控制登陆用户的数量了啊.
我估计,我们可能脑袋里面想的不是同样一个问题. 双方的语言理解都有差异,所以讨论这么久,还是双方不认同.
昵称: zagorot &时间:
原帖由 北京野狼 于
17:58 发表
也许我表达能力出了问题,那我再阐述一次。
开发语言本身做不到限制用户数,我说的任何话题都没指程序破解。
限制用户数必须在服务器上做限制,不是应用程序做的,你php写的程序如何能知道,现在
有多少 ... 因为限制用户数, 在我看来, 无非是 限制整个系统的用户总数 或者 限制整个系统的在线用户数 , 这两个要求, 在编译型的语言编写的系统中,应该不难做到吧?
昵称: wobushiwo &时间:
开发语言本身做不到限制用户数,我说的任何话题都没指程序破解。限制用户数必须在服务器上做限制,不是应用程序做的,你php写的程序如何能知道,现在
有多少人并发?用任何语言都无法做到。
php做不到评什么编译语言能做。
昵称: wobushiwo &时间:
昵称: dualface &时间:
昵称: 枫影 &时间:
原帖由 dualface 于
20:00 发表
这个和语言无关,但可以通过程序实现这样的功能。
假设你是一个内部的 OA 系统,那么每个用户登录以后就在数据库里面插入一条记录,标明该用户的登录时间和id。用户每进行一个操作,都更新一次这个记录(更新操 ... 顶,非常感谢!
昵称: zagorot &时间:
原帖由 zagorot 于
18:04 发表
哈哈,有趣. 我觉得可以做到啊. 比如不考虑效率和其他因素,一个最笨的办法就是在数据库里面保存每一个登陆用户的信息,这样我当然可以知道并控制登陆用户的数量了啊.
我估计,我们可能脑袋里面想的不是同样一 ... 我也在想,我现在居然耐心这么好,成熟了。
用数据库保存每一个登陆用户的信息,这方法和开发语言有什么关系。
而且你说的是限制并发用户数,并发用户并不是在线用户。
也许你根本不明白并发用户和在线用户的区别。
昵称: 北京野狼 &时间:
原帖由 dualface 于
20:00 发表
这个和语言无关,但可以通过程序实现这样的功能。
假设你是一个内部的 OA 系统,那么每个用户登录以后就在数据库里面插入一条记录,标明该用户的登录时间和id。用户每进行一个操作,都更新一次这个记录(更新操 ... 不满足需求的地方
1。要求是限制并发用户数,不是在线用户。
2。没法加密直接就被破解。
3。用户关闭窗口或者断线你是和用户在窗口不点击一样处理吗?
4。CODE:用户登录后,SESSION 中就保存了用户的登录信息(而SESSION的失效时间可以设置得长一点)。当用户进行任何操作时,应用程序是判断 SESSION 中的数据是否有效。如果有效,就更新在线记录,并处理用户请求的操作。这样即便用户的在线记录因为超时被删除了,也不会导致用户被强行注销。这多少有的和你说单一接口的优点一样,完全是想象出来的。php如何能判断 SESSION 中的数据有效?
后台根本无法区分关闭窗口和用户超时的区别
昵称: 北京野狼 &时间:
不满足需求的地方
1。要求是限制并发用户数,不是在线用户。第一,每个用户账号同一时间只能在一个地方登录,然后再限制同时登录人数,自然就限制了并发用户数。2。没法加密直接就被破解。我这个是实现的思路,要达到好的效果当然要加密了。3。用户关闭窗口或者断线你是和用户在窗口不点击一样处理吗?我前面说了,SESSION 有失效时间、用户的在线记录也有失效时间。
SESSSION 的失效时间可以设置为 45 分钟或者 1 小时。这样即使用户很多在打字输入内容,也不会被强制注销登录。
而用户的在线记录失效时间就可以设置得很短,例如 5 分钟。这样用户即便不小心关闭了窗口,最多等 5 分钟就能再次登录了。用户登录后,SESSION 中就保存了用户的登录信息(而SESSION的失效时间可以设置得长一点)。当用户进行任何操作时,应用程序是判断 SESSION 中的数据是否有效。如果有效,就更新在线记录,并处理用户请求的操作。这样即便用户的在线记录因为超时被删除了,也不会导致用户被强行注销。
这多少有的和你说单一接口的优点一样,完全是想象出来的。php如何能判断 SESSION 中的数据有效?
后台根本无法区分关闭窗口和用户超时的区别你到底用没用过 php 的 session 啊?
昵称: dualface &时间:
原帖由 北京野狼 于
14:03 发表
连接的并发和php没有任何关系,
和Zend更没有任何联系
session控制的也只是所谓的在线用户 如果 lz 要求的限制同时访问网站的用户数,那么我的方案稍加修改即可。
首先,任何一个用户访问网站,都会获得一个 session_id。
然后替换掉 php 默认的 session 管理,改为将 session 信息保存到数据库中。
这样就能很容易的统计 session 记录总数,从而限制并发访问数。
这个方案有个特点(在lz的需求里面不一定是缺点):
如果每个用户只是上来看看文章,就关闭窗口了,那么就要把 session 失效时间设置得很短。但这样一来,如果用户看文章花多了时间,他的 session 就会失效。如果这时正好另外进来几个用户,达到了并发访问上限,那么这个用户看其他文章就会被拒绝。
既然本来的要求就是要限制并发访问,超过访问上限是因为用户购买的版本太低,那么无法访问也是理所当然的。
昵称: dualface &时间:
原帖由 dualface 于
09:54 发表
第一,每个用户账号同一时间只能在一个地方登录,然后再限制同时登录人数,自然就限制了并发用户数。这不是真正的并发,而且LZ所说的用户数,未必就是登陆用户。LZ没有用户账号只能登陆一次的要求。
而且你后面的方案根本控制不了是否一次登陆。
并发只能在防火墙和web服务器上限制。我前面说了,SESSION 有失效时间、用户的在线记录也有失效时间。
SESSSION 的失效时间可以设置为 45 分钟或者 1 小时。这样即使用户很多在打字输入内容,也不会被强制注销登录。
而用户的在线记录失效时间就可以设置得很短,例如 5 分钟。这样用户即便不小心关闭了窗口,最多等 5 分钟就能再次登录了。你到底是如何区分出来关闭窗口和用户操作超时。&&请说清楚。
你是如何知道用户的在线记录的。& && && && && & 请说清楚。
我偶尔用过SESSION
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
10:01 发表
这不是真正的并发,而且LZ所说的用户数,未必就是登陆用户。LZ没有用户账号只能登陆一次的要求。
而且你后面的方案根本控制不了是否一次登陆。
并发只能在防火墙和web服务器上限制。
你到底是如何区 ... 我后面补充了的,你没看到。
昵称: dualface &时间:
原帖由 dualface 于
10:13 发表
我后面补充了的,你没看到。 看来您除了想象力惊人以为,至少理解力 和LZ一样,需要几十遍的重复。那我直接问清楚,
服务器是如何知道用户关闭浏览器,断网的?
后台删除session的程序是如何区分什么session是用户关闭浏览器的可以删除,
什么session是用户超时的不能删除
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
09:19 发表
用数据库保存每一个登陆用户的信息,这方法和开发语言有什么关系。
唉,是啊. 这就是解决方法啊,只是用了php/perl...这之类的语言来写的话,代码很容易被读懂,可以被修改掉这些限制的地方.
我一直就是说,我们讨论的不是一个话题. 这一直要怪我发贴的时候没说清楚.
而我要求的就是2个问题: 1是如何限制系统用户数 2是如何防止更轻松的被&破解&这些限制
我当然知道并发用户数和在线用户的严格区别.只是可能没考虑清楚,就发贴了. 我想控制在线用户数或者控制这个系统的注册用户数就应该可以满足我们老板的需求了,并不需用到严格意义上的并发用户数.
北京野狼 ,不好意思,浪费了你这么多口水.
昵称: zagorot &时间:
原帖由 zagorot 于
10:39 发表
唉,是啊. 这就是解决方法啊,只是用了php/perl...这之类的语言来写的话,代码很容易被读懂,可以被修改掉这些限制的地方.
我一直就是说,我们讨论的不是一个话题. 这一直要怪我发贴的时候没说清楚.
而我要 ... 人家直接改你的数据库,还看什么代码啊。
我们谈的一直是一个话题,只是你拼命想通过语言来实现,无法相信我说的,
和开发语言毫无关系。
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
10:42 发表
人家直接改你的数据库,还看什么代码啊。
我们谈的一直是一个话题,只是你拼命想通过语言来实现,无法相信我说的,
和开发语言毫无关系。 哈哈,写在数据库也只是一个方法啊. 绝对可以通过语言来实现.
昵称: zagorot &时间:
原帖由 北京野狼 于
10:42 发表
人家直接改你的数据库,还看什么代码啊。小狼,还记得你说过 凭什么编译语言就行吗?
请问我给你一个存放数据的dat 文件,你能告诉我里面存放着什么吗?
不过我先怀疑是否能得到列名先,但问题还不在这
你改数据库?我编译/加密语言,用户数量上限我一定放数据库吗?
你在数据库改吧,每次登陆我都统计一次数据库,是否超过上限....
昵称: wobushiwo &时间:
原帖由 zagorot 于
10:59 发表
哈哈,写在数据库也只是一个方法啊. 绝对可以通过语言来实现. 等你实现了,我帮你申请诺贝尔
昵称: 北京野狼 &时间:
昵称: wobushiwo &时间:
原帖由 北京野狼 于
11:22 发表
等你实现了,我帮你申请诺贝尔 你先帮我申请吧
昵称: wobushiwo &时间:
原帖由 wobushiwo 于
11:20 发表
小狼,还记得你说过 凭什么编译语言就行吗?
请问我给你一个存放数据的dat 文件,你能告诉我里面存放着什么吗?
&&我只是强调和语言没关系,尤其我指的是并发用户,不是在线用户。
并没有说编译语言就能实现。
无论是dat 文件,还是数据库你怎么知道用户在线还是不在线。
dat 文件无论是什么格式,都一样能被修改,破解qq协议,难道一定要
反编译qq.程序?
你后面的话,无法理解想说什么?
昵称: 北京野狼 &时间:
原帖由 wobushiwo 于
11:25 发表
你说的 &开发语言& 不能实现,但在apache或防火墙那又说有点可能
你所说的 &开发语言& 是不是有特指啊? apache不是 “开发语言” 开发的吗?
假如lz是整体运行环境的打包,修改apache( ... 都认些字再发言。
大家在这个帖子里说的开发语言是指B/S的web开发语言。
昵称: 北京野狼 &时间:
原帖由 wobushiwo 于
11:27 发表
你先帮我申请吧
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
11:22 发表
等你实现了,我帮你申请诺贝尔 犯得着这么说吗? 即便是&控制并发用户数&也一定可以通过开发语言实现!
没什么东西实现不了的.
只是能不能被人得到认可而已. 我想,无论我怎么实现,肯定都无法得到你的认可.所以你就永远都不会承认我实现了,对吧?
就象我在面试的时候,我无论说什么方案,考官都不满意,在考官自己的思维空间里面,就是觉得我说的都不可能.
昵称: zagorot &时间:
大家在这个帖子里说的开发语言是指B/S的web开发语言。 首先你承认了我的推理,你说的是有特指无论是dat 文件,还是数据库你怎么知道用户在线还是不在线这点,你在系统用户的数量限制上已经没办法狡辩了,剩下的就是在线并发数量
精彩的部分要开始了我只是强调和语言没关系,尤其我指的是并发用户,不是在线用户。假如lz是整体运行环境的打包,修改apache(千万别以为还有明文的配置文件) ,加访问上限,你能怎么搞啊?
昵称: wobushiwo &时间:
原帖由 wobushiwo 于
11:41 发表
假如lz是整体运行环境的打包,修改apache(千万别以为还有明文的配置文件) ,加访问上限,你能怎么搞啊?
不知道你是不是吃多了。
我们说的是web开发语言,和apache打包有什么关系?
你连操作系统和服务器一起打包,更实现起来容易。
昵称: 北京野狼 &时间:
原帖由 zagorot 于
11:41 发表
就象我在面试的时候,我无论说什么方案,考官都不满意,在考官自己的思维空间里面,就是觉得我说的都不可能. ... 这时候,你应该想想,为什么人家就觉得你不可能?
是不是你的方案都是云山雾罩的。
昵称: 北京野狼 &时间:
原帖由 北京野狼 于
11:47 发表
这时候,你应该想想,为什么人家就觉得你不可能?
是不是你的方案都是云山雾罩的。 我当然有自己反省过. 但是那些人自己从来都不反省自己.
虽然也许是我的方案是云山雾罩的,但也许那人自己思维空间狭隘.
昵称: zagorot &时间:
哦,不好意思,是我没说清楚.
老板的意思是限制并发用户数.&&是不是只要限制session中的用户数量就可以了?&&我怕你不了解并发的意思
是要限制你们的系统,同时能登陆多少个人进行操作吗?
还是你们的系统里有,有公共部分(不需登陆),连一般人访问都需要限制
不过我看你说的 &分了3个档次,5个用户数,10个用户数,和20个用户数& 应该不是公共部分,应该是登陆操作的那种
这样的话,那更不复杂,看看dualface说的
昵称: wobushiwo &时间:
原帖由 wobushiwo 于
11:52 发表
我怕你不了解并发的意思
是要限制你们的系统,同时能登陆多少个人进行操作吗?
还是你们的系统里有,有公共部分(不需登陆),连一般人访问都需要限制
不过我看你说的 &分了3个档次,5个用户数, ... 是的.这个怪我. 我没说清楚. 也浪费北京野狼很多口舌.
我想, 控制登录人数就够了. 不需要严格控制并发数. 而且没有公共部分,全部都需要登陆. 看了dualface说的,基本心里有个底了.
不过,现在唯一和北京野狼争论的地方就是, 开发语言,能不能实现这些功能(包括控制用户注册数,控制用户登陆数,控制用户并发数)?注意,我们不讨论&是否仅仅依靠开发语言实现&.我们不玩文字游戏.
我就怕北京野狼又误会我的意思,以为我是说&仅仅依靠开发语言就能实现&.
昵称: zagorot &时间:
昵称: wobushiwo &时间:
注意,我们不讨论&是否仅仅依靠开发语言实现&.我们不玩文字游戏.语言本身就是多方面挂钩的,更何况 &WEB开发语言&
所以注定了从一开始玩的就是文字游戏,LZ这点还没看破啊?
昵称: wobushiwo &时间:
原帖由 北京野狼 于
10:18 发表
看来您除了想象力惊人以为,至少理解力 和LZ一样,需要几十遍的重复。那我直接问清楚,
服务器是如何知道用户关闭浏览器,断网的?
后台删除session的程序是如何区分什么session是用户关闭浏览器的可以删除,
什么session是用户超时的不能删除先前我说的不详细,可能大家没理解到,我详细说明一下思路。
首先,服务器肯定不可能知道用户是断网还是关闭浏览器什么。
但我根本不需要去判断这个。
假设 session 的失效时间是 30 分钟,那么服务器超过30分钟还没有收到浏览器发来的请求时,自然该 session 就作废了。session 作废以后,自然就算作用户已经被注销了。
OK,如果用户关闭了窗口,那么 session 是不是也要等 30 分钟才会失效呢?
答案是YES!
====================================================================
“哦,那这就是大问题了!用户不小心关闭了窗口,必须等 30 分钟,session 失效以后才能再次登录。因为登录时会检查该用户是否已经登录过了。”
但实际情况呢?
实际情况是这样:当用户关闭浏览器窗口,然后再次打开一个新窗口访问服务器。服务器并不会使用先前的那个 session id 来标示这次回话,而是分配一个新的 session id。
如此就解决了用户关闭窗口后必须等 30 分钟才能登录的问题。
====================================================================
问题总是环环相扣,解决了登录问题,那很显然又会带来另一个问题:
假如系统上限是 30 个人,现在正好有 30 人在使用。突然其中一人不小心关闭了窗口,然后再次访问服务器,这个时候 session 数就变成了 31 (因为新开的窗口会分配新的 session id)。那这个用户很明显就会被拒绝登录。
虽然这个问题只有在访问人数接近或者达到上限时才会发生,但仍然可以稍加处理来缓解这个缺陷。
====================================================================
为了缓解这个缺陷,我在方案中引入了在线记录这个东西。
在线记录主要保存下面几项信息:用户的 user id,以及 session id 和 最后操作时间。
由于在线记录的失效时间很短,例如 1 分钟。只要用户超过一分钟没有进行操作,该记录就会被删除。
可这个在线记录拿来做什么用呢?
这个在线记录需要和 session,以及用户登录结合起来使用。
但为了结合使用,session 就不能采用 php 默认的保存机制,而是需要实现自定义的保存机制。
====================================================================
php 默认的 session 机制是按照 session id 来标示一个 session,现在我们在自定义的保存机制中,
附带保存一个 user id。
好了,现在我们有了 session、在线记录、用户信息数据库,我们的用户登录程序可以按照下面的方式工作:
1、检查用户名、密码、图形验证码
2、在 session 库(也就是我们自定义的保存 session 数据的数据库)中,搜索是否存在该 user id 的 session 数据。
& & 如果“有”,则进一步判断 在线记录中是否有该 user id 的数据。
& && &&&如果“有”,说明用户已经登录了,并且在 1 分钟之内还在操作系统。
& && && && &那么这次登录就可能是用户尝试从第二个地点使用同样的账号登录系统。
& && && && &或者是用户关闭窗口后,在 1 分钟之内重新登录。但不管是哪一种情况,
& && && && &系统的处理都是 拒绝登录。
& && &&&如果“无”,则有两种情况:
& && && && &1、用户登录后超过了 1 分钟没有进行操作,
& && && && && &然后其他人在第二个地点使用同样的账号进行登录;
& && && && &2、用户关闭了窗口,并且过了 1 分钟后再次登录。
& && && && &那么应该如何处理这种情况呢?
& && && && &这可以采用两种方式:
& && && && && & a、直接允许登录,然后删除先前的 session。直接效果就是
& && && && && && & 先登录的用户被后登录的挤下了系统。就像同一个QQ号在
& && && && && && & 不同地方登录的效果一样。
& && && && && & b、可以结合其他手段进一步检测用户情况。例如用户登录成功
& && && && && && & 后就设置一个 cookie。此时就能判断该 cookie 是否存在。
& && && && && && & 如果存在,说明是用户发生意外后重新登录,如果不存在,
& && && && && && & 则有可能是多个地点用同一账号登录。检测过后再决定是否
& && && && && && & 拒绝登录。
& & 如果“无”,则简单统计一下现有 session 总数就能确定是否允许登录了。
3、允许登录后,还有许多工作要做,包括:
& &a、保存 session 信息
& &b、生成在线记录
这就是登录处理过程,复杂的地方主要就在“数据库中已经存在该 user id 的 session”时决定是否允许登录。
====================================================================
注销用户就比较简单了,直接删除 session 和 在线记录 即可。
====================================================================
那么如何确保及时更新在线记录和 session 记录呢?
对于 session 记录,只要在 php 中注册了自定义的 session 处理函数,php 会在适当的实际自动调用你注册的 session 清理函数。
而对于在线记录,就要复杂多了。最好是写到一个公用文件中,然后在每一个操作文件中都 include 这个文件。
(这里用单一入口就比较方便)
====================================================================
整个方案肯定有很多漏洞,而且还要辅助其他手段才能达到良好的效果,例如:
1、代码肯定要加密,否则一切都是白搭;
2、session 数据库如果可以,自己做成自定义格式的文本数据库(应付几十个在线用户根本不是问题),甚至是共享内存。就算不能做成自定义格式,也要将关键信息加密存储到 SQL 数据库中。
3、在线记录和 session 一样,能自定义格式就自定义格式,否则就加密存储。
4、关键部分的代码必须写在一个文件里面加密,如果分离成多个文件,一是被破解的几率大,二是有可能被人分析出其中的工作原理,另外写一个来代替你加密后的文件。
目前我想到的漏洞主要是在极端情况(也就是当前在线用户数接近或者达到上限时),登录判断可能会判断失误。
但这个我想不是太大的问题,简单的增加一点用户上限数就行了。
例如卖给用户的是 30 用户版,那我系统实际上可以容纳 33 人在线,就大大降低出问题的几率了。
====================================================================
最后,我想说的。光靠编程语言,脱离了运行环境,要实现这种在线用户数量限制是很麻烦、效果可能也不够完美。
但是选择什么方案来解决问题,不能只考虑技术,还要考虑环境因素。现在 LZ 的软件明显是在一个不受控环境中执行,那在这种环境下争论是不是能够单纯用编程语言解决在线人数上限问题,根本没意义。
重要是找到一个可以接受的解决方案来达到目的!
昵称: wangyih &时间:
原帖由 wangyih 于
13:23 发表
dualface的方法实践起来有相当的不足。
几乎不可实现,最好另选方案。 是的,我先前的方案很不完善,我重新写了一下。
虽然大体没变,但细节上考虑多了些。
不过我觉得如果你能够具体指出哪些地方不足就更好了。
昵称: wangyih &时间:
原帖由 dualface 于
15:36 发表
先前我说的不详细,可能大家没理解到,我详细说明一下思路。
首先,服务器肯定不可能知道用户是断网还是关闭浏览器什么。
但我根本不需要去判断这个。
假设 session 的失效时间是 30 分 ... 您的钻研精神确实很令人钦佩,比无聊的人强得多。
老实说,没时间全看完你的新方案。和早上那个方案是根本性的改变,
这次有些可行性。但是实现起来估计比LZ的系统本身都麻烦。
其实一直都没有真正有效的控制在线用户的方案,尤其LZ自己不能控制环境,
根本就没法实现。
昵称: wangyih &时间:
昵称: dualface &时间:
原帖由 北京野狼 于
16:04 发表
您的钻研精神确实很令人钦佩,比无聊的人强得多。
老实说,没时间全看完你的新方案。和早上那个方案是根本性的改变,
这次有些可行性。但是实现起来估计比LZ的系统本身都麻烦。
其实一直都没有真正 ... 我觉得不复杂啊,其实就是做两个东西
一个是自定义session的存储,就是session_set_save_handler(),这个东西稍微有点php开发经验的人都可以写
第二个是检查有效的session个数,按照session生存时间排一下序,找出超标的那几个session id,如果当前的用户的session id正好在其中的话,输出错误信息,我想这个也不会太难,这个功能可以封装成一个函数
至于在程序的什么地方调用这个函数,要看程序的具体结构而言了,和这个函数本身没有太大关系
当然要做到精确的控制在线用户恐怕是有点难的,所以刚才也在建议把实际的用户数稍微设高一点
总之,希望可以达到80%的效果就不错了,毕竟http是无状态协议,从根基上就有问题。
从使用者的角度来说,假定进入系统进行某些操作,需要5分钟的时间,但是只要我们能够把误差时间控制在5分钟之内,目的就达到了,就算没有100%的精确也无所谓。
这个要看楼主的系统具体是什么功能了,从控制使用人数的角度来推算,很可能是OA一类需要长时间使用的系统。
昵称: dualface &时间:
昵称: 北京野狼 &时间:
昵称: 夜猫子 &时间:
昵称: 夜猫子 &时间:
加密代码对限制用户数没有任何作用 1、代码肯定要加密,否则一切都是白搭;并没有说编译语言就能实现。 用什么语言开发能限制用户数? 家在这个帖子里说的开发语言是指B/S的web开发语言。 这次有些可行性看来您除了想象力惊人以为,至少理解力 和LZ一样,需要几十遍的重复。那我直接问清楚,
服务器是如何知道用户关闭浏览器,断网的?
后台删除session的程序是如何区分什么session是用户关闭浏览器的可以删除,
什么session是用户超时的不能删除 dat 文件无论是什么格式,都一样能被修改,破解qq协议,难道一定要我说的任何话题都没指程序破解。对比一下,可以看出好多有趣的事,哈哈
什么申请诺贝尔,什么吃太饱,这种个人情绪,无病呻吟,不利于学习我也在想,我现在居然耐心这么好,成熟了。这都算耐心好,娃哈哈
讨论时好像不是很耐烦,这样也不利学习,该多向我学习,多思考分析,比如
正当我们讨论得热火朝天,你快吐血时,我回到起点,质问LZ,发现他的发问的表达是有问题的
当然就算不发现,在“WEB开发语言”的问题上阐述了并发限制,更别说 系统用户限制上的可行性,分析得相当精彩,虽然有点勉强
但引用 mop 里常用的一句话:没时间你来装什么B啊?
这里真不是要骂人哦,我只是觉得太好笑了~~
---结束---
昵称: geel &时间:
原帖由 wangyih 于
17:32 发表
你这种人就是论坛里面,那种比较令人厌恶的人。
从头到尾,没感觉老狼说的有什么问题。
反到是你一直牵强附会挑衅,估计又是一个老狼惹着的马甲。 呵呵,好好,其实我这个人脾气不坏,喜欢搞笑...
大家也是工作无聊,找个话题侃侃不挺好的吗?
我觉得学文化/学技术 要有一种“回归”的精神
一句老话,到现在依然实用,三人行必我师........
昵称: zagorot &时间:
原帖由 wangyih 于
17:32 发表
你这种人就是论坛里面,那种比较令人厌恶的人。
从头到尾,没感觉老狼说的有什么问题。
反到是你一直牵强附会挑衅,估计又是一个老狼惹着的马甲。 感谢提醒,早注意到了。
习惯了就不必理会,这样的人常常出现的。
就象上次讨论万人在线,突然出来clampox 那个疯狗
虽然吵架也很有趣,但是如果每天精力都耗在这上面太无聊。
昵称: 夜猫子 &时间:
原帖由 夜猫子 于
16:19 发表
我觉得不复杂啊,其实就是做两个东西
一个是自定义session的存储,就是session_set_save_handler(),这个东西稍微有点php开发经验的人都可以写
第二个是检查有效的session个数,按照session生存时间排一下序 ... 其实dualface的做法直接简化成Discuz,的session管理方法
使用数据库,记得是cdb_sessions表。什么在线记录,文本管理都不必了。
但是数据库很难加密,除非表里面存储的都是密文。控制不了环境什么都白费。
BTW:使用文本存储大量读写的不适合。
昵称: wobushiwo &时间:
昵称: wangyih &时间:
原帖由 tonera 于
09:51 发表
好热的贴。
dualface的方案一开始就是可行的。后来的大量补充只是对前面叙述的观点进行更多的实现细节描述,我反倒感觉是几位没有仔细看看那个方案,没有仔细想想如何实现,实现起来也并不复杂。 可能是你没有仔细看他的第一个方案,尤其异常处理那部分。和后来的方案有本质的区别。
而且LZ的很多问题也是在dualface的方案之后才明确出来的。
这个问题其实根本不必再讨论了,LZ的环境局限了
昵称: wobushiwo &时间:
昵称: 北京野狼 &时间:
昵称: 北京野狼 &时间:
昵称: tonera &时间:
CODE:你不是一样没理解,也在提倡加密代码,加密代码什么都实现不了。你可能没看清楚 dualface 说的,而且也没看清楚&&你的老狼&&说的
而且说我也没理解?你知道重要的转折是谁提出质疑的吗?
没关系,我摘出简要了,就是帮助你们这种人的,不用8页看完,呵呵
帮过很多人我想跟对求真的态度没什么关系吧?
大家看到了,wangyih 因为偏袒&&他的老狼&&,根本不在意自己看到的事实或自己没看清楚就来帮
他的老狼&&了,娃哈哈....
昵称: 北京野狼 &时间:
昵称: wobushiwo &时间:
昵称: UIRL &时间:
昵称: wobushiwo &时间:
昵称: wangyih &时间:
昵称: wobushiwo &时间:
昵称: wangyih &时间:
昵称: showsa &时间:
昵称: zagorot &时间:
昵称: dualface &时间:
昵称: yarco2 &时间:
昵称: qingmedia &时间:}

我要回帖

更多关于 教学辅助系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信