博文

[置顶] 浅析C#的事件处理和自定义事件 (2007-06-15 12:43:00)

摘要:一、了解C#中的预定义事件处理机制     在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理。     EventArgs是包含事件数据的类的基类,用于传递事件的细节。     EventHandler是一个委托声明如下          public delegate void EventHandler( object sender , EventArgs e )     注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。     下面我们研究一下Button类看看其中的事件声明(使用WinCV工具查看),以Click事件为例。          public event EventHandler Click;     这里定义了一个EventHandler类型的事件Click     前面的内容都是C#在类库中已经为我们定义好了的。下面我们来看编程时产生的代码。         private void button1_Click(object sender, System.EventArgs e)
        {
            ...
        } &......

阅读全文(2967) | 评论:1

自定义php分页函数(2007-09-30 17:18:00)

摘要:每次编写列表性质的页面,几乎都要写上一段分页的程序。最近终于决心一劳永逸——自定义一个分页函数,并保存在“pageft.php”文件里。要用到分页的地方,就直接包含“pageft.php”文件,并调用这个函数就行了。编写这个函数时,尽量注意了程序的可移植性和易用性,下面就是这个函数: <?
//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:
if(!function_exists(pageft)){
//定义函数pageft(),三个参数的含义为:
//$totle:信息总数;
//$displaypg:每页显示信息数,这里设置为默认是20;
//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。
//   默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。
function pageft($totle,$displaypg=20,$url=''){ //定义几个全局变量:
//$page:当前页码;
//$firstcount:(数据库)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。
global $page,$firstcount,$pagenav,$_SERVER; //为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
$GLOBALS["displaypg"]=$displaypg; if(!$page) $page=1; //如果$url使用默认,即空值,则赋值为本页URL:
if(!$url){ $url=$_SERVER["REQUEST_URI"];} //URL分析:
$parse_url=parse_url($url);
$url_query=$parse_url["query"]; //单独取出URL的查询字串
if($url_quer......

阅读全文(1868) | 评论:0

asp生成word(2007-09-26 08:58:00)

摘要:<% '这里写你的数据库连接,自己写上数据库连接代码
Response.Buffer = True '这个好像得留着

Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from ceshi where id=1"
rs.open sql,conn,3,3  

  
 Dim fso, MyFile
 dim sFileName
 dim mystring
 mystring="这里的内容下面有说明"
 Set fso = CreateObject("Scripting.FileSystemObject")  '用到fso   
 sFileName = ""&rs("id")&".doc"   //根据id来取名称,可以自行修改
 Set MyFile = fso.CreateTextFile(Server.MapPath(".") & "\word\"&sFileName, True) '文件放在当前目录的word/下myString="这里是你预先排好的word文档,要填的地方都空好了,怎么弄底下告诉!"
 MyFile.WriteLine(myString)
 MyFile.Close  '关闭文件
%>


'=============下面是如何弄mystring里的内容
注:myString="" 里面到底是什么?
用word做一个你要的格式的文档,都排好了,
把要填的地方做好标记,比如写几个字什么......

阅读全文(3255) | 评论:0

PHP生成Excel(2007-09-26 08:53:00)

摘要:<?php 
ob_start(); 
define("FILETYPE","xls"); 

header("Content-type:application/vnd.ms-excel"); 
if(FILETYPE=="xls") 
header("Content-Disposition:filename=report.xls"); 
else 
header("Content-Disposition:filename=report.csv"); 


echo "姓名\t年龄\t性别\n"; 
//echo "efg\t\hij\t\n"; 
echo "张三\t25\tmale"; 
echo "\n李四\t27\tmale"; 
echo "\n王五\t20\tfemale"; 
?> 
......

阅读全文(3133) | 评论:0

phpmyadmin显示乱码的问题(2007-09-26 08:52:00)

摘要:修改phpmyadmin里libraries/select_lang.lib.php

'zh-gb2312'         => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'),
改为
'zh-gb2312-utf-8'         => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'),


'gb2312'       => 'gb2312',
改为
'gb2312'       => 'latin1',

'utf-8'        => 'utf-8,
改为
'utf-8'        => 'latin1',

然后在phpmyadmin里language选择时选择上面那个 中文
......

阅读全文(3462) | 评论:0

SQL注入天书(2007-09-25 17:06:00)

摘要:[引用地址:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=308]
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS*志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。
根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗?Let's Go...
入 门 篇
如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。
第一节、SQL注入原理
以下我们从一个www.19cn.com开始(注:本文发表前已征得该站站长同意,大部分都是真实数据)。
在网站首页上,有名为“IE不能打开新窗口的多种解决方法”的链接,地址为:http://www.19cn.com/showdetail.asp?id=49,我们在这个地址后面加上单引号’,服务器会返回下面的错误提示:
Microsoft JET Databa......

阅读全文(2369) | 评论:1

图片无限滚动(2007-09-25 12:16:00)

摘要:1、图片向左无限滚动====================================================
<div id=demod style=overflow:hidden;height:157;width:714>
          <table align=left cellpadding=0 cellspace=0 border=0>
            <tr>
              <td id=demo7 valign=top>
              <table width='100%' cellpadding='0' cellspacing='5' border='0' align='center'>
                  <tr valign='top'>
                    <td align='left'><img src="http://www.sh7135.net/2006demo/images/default_r1_c4.gif"></td>
    &nbs......

阅读全文(3114) | 评论:0

C#多线程参数传递浅析(2007-09-25 12:14:00)

摘要:我们在写Remoting程序或者其他的一些应用程序的时候难免要和线程打交道,.Net使我们很容易就可以创建一个线程,但是它提供的创建线程和启动线程的方法没有明显的提供参数,假如我们要用线程来启动类里面一个带参数的方法该怎么办?下面就简单的介绍如何使用.NET提供的丰富的框架来实现这个功能。为了可以生动详细的介绍整个过程,我建立下面的一个.NET类,它也是要用线程启动的方法的载体。类如下所示:  using System;
namespace WindowsApplication1
{
 /// <summary>
 /// Summary description for UrlFetcher.
 /// </summary>
 public class MyClass{
  // for method 1
  private string _parameter;
  public MyClass(string parameter){
   this._parameter = parameter;
  }
 public void MyMethod1(){
  if(this._parameter!=null){
   // do something
   Console.Write(this._parameter);
  }
 }
 // for method 2
 public MyClass(){}
 // this method is private,But it can be public or other
 private void MyMethod2(string parameter){
  // do something
  Console.Write(parameter);
 }
 // Because delegate WaitCallback's parameter Type is object 
 // I will convert it to string.
 public void......

阅读全文(2282) | 评论:0

用PHP5轻松解析XML(2007-09-20 13:58:00)

摘要:用 sax 方式的时候,要自己构建3个函数,而且要直接用这三的函数来返回数据,要求较强的逻辑。在处理不同结构的 xml 的时候,还要重新进行构造这三个函数,麻烦! 用 dom 方式,倒是好些,但是他把每个节点都看作是一个 node,,操作起来要写好多的代码,麻烦! 网上有好多的开源的 xml 解析的类库,以前看过几个,但是心里总是觉得不踏实,感觉总是跟在别人的屁股后面。 这几天在搞 Java,挺累的,所以决定换换脑袋,写点 PHP 代码,为了防止以后 XML 解析过程再令我犯难,就花了一天的时间写了下面一个 XML 解析的类,于是就有了下面的东西。 实现方式是通过包装“sax方式的解析结果”来实现的。总的来说,对于我个人来说挺实用的,性能也还可以,基本上可以完成大多数的处理要求。 功能:
1\ 对基本的 XML 文件的节点进行 查询 / 添加 / 修改 / 删除 工作。
2\ 导出 XML 文件的所有数据到一个数组里面。
3\ 整个设计采用了 OO 方式,在操作结果集的时候,使用方法类似于 dom 缺点:
1\ 每个节点最好都带有一个id(看后面的例子),每个“节点名字”=“节点的标签_节点的id”,如果这个 id 值没有设置,程序将自动给他产生一个 id,这个 id 就是这个节点在他的上级节点中的位置编号,从 0 开始。
2\ 查询某个节点的时候可以通过用“|”符号连接“节点名字”来进行。这些“节点名字”都是按顺序写好的上级节点的名字。 使用说明:
运行下面的例子,在执行结果页面上可以看到函数的使用说明
代码是通过 PHP5 来实现的,在 PHP4 中无法正常运行。 由于刚刚写完,所以没有整理文档,下面的例子演示的只是一部分的功能,代码不是很难,要是想知道更多的功能,可以研究研究源代码。 目录结构: test.php
test.xml
xml / SimpleDocumentBase.php
xml / SimpleDocumentNode.php
xml / SimpleDocumentRoot.php
xml / SimpleDocumentParser.php 文件:test.xml
<?xml version="1.0" en......

阅读全文(4200) | 评论:0

三级联动下拉(无组件)(2007-09-20 13:56:00)

摘要:[转:http://www.xz-show.cn/bbs/ShowPost.asp?ThreadID=782] <form name="isc" method="post" action="sanjiliandong.asp">
  <table width="572" height="53" border="0" align="center" cellpadding="0" cellspacing="0" style="border:1px solid black;">
    <tr align="center">
      <td width="177"> <select name="s1">
                        <option selected>请选择省</option>
                      </select></td>
      <td width="191"><select name="s2">
                        <option value=" " selected>请选择市</opt......

阅读全文(2316) | 评论:0