判断一个js对象是不是数组
function isArray(o) { return Object.prototype.toString.call(o) === '[object Array]'; } 判断更多特殊类型: var is = { types : ["Array","RegExp","Date","Number","String","Object","HTMLDocument"] }; for(var i=0,c;c=is.types[i++];){ is[c] = (function(type){ return function(obj){ return Object.prototype.toString.call(obj) == “[object "+type+"]“; } })(c); }
View Details关于session超时问题
接管负责了公司的一个项目网站后台管理,客服部要求会话间隔时间能长点,于是在web.config里改了outtime设置,设成了8个小时,一个工作日的时间,可是修改后居然不起作用,依旧是20分钟不操作就得重登录。于是把服务器上的IIS超时设置也改了,会话超时设置成480分钟,但是问题仍然存在(关于outtime的设置,一般web.config的优先级别高于machine.config高于IIS设置。)。仔细查看了代码,是用session保存信息而不是cookie,代码中没有有关超时的设置了。搞了半天问题才解决。 session本来是个不稳定的东西,经常会被丢失,本来用cookie不错,但又不想对程序做改动。查了查资料,找到了下面一段: 由于Asp.net程序是默认配置,所以Web.Config文件中关于Session的设定如下: <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="true" timeout="20"/> 我们会发现sessionState标签中有个属性mode,它可以有3种取值:InProc、StateServer、SQLServer(大小写敏感)。默认情况下是InProc,也就是将Session保存在进程内(IIS5是aspnet_wp.exe,而IIS6是W3wp.exe),这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。 哪些情况下该进程会重起呢?微软的一篇文章告诉了我们: 1、配置文件中processModel标签的memoryLimit属性 2、Global.asax或者Web.config文件被更改 3、Bin文件夹中的Web程序(DLL)被修改 4、杀毒软件扫描了一些.config文件。 更多的信息请参考PRB: Session variables are lost intermittently in ASP.NET applications 解决办法: 前面说到的sessionState标签中mode属性可以有三个取值,除了InProc之外,还可以为StateServer、SQLServer。这两种存Session的方法都是进程外的,所以当aspnet_wp.exe重起的时候,不会影响到Session。 现在请将mode设定为StateServer。StateServer是本机的一个服务,可以在系统服务里看到服务名为ASP.NET State Service的服务,默认情况是不启动的。当我们设定mode为StateServer之后,请手工将该服务启动。 这样,我们就能利用本机的StateService来存储Session了,除非电脑重启或者StateService崩掉,否则Session是不会丢的(因Session超时被丢弃是正常的)。 除此之外,我们还可以将Session通过其他电脑的StateService来保存。具体的修改是这样的。同样还在sessionState标签中,有个stateConnectionString= "tcpip=127.0.0.1:42424 "属性,其中有个ip地址,默认为本机(127.0.0.1),你可以将其改成你所知的运行了StateService服务的电脑IP,这样就可以实现位于不同电脑上的Asp.net程序互通Session了。 如果你有更高的要求,需要在服务期重启时Session也不丢失,可以考虑将mode设定成SQLServer,同样需要修改sqlConnectionString属性。 在使用StateServer或者SQLServer存储Session时,所有需要保存到Session的对象除了基本数据类型(默认的数据类型,如int、string等)外,都必须序列化。只需将[Serializable]标签放到要序列化的类前就可以了。 如: [Serializable] public class MyClass { …… } stateConnectionString和sqlConnectionString是当设置mode的方式是stateServer和sqlServer的时候,必须的选项;但是当mode配置为InProc时,并不是必须的。 转自:http://fus53.blog.163.com/blog/static/735886152008476627520/ 以下由【龙生时代】补充:
1 2 |
用以下命令生成状态数据库 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -C "Data Source=.;Integrated Security=True" -ssadd -sstype p |
李敖的惊人名言
李敖,1935年生于哈尔滨,1949年到台湾。李氏文笔自成一家,自誉为百年来中国人写白话文翘楚。发表著作上百余种,以评论性文章最脍炙人口。《胡适评传》与《蒋介石研究集》为其代表作。西方传媒更捧为“中国近代最杰出的批评家”。 李氏口无遮拦,常常出语惊人,现整理其“名言”数则,以飨读者。 1、“我骂人的方法就是别人都骂人是王八蛋,可我有一个本领,我能证明你是王八蛋。” 2、除了是知名的作家、有名的政治犯,李敖还是人人皆怕的诉讼大王。除了告过’总统’、五院院长、故宫博物院长、台面上知名的政治人物、媒体负责人,甚至连政府机关,只要被李敖锁定,几乎很难逃过被李敖告的命运。“ “现在台湾不景气,我的被告少了,只剩了十七个人。“ 3、“英国人说英国没有永远的朋友,也没有永远的敌人,只有永远的利益。对我李敖来说,我没有永远的朋友,也没有永远的敌人,只有永远的正义。“ 4、”你不知道我的性格吧?我一点亏都不吃的。我很像犹太人、以色列人。我反应是立刻的。我们中国人相信说’吃亏占便宜’,我从来没有这样。过去吃亏就是吃亏了,可是现在我要占便宜占回来。我这人就是这样,绝不吃亏!“ 5、做弱者,多不得好活;做强者,多不得好死。 6、有时解释是不必要的——敌人不信你的解释,朋友无须你的解释。 7、谈恋爱是以自欺始,欺人终; 搞政治是以欺人始,以自欺终。 8、笨人的可怕不在其笨,而在其自作聪明。笨人做不了最笨的事,最笨的事都是聪明人做的。 9、我不能等最后审判时才收拾所有的小人与敌人,在半道里,我也要随手宰他几个. 10、有人向我挑战,说「你放马过来」。我不回话,只是疾驰而去,然后马后炮打倒他。 11、凡是我不了解的现象,我总是勇敢地迎着它走上去,不让它吓倒。我高高地站在它的上面。人应当认定自己比狮子、老虎、猩猩高一等,比大自然中的万物,甚至比他不能理解的,像是奇迹的东西都高,要不然他就算不得人,只不过是一个见着样样东西都害怕的耗子罢了。 12、大家只看不良少年问题,却忘了看不良老年问题。不良少年的许多问题,其实是不良老年引起来的。古今中外,从来没有像国民党集团这么多的不良老年密集在一起,从来没有! 13、科学怪人固然可怕,玄学怪人更是可怕。牟宗三之流,典型的玄学怪人也。他的文章和演说,都不知所云,可是国民党却还捧他。——只有混蛋才捧混蛋。 14、所有的女人都会偷人,只要有机会! 女人三十岁以前偷情,三十岁以后捉奸。 15、国民党在意淫大陆,手淫台湾。 16、有人以為現代文明取消了牛馬、代替以汽車。殊不知現代人要先做陣牛馬,才能 坐上汽車。 17、孫中山朝人民蓋空中樓閣,蔣介石卻收起房租來。 18、前進的理由只要一個;後退的理由卻要一百個。許多人整天找一百個理由證明 他不是懦夫,卻從不用一個理由證明他是勇士。 19、做烈士不算什么,做战士才聪明。我不只是一般的战士,还是神气活现的战士,快快乐乐的战士,使你哭笑不得的战士! 20、 李敖评日本A片:“日本A片的女人叫床叫的比美国A片的女人好,因为日本女人叫的比较细,有起承转合。“李敖说看美国A片就像在看叁民主义。 21、不做无聊之事,难度有生之涯。 22、因为不了解而结婚,因为了解而离婚。 23、想骂我的人多着呢。要骂请排队,轮到不轮到还难说呢? 24、报仇的最好方法就是要比敌人活得久。
View DetailsDataSet to excel
/// <summary>/// DataSet导出Excel/// </summary>/// <param name="arrTitle">列标题,若为null,则直接取dataset列标题</param>/// <param name="ds">要导出的DataSet</param>/// <param name="fileName">Excel文件名,不需要传入扩展名</param>protected void CreateExcel(string[] arrTitle, DataSet ds, string fileName){StringBuilder strb = new StringBuilder();strb.Append(" <html xmlns:o=\"urn:schemas-microsoft-com:office:office\"");strb.Append("xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");strb.Append("xmlns=\"http://www.w3.org/TR/REC-html40\"");strb.Append(" <head> <meta http-equiv=’Content-Type' content=’text/html; charset=gb2312′>");strb.Append(" <style>");strb.Append(".xl26");strb.Append(" {mso-style-parent:style0;");strb.Append(" font-family:\"Times New Roman\", serif;");strb.Append(" mso-font-charset:0;");strb.Append(" mso-number-format:\"@\";}");strb.Append(" </style>");strb.Append(" <xml>");strb.Append(" <x:ExcelWorkbook>");strb.Append(" <x:ExcelWorksheets>");strb.Append(" <x:ExcelWorksheet>");strb.Append(" <x:Name>Sheet1 </x:Name>");strb.Append(" <x:WorksheetOptions>");strb.Append(" <x:DefaultRowHeight>285 </x:DefaultRowHeight>");strb.Append(" <x:Selected/>");strb.Append(" <x:Panes>");strb.Append(" <x:Pane>");strb.Append(" <x:Number>3 </x:Number>");strb.Append(" <x:ActiveCol>1 </x:ActiveCol>");strb.Append(" </x:Pane>");strb.Append(" </x:Panes>");strb.Append(" <x:ProtectContents>False </x:ProtectContents>");strb.Append(" <x:ProtectObjects>False </x:ProtectObjects>");strb.Append(" <x:ProtectScenarios>False </x:ProtectScenarios>");strb.Append(" </x:WorksheetOptions>");strb.Append(" </x:ExcelWorksheet>");strb.Append(" <x:WindowHeight>6750 </x:WindowHeight>");strb.Append(" <x:WindowWidth>10620 </x:WindowWidth>");strb.Append(" <x:WindowTopX>480 </x:WindowTopX>");strb.Append(" <x:WindowTopY>75 </x:WindowTopY>");strb.Append(" <x:ProtectStructure>False </x:ProtectStructure>");strb.Append(" <x:ProtectWindows>False </x:ProtectWindows>");strb.Append(" </x:ExcelWorkbook>");strb.Append(" </xml>");strb.Append("");strb.Append(" </head> <body> <table align=\"center\" style=’border-collapse:collapse;table-layout:fixed'> <tr>"); if (ds.Tables.Count > 0){//写列标题 if […]
View Detailsdataset to excel
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.OleDb;using System.Xml;using System.Xml.Xsl;using System.IO; namespace Amei.Data{ partial class DataSet { #region ExcelHelper #region 读取Excel public System.Data.DataSet ReadExcel(string path) { System.Data.DataSet ds = new System.Data.DataSet(); string extension = System.IO.Path.GetExtension(path.ToLower()); string connString = string.Empty; if (extension == ".xls") { connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if (extension == ".xlsx") { connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; } string query = "SELECT * FROM [Sheet1$]"; try { OleDbConnection conn = new OleDbConnection(); OleDbCommand cmd […]
View Detailsrepeater控件的ItemCreated事件的代码示例
public void repeater1_ItemCreated(object sender, RepeaterItemEventArgs e) { DataRowView row = (DataRowView)e.Item.DataItem; string url = "id="+row["zyid"].ToString(); string text = row["职业名称"].ToString(); string cat_num = row["数量"].ToString(); HyperLink link = new HyperLink(); link.NavigateUrl = "upPage.aspx?" + url; link.Text = text; e.Item.Controls.Add(link); […]
View Details探讨PHP页面跳转几种实现技巧
PHP被许多程序员用来开发WEB的首选语言。在实际开发中,网站的各项功能都可以通过PHP语言的编写来满足,比如PHP页面跳转这一方法。 探讨PHP变量解析顺序如何获取提交数据 深入解读PHP运行机制 浅析PHP函数extract()应用技巧 为你总结一些PHP信息函数 PHP查询字符串技巧分享 Web系统中,从一个网页跳转到另一个网页,是LAMP项目中最常用的技术之一。页面跳转可能是由于用户单击链接、按钮等引发的,也可能是系统自动产生的。 此处介绍PHP中常用的实现页面自动跳转的方法。 PHP页面跳转一、header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。 header()函数的定义如下: void header (string string [,bool replace [,int http_response_code]]) 可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。 第二个可选参数http_response_code强制将HTTP相应代码设为指定值。 header函数中Location类型的标头是一种特殊的header调用,常用来实现页面跳转。注意:1.location和“:”号间不能有空格,否则不会跳转。 2.在用header前不能有任何的输出。 3.header后的PHP代码还会被执行。例如,将浏览器重定向到lamp兄弟连官方论坛
1 2 3 4 5 6 7 |
<?php //重定向浏览器 header("Location: http://bbs. lampbrother.net"); //确保重定向后,后续代码不会被执行 exit; ?> |
PHP页面跳转二、Meta标签 Meta标签是HTML中负责提供文档元信息的标签,在PHP程序中使用该标签,也可以实现页面跳转。 若定义http-equiv为refresh,则打开该页面时将根据content规定的值在一定时间内跳转到相应页面。 若设置content="秒数;url=网址",则定义了经过多长时间后页面跳转到指定的网址。例如,使用meta标签实现疫苗后页面自动跳转到LAMP兄弟连官方论坛。
1 |
<meta http-equiv="refresh" content="1;url=http://bbs.lampbrother.net"> |
例如,以下程序meta.php实现在该页面中停留一秒后页面自动跳转到bbs.lampbrother.net。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $url="http://bbs.lampbrother.net"; ?> <html> <head> <meta http-equiv="refresh" content="1; url=<?php echo $url; ?>"> </head> <body> 页面只停留一秒…… </body> </html> |
PHP页面跳转三、JavaScript 例如,此代码可以放在程序中的任何合法位置。
1 2 3 4 5 6 |
<?php $url="http://bbs.lampbrother.net"; echo "<script language='javascript' type='text/javascript'>"; echo "window.location.href='$url'"; echo "</script>"; ?> |
以上就是我们向大家介绍的三种PHP页面跳转实现方法。
View DetailsPHP会话Session的具体使用方法解析
PHP会话Session的御用比起Cookie来说相对要更安全一些,而且没有数据长度的限制。我们今天就向大家介绍有关PHP会话Session一些相关知识,以加深民大家对PHP会话Session的认识程度。 PHP函数header()查询单部件的具体方法解 WordPress获得2009开源PHP项目亚军 PHP数组转字符串与PHP字符串转数组的相关 探讨PHP引用&符号的一些注意问题 PHP数组处理函数概览 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而PHP会话Session就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。 当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。 PHP会话Session在 php.ini 是否需要设置呢?一般不需要的,因为并不是每个人都有修改 php.ini 的权限,默认 Session 的存放路径是服务器的系统临时文件夹,我们可以自定义存放在自己的文件夹里,这个稍后我会介绍。 开始介绍如何创建 Session。非常简单,真的。 启动 Session 会话,并创建一个 $admin 变量:
1 |
<ol class="dp-xml"><li class="alt"><span><span>// 启动 Session </span></span></li><li><span>session_start(); </span></li><li class="alt"><span>// 声明一个名为 admin 的变量,并赋空值。 </span></li><li><span>$_SESSION["admin"] = null; </span></li><li class="alt"><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span></li></ol> |
如果你使用了 […]
View Details如何使用 CSS3 增强网站字体设计CSS, 字体网页设计, 字体WOFF字体属性字体嵌入
利用 Windows Internet Explorer 9 中新提供的对 层叠样式表 (CSS),级别 3 (CSS3) 字体模块的支持,您可以将您的网站访问者的版式体验进行升级。 本主题演示如何将新的 CSS3 字体功能并入到您的网站中,以便在 Internet Explorer 9 和其他现代浏览器中突显您的字体设计。 版式是 Web 设计不可缺少的一部分,Internet Explorer 9 支持在 CSS 字体模块级别 3工作草案和 Web 开放字体格式 (WOFF) 1.0 工作草案中定义的高级版式功能。 这些功能包括以下各项: 通过使用 @font-face 规则改进的字体链接 新提供的对 Web 字体格式的支持: Web 开放式字体格式 (WOFF) 原始的可安装的 TrueType 和 OpenType(未设置嵌入权限) 具有新增的和更新的字体属性的高级版式功能: 新增的 font-stretch 属性 更新的 font-weight 和 font-size 属性,它们使其呈现行为在其他浏览器中更加一致。 另外,Internet Explorer 9 利用硬件加速的 Microsoft DirectWrite API 和子像素 Microsoft ClearType 字体定位(在 IE9 标准模式中),可比以前更快地呈现字体,且字体看起来更平滑。 (有关 Internet Explorer 9 中的字体硬件呈现的详细信息,请参阅 IE 团队博客上的 IE9 中的子像素字体。) 本主题包含以下几节: Web 字体入门 font 元素 CSS 字体属性 字体嵌入 其他解决方案 WOFF 格式 使用 Internet Explorer 9 […]
View Details