存档:2007年六月

相爱的岁月

六月 21, 2007 | 心情杂记 | RSS 2.0

拨弄着岁月的琴弦,
拨去的是流金的岁月,
留下的是的动人的旋律;
吹动了岁月的风铃;
吹走的是浮萍般的记忆,
沉淀的是爱情的真谛;
敲起的岁月的钟声,
敲出的是心灵的共鸣,
燃起的是激情的青春;

写下的是岁月的痕迹,
写出的是满纸的思念,
写不尽的是对你的

没有评论 »

asp.net程序中最常用的三十三种编程代码

六月 20, 2007 | c/c++, js/web | RSS 2.0

 ★【C#+ASP.NET】asp.net程序中最常用的三十三种编程代码 
 1. 打开新的窗口并传送参数:
  传送参数: 

response.write(”<script>window.open(’*.aspx?id=”+this.DropDownList1.SelectIndex+”&id1=”+…+”’)</script>”) 

  接收参数: 

string a = Request.QueryString(”id”); 
string b = Request.QueryString(”id1″); 

 
 
 2.为按钮添加对话框 

Button1.Attributes.Add(”onclick”,”return confirm(’确认?’)”); 
button.attributes.add(”onclick”,”if(confirm(’are you sure…?’)){return true;}else{return false;}”) 

  3.删除表格选定记录 

int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; 
string deleteCmd = “DELETE from Employee where emp_id = ” + intEmpID.ToString() 
 
 
 
 
  
 4.删除表格记录警告 

private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) 

 switch(e.Item.ItemType) 
 { 
  case ListItemType.Item : 
  case ListItemType.AlternatingItem : 
  case ListItemType.EditItem: 
   TableCell myTableCell; 
   myTableCell = e.Item.Cells[14]; 
   LinkButton myDeleteButton ; 
   myDeleteButton = (LinkButton)myTableCell.Controls[0]; 
   myDeleteButton.Attributes.Add(”onclick”,”return confirm(’您是否确定要删除这条信息’);”); 
   break; 
  default: 
   break; 
 } 


 
 
    2007-6-7 09:01      
 
           
 
5  
 6.表格超连接列传递参数 

<asp:HyperLinkColumn Target=”_blank” headertext=”ID号” DataTextField=”id” NavigateUrl=”aaa.aspx?id=’ 
 <%# DataBinder.Eval(Container.DataItem, “数据字段1″)%>’ & DataBinder.Eval(Container.DataItem, “数据字段2″)%>’ /> 
 
 
    2007-6-7 09:01      
 
           
 
7  
 8.关于日期格式 

  日期格式设定 

DataFormatString=”{0:yyyy-MM-dd}” 

  我觉得应该在itembound事件中 

e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString(”yyyy-MM-dd”)) 
 
 
    2007-6-7 09:01      
 
           
 
8  
 9.获取错误信息并到指定页面 

  不要使用Response.Redirect,而应该使用Server.Transfer 

  e.g 

// in global.asax 
protected void Application_Error(Object sender, EventArgs e) { 
if (Server.GetLastError() is HttpUnhandledException) 
Server.Transfer(”MyErrorPage.aspx”); 

//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)  

  Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 
 
 
    2007-6-7 09:02      
 
           
 
9  
  10.清空Cookie 

Cookie.Expires=[DateTime]; 
Response.Cookies(”UserName”).Expires = 0 
 
 
    2007-6-7 09:02      
 
           
 
10  
 11.自定义异常处理 

//自定义异常处理类 
using System; 
using System.Diagnostics; 

namespace MyAppException 

 /// <summary> 
 /// 从系统异常类ApplicationException继承的应用程序异常处理类。 
 /// 自动将异常内容记录到Windows NT/2000的应用程序日志 
 /// </summary> 
 public class AppException:System.ApplicationException 
 { 
  public AppException() 
  { 
   if (ApplicationConfiguration.EventLogEnabled)LogEvent(”出现一个未知错误。”); 
  } 

 public AppException(string message) 
 { 
  LogEvent(message); 
 } 

 public AppException(string message,Exception innerException) 
 { 
  LogEvent(message); 
  if (innerException != null) 
  { 
   LogEvent(innerException.Message); 
  } 
 } 
 
 
    2007-6-7 09:02      
 
           
 
11  
 12.Panel 横向滚动,纵向自动扩展 

<asp:panel style=”overflow-x:scroll;overflow-y:auto;”></asp:panel> 

13.回车转换成Tab 

<script language=”javascript” for=”document” event=”onkeydown”> 
 if(event.keyCode==13 && event.srcElement.type!=’button’ && event.srcElement.type!=’submit’ &&     event.srcElement.type!=’reset’ && event.srcElement.type!=’’&& event.srcElement.type!=’textarea’); 
   event.keyCode=9; 
</script> 

onkeydown=”if(event.keyCode==13) event.keyCode=9″ 
 
 
    2007-6-7 09:03      
 
           
 
12  
 14.DataGrid超级连接列 

DataNavigateUrlField=”字段名” DataNavigateUrlFormatString=”http://xx/inc/delete.aspx?ID={0}” 

15.DataGrid行随鼠标变色 

private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) 

 if (e.Item.ItemType!=ListItemType.Header) 
 { 
  e.Item.Attributes.Add( “onmouseout”,”this.style.backgroundColor=”"+e.Item.Style["BACKGROUND-COLOR"]+”"”); 
  e.Item.Attributes.Add( “onmouseover”,”this.style.backgroundColor=”"+ “#EFF3F7″+”"”); 
 } 

 
 
    2007-6-7 09:03      
 
           
 
13  
 16.模板列 

<ASP:TEMPLATECOLUMN visible=”False” sortexpression=”demo” headertext=”ID”> 
<ITEMTEMPLATE> 
<ASP:LABEL text=’<%# DataBinder.Eval(Container.DataItem, “ArticleID”)%>’ runat=”server” width=”80%” /> 
</ITEMTEMPLATE> 
</ASP:TEMPLATECOLUMN> 

<ASP:TEMPLATECOLUMN headertext=”选中”> 
<HEADERSTYLE wrap=”False” horizontalalign=”Center”></HEADERSTYLE> 
<ITEMTEMPLATE> 
<ASP:CHECKBOX runat=”server” /> 
</ITEMTEMPLATE> 
<EDITITEMTEMPLATE> 
<ASP:CHECKBOX runat=”server” enabled=”true” /> 
</EDITITEMTEMPLATE> 
</ASP:TEMPLATECOLUMN> 

  后台代码 

protected void CheckAll_CheckedChanged(object sender, System.EventArgs e) 

 //改变列的选定,实现全选或全不选。 
 CheckBox chkExport ; 
 if( CheckAll.Checked) 
 { 
  foreach(DataGridItem oDataGridItem in MyDataGrid.Items) 
  { 
   chkExport = (CheckBox)oDataGridItem.FindControl(”chkExport”); 
   chkExport.Checked = true; 
  } 
 } 
 else 
 { 
  foreach(DataGridItem oDataGridItem in MyDataGrid.Items) 
  { 
   chkExport = (CheckBox)oDataGridItem.FindControl(”chkExport”); 
   chkExport.Checked = false; 
  } 
 } 

 
 
    2007-6-7 09:03      
 
           
 
15  
 18.日期格式化 

  【aspx页面内:<%# DataBinder.Eval(Container.DataItem,”Company_Ureg_Date”)%> 

  显示为: 2004-8-11 19:44:28 

  我只想要:2004-8-11 】 

<%# DataBinder.Eval(Container.DataItem,”Company_Ureg_Date”,”{0:yyyy-M-d}”)%> 

  应该如何改? 

  【格式化日期】 

  取出来,一般是object((DateTime)objectFromDB).ToString(”yyyy-MM-dd”); 

  【日期的验证表达式】 

  A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] 

^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(s(((0?[1-9])|(1[0-2])):([0-5][0-9])((s)|(:([0-5][0-9])s))([AM|PM|am|pm]{2,2})))?$ 

  B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] 

^d{4}[-/s]?((((0[13578])|(1[02]))[-/s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[-/s]?(([0-2][0-9])|(30)))|(02[-/s]?[0-2][0-9]))$ 

  【大小写转换】 

HttpUtility.HtmlEncode(string); 
HttpUtility.HtmlDecode(string) 
 
 
    2007-6-7 09:04      
 
           
 
16  
 19.如何设定全局变量 

  Global.asax中 

  Application_Start()事件中 

  添加Application[属性名] = xxx; 

  就是你的全局变量 
 
 
    2007-6-7 09:04      
 
           
 
17  
 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? 

  HyperLinkColumn有个属性Target,将器值设置成”_blank”即可.(Target=”_blank”) 

  【ASPNETMENU】点击菜单项弹出新窗口 

  在你的menuData.xml文件的菜单项中加入URLTarget=”_blank”,如: 

<?xml version=”1.0″ encoding=”GB2312″?> 
<MenuData ImagesBaseURL=”images/”> 
<MenuGroup> 
<MenuItem Label=”内参信息” URL=”Infomation.aspx” > 
<MenuGroup > 
<MenuItem Label=”公告信息” URL=”Infomation.aspx” URLTarget=”_blank” LeftIcon=”file.gif”/> 
<MenuItem Label=”编制信息简报” URL=”NewInfo.aspx” LeftIcon=”file.gif” /> 
…… 

  最好将你的aspnetmenu升级到1.2版 
 
 
    2007-6-7 09:04      
 
           
 
18  
 21.读取DataGrid控件TextBox值 

foreach(DataGrid dgi in yourDataGrid.Items) 

 TextBox tb = (TextBox)dgi.FindControl(”yourTextBoxId”); 
 tb.Text…. 

 
 
    2007-6-7 09:04      
 
           
 
19  
 23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能? 

  〖思归〗 

<asp:TemplateColumn HeaderText=”数量”> 
<ItemTemplate> 
<asp:TextBox runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,”DG_ShuLiang”)%>’ 
onkeyup=”" 
/> 

<asp:RegularExpressionValidator runat=”server” ControlToValidate=”ShuLiang” ErrorMessage=”must be integer” ValidationExpression=”^d+$” /> 
</ItemTemplate> 
</asp:TemplateColumn> 

<asp:TemplateColumn HeaderText=”单价”> 
<ItemTemplate> 
<asp:TextBox runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,”DG_DanJian”)%>’ 
onkeyup=”" 
/> 

<asp:RegularExpressionValidator runat=”server” ControlToValidate=”DanJian” ErrorMessage=”must be numeric” ValidationExpression=”^d+(.d*)?$” /> 

</ItemTemplate> 
</asp:TemplateColumn> 

<asp:TemplateColumn HeaderText=”金额”> 
<ItemTemplate> 
<asp:TextBox runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,”DG_JinE”)%>’ /> 
</ItemTemplate> 
</asp:TemplateColumn><script language=”javascript”> 
function DoCal() 

 var e = event.srcElement; 
 var row = e.parentNode.parentNode; 
 var txts = row.all.tags(”INPUT”); 
 if (!txts.length || txts.length < 3) 
  return; 

 var q = txts[txts.length-3].value; 
 var p = txts[txts.length-2].value; 

 if (isNaN(q) || isNaN(p)) 
  return; 

 q = parseInt(q); 
 p = parseFloat(p); 

 txts[txts.length-1].value = (q * p).toFixed(2); 

</script> 
 
 
    2007-6-7 09:04      
 
           
 
20  
 24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。 

page_load 
page.smartNavigation=true 

  25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ? 

private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e) 

 for(int i=0;i<e.Item.Cells.Count-1;i++) 
  if(e.Item.ItemType==ListItemType.EditType) 
  { 
   e.Item.Cells[i].Attributes.Add(”Width”, “80px”) 
  } 

 
 
    2007-6-7 09:05      
 
           
 
21  
 26.对话框 

private static string ScriptBegin = “<script language=”JavaScript”>”; 
private static string ScriptEnd = “</script>”; 

public static void ConfirmMessageBox(string PageTarget,string Content) 

 string ConfirmContent=”var retValue=window.confirm(’”+Content+”’);”+”if(retValue){window.location=’”+PageTarget+”’;}”; 

 ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd; 

 Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler; 
 ParameterPage.RegisterStartupScript(”confirm”,ConfirmContent); 
 //Response.Write(strScript); 

 
 
    2007-6-7 09:05      
 
           
 
22  
 27. 将时间格式化:string aa=DateTime.Now.ToString(”yyyy年MM月dd日”); 

  1.1 取当前年月日时分秒 

currentTime=System.DateTime.Now; 

  1.2 取当前年 

int 年= DateTime.Now.Year; 

  1.3 取当前月 

int 月= DateTime.Now.Month; 

  1.4 取当前日 

int 日= DateTime.Now.Day; 

  1.5 取当前时 

int 时= DateTime.Now.Hour; 

  1.6 取当前分 

int 分= DateTime.Now.Minute; 

  1.7 取当前秒 

int 秒= DateTime.Now.Second; 

  1.8 取当前毫秒 

int 毫秒= DateTime.Now.Millisecond; 
 
 
    2007-6-7 09:05      
 
           
 
23  
 28.自定义分页代码: 

  先定义变量 : 

public static int pageCount; //总页面数 
public static int curPageIndex=1; //当前页面 

  下一页: 

if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount – 1)) 

 DataGrid1.CurrentPageIndex += 1; 
 curPageIndex+=1; 

bind(); // DataGrid1数据绑定函数 

  上一页: 

if(DataGrid1.CurrentPageIndex >0) 

 DataGrid1.CurrentPageIndex += 1; 
 curPageIndex-=1; 

bind(); // DataGrid1数据绑定函数 

  直接页面跳转: 

int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值 

if(a<DataGrid1.PageCount) 

 this.DataGrid1.CurrentPageIndex=a; 

bind(); 
 
 
    2007-6-7 09:05      
 
           
 
24  
 29.DataGrid使用: 

  添加删除确认: 

private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) 

 foreach(DataGridItem di in this.DataGrid1.Items) 
 { 
  if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) 
  { 
   ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add(”onclick”,”return confirm(’确认删除此项吗?’);”); 
  } 
 } 

  样式交替: 

ListItemType itemType = e.Item.ItemType; 

if (itemType == ListItemType.Item ) 

 e.Item.Attributes["onmouseout"] = “;”; 
 e.Item.Attributes["onmouseover"] = “;cursor=’hand’;” ; 

else if( itemType == ListItemType.AlternatingItem) 

 e.Item.Attributes["onmouseout"] = “;”; 
 e.Item.Attributes["onmouseover"] = “;cursor=’hand’;” ; 

  添加一个编号列: 

DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable 
DataColumn dc=dt.Columns.Add(”number”,System.Type.GetType(”System.String”)); 

for(int i=0;i<dt.Rows.Count;i++) 

 dt.Rows[i]["number"]=(i+1).ToString(); 

DataGrid1.DataSource=dt; 
DataGrid1.DataBind(); 

  DataGrid1中添加一个CheckBox,页面中添加一个全选框 

private void CheckBox2_CheckedChanged(object sender, System.EventArgs e) 

 foreach(DataGridItem thisitem in DataGrid1.Items) 
 { 
  ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked; 
 } 

  将当前页面中DataGrid1显示的数据全部删 …

没有评论 »

css 图片切换

六月 17, 2007 | js/web | RSS 2.0

<!–图型变换代码如下. 

    23.随机变换效果            type=”progid:DXImageTransform.Microsoft.RevealTrans(enabled=ture,transition=23)”

       

       0.方形逐渐变小            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=square,motion=in)”

        交叉形逐渐变大        type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=cross,motion=out)”

        菱形逐渐变小            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=diamond,motion=in)”

       1.方形逐渐变大            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=square,motion=out)”

        交叉形逐渐变小        type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=cross,motion=in)”

        菱形逐渐变大            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=diamond,motion=out)”

                               

       2.圆形逐渐变小            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=circle,motion=in)”

        加号形逐渐变大        type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=plus,motion=out)”

        星形逐渐变小            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=star,motion=in)”

       3.圆形逐渐变大            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=circle,motion=out)”

        加号形逐渐变小        type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=plus,motion=in)”

        星形逐渐变大            type=”progid:DXImageTransform.Microsoft.Iris(irisstyle=star,motion=out)”

       

       4.向上逐渐擦除            type=”progid:DXImageTransform.Microsoft.Blinds(bands=1,direction=up)”

       

       5.向下逐渐擦除            type=”progid:DXImageTransform.Microsoft.Blinds(bands=1,direction=down)”

       

       6.向左逐渐擦除            type=”progid:DXImageTransform.Microsoft.Blinds(bands=1,direction=left)”

       

       7.向右逐渐擦除            type=”progid:DXImageTransform.Microsoft.Blinds(bands=1,direction=right)”

       

       8.垂直百叶窗效果        type=”progid:DXImageTransform.Microsoft.Blinds(bands=6,direction=right)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=6,direction=left)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=60,direction=right)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=60,direction=left)”

       

       9.水平百叶窗效果        type=”progid:DXImageTransform.Microsoft.Blinds(bands=6,direction=down)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=6,direction=up)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=60,direction=down)”

                               type=”progid:DXImageTransform.Microsoft.Blinds(bands=60,direction=up)”

               

       10.横向棋盘效果            type=”progid:DXImageTransform.Microsoft.CheckerBoard(direction=down,squaresX=12,squaresY=12)”

                               type=”progid:DXImageTransform.Microsoft.CheckerBoard(direction=up,squaresX=12,squaresY=12)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=down,squaresX=2,squaresY=2)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=up,squaresX=2,squaresY=2)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=down,squaresX=60,squaresY=60)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=up,squaresX=60,squaresY=60)”

               

       11.纵向棋盘效果            type=”progid:DXImageTransform.Microsoft.CheckerBoard(direction=right,squaresX=12,squaresY=12)”

                               type=”progid:DXImageTransform.Microsoft.CheckerBoard(direction=left,squaresX=12,squaresY=12)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=right,squaresX=2,squaresY=2)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=left,squaresX=2,squaresY=2)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=right,squaresX=60,squaresY=60)”

                               type=”progid:DXImageTransform.Microsoft.Checkerboard(direction=left,squaresX=60,squaresY=60)”

           

       12.随机溶解效果            type=”progid:DXImageTransform.Microsoft.RandomDissolve(enable=true)”

       

       13.左右向中部收缩        type=”progid:DXImageTransform.Microsoft.Barn(motion=in,orientation=vertical)”

       

       14.中部向左右展开        type=”progid:DXImageTransform.Microsoft.Barn(motion=out,orientation=vertical)”

       

       15.上下向中部收缩        type=”progid:DXImageTransform.Microsoft.Barn(motion=in,orientation=horizontal)”

       

       16.中部向上下展开        type=”progid:DXImageTransform.Microsoft.Barn(motion=out,orientation=horizontal)”

       

       17.阶梯状向左下展开        type=”progid:DXImageTransform.Microsoft.Strips(motion=leftdown)”

       

       18.阶梯状向左上展开        type=”progid:DXImageTransform.Microsoft.Strips(motion=leftup)”

       

       19.阶梯状向右下展开        type=”progid:DXImageTransform.Microsoft.Strips(motion=rightdown)”

       

       20.阶梯状向右上展开        type=”progid:DXImageTransform.Microsoft.Strips(motion=rightup)”

       

       21.随机水平线效果        type=”progid:DXImageTransform.Microsoft.RandomBars(orientation=horizontal)”

       

       22.随机垂直线效果        type=”progid:DXImageTransform.Microsoft.RandomBars(orientation=vertical)”

       

       24.标准渐变转化效果        type=”BlendTrans(enabled=true,percent=10)”

       

       25.可调渐变转化效果        type=”progid:DXImageTransform.Microsoft.Fade(enabled=ture,overlap=1.0)”

       

       26.向右下插入效果        type=”progid:DXImageTransform.Microsoft.Inset(enabled=ture)”

       

       27.马赛克效果            type=”progid:DXImageTransform.Microsoft.Pixelate(maxSquare=20)”

       

       28.时钟形射线擦除        type=”progid:DXImageTransform.Microsoft.RadialWipe(wipestyle=clock)”

       29.楔子形射线擦除        type=”progid:DXImageTransform.Microsoft.RadialWipe(wipestyle=wedge)”

       30.辐射形射线擦除        type=”progid:DXImageTransform.Microsoft.RadialWipe(wipestyle=radial)”

       

       31.隐藏式幻灯片效果        type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=hide,bands=1)”

                               type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=hide,bands=20)”

       32.推动式幻灯片效果        type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=push,bands=1)”

                               type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=push,bands=20)”

       33.交换式幻灯片效果        type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=swap,bands=1)”

                               type=”progid:DXImageTransform.Microsoft.Slide(slidestyle=swap,bands=20)”

       

       34.螺旋形收缩效果        type=”progid:DXImageTransform.Microsoft.Spiral(gridSizeX=20,gridSizeY=20)”

       

       35.隐藏式伸展效果        type=”progid:DXImageTransform.Microsoft.Stretch(stretchstyle=hide)”

       36.推动式伸展效果        type=”progid:DXImageTransform.Microsoft.Stretch(stretchstyle=push)”

       37.旋转式伸展效果        type=”progid:DXImageTransform.Microsoft.Stretch(stretchstyle=spin)”

       

       38.风车轮转动效果        type=”progid:DXImageTransform.Microsoft.Wheel(spokes=20)”

       

       39.梯度擦除效果            type=”progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=0.5,wipestyle=0,motion=forward)”

                               type=”progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=0.5,wipestyle=0,motion=reverse)”

                               type=”progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=0.5,wipestyle=1,motion=forward)”

                               type=”progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=0.5,wipestyle=1,motion=reverse)”

       40.Z字形曲折效果        type=”progid:DXImageTransform.Microsoft.Zigzag(gridSizeX=20,gridSizeY=20)”

–>

//实现的的html

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<html>
<head>
<title>New document</title>
<style type=”text/css”>
<!–
div#div1 { height:240px;filter:progid:DXImageTransform.Microsoft.Zigzag(gridSizeX=20,gridSizeY=20)”
}
–>
</style>
</head>
<body>
<div >
<img src=”1.jpg” alt=”"/>
</div>
<input type=”button” value=”play” />
</body>
</html>
<script language=”JavaScript” type=”text/javascript”>
<!–
function play(){
 var div1=document.getElementById(”div1″);
 div1.filters[0].apply();
 div1.innerHTML=”<img src=’2.jpg’ alt=”/>”;
 div1.filters[0].play();
}
//–>
</script>

没有评论 »

用ajax实现用户注册名是否存在

六月 17, 2007 | js/web, php | RSS 2.0

只是ceshi.php

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>无标题文档</title>
<script language=”javascript”>
 var http_request = false;
 function send_request(url) {//初始化、指定处理函数、发送请求的函数
  http_request = false;
  //开始初始化XMLHttpRequest对象
  if(window.XMLHttpRequest) { //Mozilla 浏览器
   http_request = new XMLHttpRequest();
   if (http_request.overrideMimeType) {//设置MiME类别
    http_request.overrideMimeType(”text/xml”);
   }
  }
  else if (window.ActiveXObject) { // IE浏览器
   try {
    http_request = new ActiveXObject(”Msxml2.XMLHTTP”);
   } catch (e) {
    try {
     http_request = new ActiveXObject(”Microsoft.XMLHTTP”);
    } catch (e) {}
   }
  }
  if (!http_request) { // 异常,创建对象实例失败
   window.alert(”不能创建XMLHttpRequest对象实例.”);
   return false;
  }
  http_request.onreadystatechange = processRequest;
  // 确定发送请求的方式和URL以及是否同步执行下段代码
  http_request.open(”GET”, url, true);
  http_request.send(null);
 }
 // 处理返回信息的函数
    function processRequest() {
        if (http_request.readyState == 4) { // 判断对象状态
            if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
                alert(http_request.responseText);
            } else { //页面不正常
                alert(”您所请求的页面有异常。”);
            }
        }
    }
 function userCheck() {
 var f = document.form1;
 var username = f.username.value;
 if(username==”") {
  window.alert(”用户名不能为空。”);
  f.username.focus();
  return false;
 }
 else {
  send_request(’checkuser.php?username=’+username);
 }
}

</script>
</head>

<body>
<form action=”" method=”post”>
  用户名:<input type=”text” value=”">&nbsp;
  <input type=”button” value=”唯一性检查” >
  <input type=”submit” value=”提交”>
</form>
</body>
</html>
这个是checkuser.php

<?
header(”Cache-Control: no-cache, must-revalidate”);
header(’Content-type: text/html;charset=gb2312′);
//这里你可以换成数据库里判断即可举判断

if($username==”fabin”)
{
echo “不可以使用”;
}
else
{
echo “你可以注册这个用户”;
}
?>

 

没有评论 »

常用的弹出窗口

六月 17, 2007 | js/web | RSS 2.0

以下代码集合常用的弹出窗口用法.

【1、最基本的弹出窗口代码】

<SCRIPT LANGUAGE=”javascript”>

<!–

window.open (’page.html’)

–>

</SCRIPT>

代码放在<SCRIPT LANGUAGE=”javascript”>标签和</script>之间。

<!– 和 –>是对一些版本低的浏览器起作用。

window.open (’page.html’) 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。

这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。

【2、经过设置后的弹出窗口】

定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。

<SCRIPT LANGUAGE=”javascript”>

<!–

window.open (’page.html’, ‘newwindow’, ‘height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no’)

//写成一行

–>

</SCRIPT>

参数解释:

<SCRIPT LANGUAGE=”javascript”> js脚本开始;

window.open 弹出新窗口的命令;

‘page.html’ 弹出窗口的文件名;

‘newwindow’ 弹出窗口的名字(不是文件名),非必须,可用空”代替;

height=100 窗口高度;

width=400 窗口宽度;

top=0 窗口距离屏幕上方的象素值;

left=0 窗口距离屏幕左侧的象素值;

toolbar=no 是否显示工具栏,yes为显示;

menubar,scrollbars 表示菜单栏和滚动栏。

resizable=no 是否允许改变窗口大小,yes为允许;

location=no 是否显示地址栏,yes为允许;

status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

</SCRIPT> js脚本结束

【3、用函数控制弹出窗口】

完整的代码示范

<html>

<head>

<script LANGUAGE=”javascript”>

<!–

function openwin() { window.open (”page.html”, “newwindow”, “height=100, width=400, toolbar= no, menubar=no, scrollbars=no, resizable=no, location=no, status=no”)

//写成一行

}

//–>

</script>

</head>

<body >

…任意的页面内容…

</body>

</html>

这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。

怎么调用呢?

方法一:<body > 浏览器读页面时弹出窗口;

方法二:<body > 浏览器离开页面时弹出窗口;

方法三:用一个连接调用:

<a href=”#” >打开一个窗口</a>

注意:使用的“#”是虚连接。

方法四:用一个按钮调用:

<input type=”button” value=”打开窗口”>

【4、同时弹出2个窗口】

对源代码稍微改动一下

<script LANGUAGE=”javascript”>

<!–

function openwin()

{ window.open (”page.html”, “newwindow”, “height=100, width=100, top=0,left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no”)

//写成一行

window.open (”page2.html”, “newwindow2″, “height=100, width=100, top=100, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no”)

//写成一行

}

//–>

</script>

为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。

注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。

【5、主窗口打开文件1.htm,同时弹出小窗口page.html】

如下代码加入主窗口<head>区

<script language=”javascript”>

<!–

function openwin()

{window.open(”page.html”,”",”width=200,height=200″)

}

//–>

</script>

加入<body>区 <a href=”1.htm” >open</a> 即可。

【6、弹出的窗口之定时关闭控制】

将一小段代码加入弹出的页面(注意是加入到page.html的HTML中,不是主页面中),让它10秒后自动关闭

首先,将如下代码加入page.html文件的<head>区

<script language=”javascript”>

function closeit()

{setTimeout(”self.close()”,10000) //毫秒}

</script>

再用<body > 这一句话代替page.html中原有的<BODY>这一句。(作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。)

【7、在弹出窗口中加上一个关闭按钮】

<FORM>

<INPUT TYPE=’BUTTON’ value=’关闭’ >

</FORM>

【8、内包含的弹出窗口-一个页面两个窗口】

上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。

下面的例子,你可以在一个页面内完成上面的效果。

<html>

<head>

<SCRIPT LANGUAGE=”javascript”>

function openwin()

{OpenWindow=window.open(”", “newwin”, “height=250, width=250,toolbar=no,scrollbars=”+scroll+”,menubar=no”);

//写成一行

OpenWindow.document.write(”<TITLE>例子</TITLE>”)

OpenWindow.document.write(”<BODY BGCOLOR=#ffffff>”)

OpenWindow.document.write(”<h1>Hello!</h1>”)

OpenWindow.document.write(”New window opened!”)

OpenWindow.document.write(”</BODY>”)

OpenWindow.document.write(”</HTML>”)

OpenWindow.document.close()}

</SCRIPT>

</head>

<body>

<a href=”#” >打开一个窗口</a>

<input type=”button” value=”打开窗口”>

</body>

</html>

OpenWindow.document.write()里面的代码是标准的HTML.按照格式写更多的行即可。用OpenWindow.document.close()结束。

【9、弹出的窗口之Cookie控制】

脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口只弹出一次

使用cookie来控制一下就可以了。

首先,将如下代码加入主页面HTML的<HEAD>区

<script>

function openwin()

{window.open(”page.html”,”",”width=200,height=200″)}

function get_cookie(Name)

{var search = Name + “=”

var returnvalue = “”;

if (documents.cookie.length > 0) {

offset = documents.cookie.indexOf(search)

if (offset != -1) {

offset += search.length

end = documents.cookie.indexOf(”;”, offset);

if (end == -1)

end = documents.cookie.length;

returnvalue=unescape(documents.cookie.substring(offset,end))

}

}

return returnvalue;

}

function loadpopup(){

if (get_cookie(’popped’)==”){

openwin()

documents.cookie=”popped=yes”

}

}

</script>

然后用<body >(注意不是openwin而是loadpop)替换主页面中原有的<BODY>这一句即可。

【10、兼容性最好的函数控制弹出窗口】

页面任意位置插入如下代码

<script language=’javascript1.2′>

function js_callpage(htmlurl)

{

var newwin=window.open(htmlurl,”,’toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=2,right=0 ,width=800,height=421′);return false;

}

</script>

对超级链接添加onclikc行为,示范:<a href=”#” js_callpage(this.href);”>popup<a>

即添加 js_callpage(this.href);”

没有评论 »

超频

六月 15, 2007 | tools | RSS 2.0

 今天电脑不知怎么弄的登陆不进去,直接黑屏幕,显示超出范围总后弄出是:

显卡驱动装错了,后进入安全模式下, 把驱动卸载了,从新再装才算了事。

没有评论 »

转帖大学之后的忠告

六月 14, 2007 | 心情杂记 | RSS 2.0

1,事业永远第一

虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.

2,别把钱看得太重

不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程,社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少.

3,学会体谅父母

别嫌他们唠叨,等你为人父了你就知道可怜天下父母心,在他们眼里你还是个孩子,但他们真的老了,现在得你哄他们开心了,也许只要你的一个电话,一点小礼物,就可以让他们安心,很容易做到.

4,交上好朋友

朋友对你一生都影响重大,不要去结识太多酒肉朋友,至少得有一个能在关键时刻帮助你的朋友,如果遇到这么一个人,就好好把握,日后必定有用,不管他现在是富还是穷.

5,别太相信爱情

心中要有爱,但请别说也别相信那些琼瑶阿姨小说里面的山盟海誓,世上本无永恒,重要的是责任,但女人心海底针,心变了,一切都成枉然,你要做的就是该出手时就出手,该放手时别犹豫.30岁之前的爱情不是假的,但只是大多数人都没有能真正把握好的能力,所以学会量力而行.

6,别担心至今还保留初吻

爱情不在多而在精,别以为自己20多岁还没碰过女孩子就害怕自己永远找不到老婆.以后你会有很多机会认识女孩子,要知道这个社会虽然男人多于女人,但现实是女人其实比男人更担心这个问题.男人30一枝花,你在升值而不是贬值,成熟的爱情往往更美丽更长久,所以不要像疯狗一样看到女孩就想追,学会品味寂寞.

7,不要沉迷于任何东西

所谓玩物而丧志,网络游戏是你在出校门之前玩的,你现在没有多余的时间和精力花费到这上面,否则你透支的东西以后都得偿还.一个人要有兴趣,爱好,但请分清楚轻重.

8,年轻没有失败

不要遇到挫折就灰心,年轻人要时刻保持积极向上的态度.失败了,重来过;失去了,再争取别的。错过了,要分析,下次来,要把握;幼稚了,下次,成熟点。不要紧,会好的,哪怕到了极点,也不要放弃,相信一定可以挺过去。不要消极,会好的。曾经的错,过去了,总不能回味在过去。现在的,很好,累完了,很舒服。不要伤,总会有人在支撑你。

9,不要轻易崇拜或者鄙视一个人

人都有偶像,但请拥有你自己的个性.不要刻意去模仿一个人,因为你就是你,是唯一的,独一无二的,要有自信.也不要全盘否定一个人,每个人是有价值的,如果你不能理解他,也请学会接受.

10,要有责任心.

不管你曾经怎样,但请从现在开始做一个正直的人.男人要有责任心,无论是工作还是生活上,一个有责任心的人才能让别人有安全感,才能让别人觉得你是一个值得信赖的人.我们不要懦弱,但请不要伤害爱你的人和你爱的人,尤其是善良的女孩,因为这个世界善良的女孩不多了,即使不想拥有,但也请让她保持她美丽的心.

11,男人的外貌并不重要.

不要为自己的长相身高而过分担心,一个心地善良,为人正直的男人远比那些空有英俊相貌,挺拔身材但内心龌龊的男人要帅得多.如果有人以貌取人,请不要太在意,因为你不用去为一个低级趣味的人而难过.

12,学会保护身体

不要以为现在抽烟喝酒,熬夜通宵也没什么事.那是因为你的身体正处于你一生的黄金时段.30岁以后你就能明白力不从心这个词的意义了,身体是革命的本钱,没有好的身体什么也做不了,所以要尽量让自己过有规律的健康生活.

13,别觉得一事无成.

你现在还没有资格谈成功,当然如果你有千万资产的除外.一开始太固定的职业并不一定是好事,或许在不断的改行当中,你会学到更丰富的知识,而且可以挖掘出自己的潜能,找到最适合你的工作.

14,请认真工作

即使你现在的工作再怎么无聊再怎么低级,也请你认真去对待,要知道任何成功人士都是从最小的事做起,或许你现在学不到多么了不起的知识,但起码你要学会良好的工作态度和工作方法,这对以后很重要.

15,请认真对待感情.

不要羡慕那些换女人像换鞋一样的花花公子,逢场作戏的爱情只是让你浪费时间浪费精力,一个人最痛苦的不是找不到爱人,而是心中没有了爱,当你把我爱你3个字变成你最容易说的一句话时,那么你在爱情的世界里已经很难找到真正的幸福了.爱情没有公平,总有一个人比对方付出得多,即使没有结果,也别觉得不值,因为你的付出不光是为了她,也是为了你自己的爱,为爱付出是很可贵的,赞自己一下.

16.请留一点童心

在内心深处,哪怕只是一个很小的角落里,请保持一份童心,不是幼稚,但有的时候单纯一点会让你很快乐.所以不要太计较得失,生活本无完美.

没有评论 »

c#里结构体和枚举

六月 9, 2007 | c/c++ | RSS 2.0

很少用枚举,今天做到一个,感觉要是做个迷宫游戏用枚举挺方便的!:

using System;
 public class ps
{   enum faxiang : byte
    {
    north=1,
    south=2,
    east=3,
    west=4
    }
    struct route
    {
        public faxiang direction;
        public double distance;
   
    }
     static void Main(string[] args)
     {
         route myRoute;
         int myDirection = -1;
         double myDistance;
         Console.WriteLine(”欢迎参看”);
         do
         {

             Console.WriteLine(”请选择你输入的方向”);
             myDirection = Convert.ToInt32(Console.ReadLine());

 

 

 


         } while ((myDirection < 1) || (myDirection > 4));
         Console.WriteLine(”请输入距离”);
         myDistance = Convert.ToDouble(Console.ReadLine());
          myRoute.direction = (faxiang)myDirection;
         myRoute.distance = myDistance;
         Console.WriteLine(”距离为:{0}方向为:{1}”,myRoute.distance,myRoute.direction);
         Console.ReadLine();
    
    
    
    
    
    
       }

 


}

 

 

 

 

 

没有评论 »

php session 入门 经典

六月 6, 2007 | php | RSS 2.0

对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。

  由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。

  对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。

  而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。

  当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。

  Session 在 php.ini 是否需要设置呢?一般不需要的,因为并不是每个人都有修改 php.ini 的权限,默认 Session 的存放路径是服务器的系统临时文件夹,我们可以自定义存放在自己的文件夹里,这个稍后我会介绍。

  开始介绍如何创建 Session。非常简单,真的。

  启动 Session 会话,并创建一个 $admin 变量:

// 启动 Session

session_start();

// 声明一个名为 admin 的变量,并赋空值。

$_SESSION["admin"] = null;

?>

  如果你使用了 Seesion,或者该 PHP 文件要调用 Session 变量,那么就必须在调用 Session 之前启动它,使用 session_start() 函数。其它都不需要你设置了,PHP 自动完成 Session 文件的创建。

  执行完这个程序后,我们可以到系统临时文件夹找到这个 Session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位编码后的随机字符串。用编辑器打开它,看一下它的内容:

admin|N;

一般该内容是这样的结构:

变量名|类型:长度:值;

并用分号隔开每个变量。有些是可以省略的,比如长度和类型。

  我们来看一下验证程序,假设数据库存储的是用户名和 md5 加密后的密码:

login.php

// 表单提交后…

$posts = $_POST;

// 清除一些空白符号

foreach ($posts as $key => $value)

{

$posts[$key] = trim($value);

}

$password = md5($posts["password"]);

$username = $posts["username"];

$query = “SELECT `username` FROM `user` WHERE `password` = ‘$password’”;

// 取得查询结果

$userInfo = $DB->getRow($query);

if (!empty($userInfo))

{

if ($userInfo["username"] == $username)

{

// 当验证通过后,启动 Session

session_start();

// 注册登陆成功的 admin 变量,并赋值 true

$_SESSION["admin"] = true;

}

else

{

die(”用户名密码错误”);

}

}

else

{

die(”用户名密码错误”);

}

?>

  我们在需要用户验证的页面启动 Session,判断是否登陆:

// 防止全局变量造成安全隐患

$admin = false;

// 启动会话,这步必不可少

session_start();

// 判断是否登陆

if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true)

{

echo “您已经成功登陆”;

}

else

{

// 验证失败,将 $_SESSION["admin"] 置为 false

$_SESSION["admin"] = false;

die(”您无权访问”);

}

?>

  是不是很简单呢?将 $_SESSION 看成是存储在服务器端的数组即可,我们注册的每一个变量都是数组的键,跟使用数组没有什么分别。

  如果要登出系统怎么办?销毁 Session 即可。

session_start();

// 这种方法是将原来注册的某个变量销毁

unset($_SESSION["admin"]);

// 这种方法是销毁整个 Session 文件

session_destroy();

?>

  Session 能否像 Cookie 那样设置生存周期呢?有了 Session 是否就完全抛弃 Cookie 呢?我想说,结合 Cookie 来使用 Session 才是最方便的。

  Session 是如何来判断客户端用户的呢?它是通过 Session ID 来判断的,什么是 Session ID,就是那个 Session 文件的文件名,Session ID 是随机生成的,因此能保证唯一性和随机性,确保 Session 的安全。一般如果没有设置 Session 的生存周期,则 Session ID 存储在内存中,关闭浏览器后该 ID 自动注销,重新请求该页面后,重新注册一个 Session ID。

  如果客户端没有禁用 Cookie,则 Cookie 在启动 Session 会话的时候扮演的是存储 Session ID 和 Session 生存期的角色。

  我们来手动设置 Session 的生存期:

session_start();

// 保存一天

$lifeTime = 24 * 3600;

setcookie(session_name(), session_id(), time() + $lifeTime, “/”);

?>

  其实 Session 还提供了一个函数 session_set_cookie_params(); 来设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用:

// 保存一天

$lifeTime = 24 * 3600;

session_set_cookie_params($lifeTime);

session_start();

$_SESSION["admin"] = true;

?>

  如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie。

  假设客户端禁用 Cookie 怎么办?没办法,所有生存周期都是浏览器进程了,只要关闭浏览器,再次请求页面又得重新注册 Session。那么怎么传递 Session ID 呢?通过 URL 或者通过隐藏表单来传递,PHP 会自动将 Session ID 发送到 URL 上,URL 形如:http://www.openphp.cn/index.php? … e5b44cfa01d49cf9669,其中 URL 中的参数 PHPSESSID 就是 Session ID了,我们可以使用 $_GET 来获取该值,从而实现 Session ID 页面间传递。

// 保存一天

$lifeTime = 24 * 3600;

// 取得当前 Session 名,默认为 PHPSESSID

$sessionName = session_name();

// 取得 Session ID

$sessionID = $_GET[$sessionName];

// 使用 session_id() 设置获得的 Session ID

session_id($sessionID);

session_set_cookie_params($lifeTime);

session_start();

$_SESSION["admin"] = true;

?>

  对于虚拟主机来说,如果所有用户的 Session 都保存在系统临时文件夹里,将给维护造成困难,而且降低了安全性,我们可以手动设置 Session 文件的保存路径,session_save_path() 就提供了这样一个功能。我们可以将 Session 存放目录指向一个不能通过 Web 方式访问的文件夹,当然,该文件夹必须具备可读写属性。

// 设置一个存放目录

$savePath = “./session_save_dir/”;

// 保存一天

$lifeTime = 24 * 3600;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();

$_SESSION["admin"] = true;

?>

  同 session_set_cookie_params(); 函数一样,session_save_path() 函数也必须在 session_start() 函数调用之前调用。

  我们还可以将数组,对象存储在 Session 中。操作数组和操作一般变量没有什么区别,而保存对象的话,PHP 会自动对对象进行序列化(也叫串行化),然后保存于 Session 中。下面例子说明了这一点:

person.php

class person

{

var $age;

function output() {

echo $this->age;

}

function setAge($age) {

$this->age = $age;

}

}

?>

setage.php

session_start();

require_once “person.php”;

$person = new person();

$person->setAge(21);

$_SESSION['person'] = $person;

echo “check here to output age”;

?>

output.php

// 设置回调函数,确保重新构建对象。

ini_set(’unserialize_callback_func’, ‘mycallback’);

function mycallback($classname) {

include_once $classname . “.php”;

}

session_start();

$person = $_SESSION["person"];

// 输出 21

$person->output();

?>

  当我们执行 setage.php 文件的时候,调用了 setage() 方法,设置了年龄为 21,并将该状态序列化后保存在 Session 中(PHP 将自动完成这一转换),当转到 output.php 后,要输出这个值,就必须反序列化刚才保存的对象,又因为在解序列化的时候需要实例化一个未定义类,所以我们定义了以后回调函数,自动包含 person.php 这个类文件,因此对象被重构,并取得当前 age 的值为 21,然后调用 output() 方法输出该值。

  另外,我们还可以使用 session_set_save_handler 函数来自定义 Session 的调用方式。

 

没有评论 »

javacript全集 (2) 经典 耐用

六月 4, 2007 | js/web | RSS 2.0

<body>
<a href=” + ‘?a=1&b=2′”>search</a>
<script language=”JavaScript”>
<!–
var a = location.search.substr(1);
if(a.length>0)
{
 var re = /([^&]*?)=([^&]*)/g
 var s = a.match(re);
 for(var i= 0;i<s.length;i++)
 {
  alert(s[i]);
  alert(s[i].split(”=”)[1]);
  }
}
//–>
</script>
</body>
//可编辑SELECT

<input type=text style=”width:100px;height:21px;font-size:10pt;”><span style=”width:18px;border:0px solid red;”><select style=”margin-left:-100px;width:118px; background-color:#FFEEEE;” >
                <option value=”1″>11111111<option>
                <option value=”2″>222222</option>
                <option value=”3″>333333</option>
              </select>
              </span>
 

 

 

//设置光标位置


function getCaret(textbox)
{
 var control = document.activeElement;
 textbox.focus();
 var rang = document.selection.createRange();
  rang.setEndPoint(”StartToStart”,textbox.createTextRange())
 control.focus();
 return rang.text.length;
}
function setCaret(textbox,pos)
{
 try
 {
  var r =textbox.createTextRange();
   r.moveStart(’character’,pos);
   r.collapse(true);
   r.select();
  }
 catch(e)
 { }
}
function selectLength(textbox,start,len)
{
 try
 {
  var r =textbox.createTextRange();
 
  r.moveEnd(’character’,len-(textbox.value.length-start));
  r.moveStart(’character’,start);
  
  r.select();
  }
 catch(e)
 { //alert(e.description) }
}
function insertAtCaret(textbox,text)
{
 textbox.focus();
 document.selection.createRange().text = text;
}

//页内查找


function findInPage(str)
{
 var txt, i, found,n = 0;
 if (str == “”)
 {
  return false;
  }
 txt = document.body.createTextRange();
 for (i = 0; i <= n && (found = txt.findText(str)) != false; i++)
 {
  txt.moveStart(”character”, 1);
  txt.moveEnd(”textedit”);
  }
 if (found)
 {
  txt.moveStart(”character”, -1);
  txt.findText(str);
  txt.select();
  txt.scrollIntoView();
  n++;  
  }
 else
 {
  if (n > 0)
  {
   n = 0;
   findInPage(str);
  }
  else
  {
   alert(str + “…            您要找的文字不存在。 请试着输入页面中的关键字再次查找!”);
  }
  }
 return false;
}
//书

http://www.itpub.net/attachment.php?s=&postid=1894598
http://www.wrclub.net/down/listdown.aspx?id=1341
//操作EXECL

<script language=”javascript”>
function jStartExcel() {
 var xls = new ActiveXObject ( “Excel.Application” );
 xls.visible = true;
 var newBook = xls.Workbooks.Add;
 newBook.Worksheets.Add;
 newBook.Worksheets(1).Activate;
 xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation = 2;
 xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize = 5;
 newBook.Worksheets(1).Columns(”A”).columnwidth=50;
 newBook.Worksheets(1).Columns(”A”).WrapText = true;
 newBook.Worksheets(1).Columns(”B”).columnwidth=50;
 newBook.Worksheets(1).Columns(”B”).WrapText = true;
 newBook.Worksheets(1).Range(”A1:B1000″).NumberFormat = “0″;
 newBook.Worksheets(1).Range(”A1:B1000″).HorizontalAlignment = -4131;
 newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex=”15″;
 newBook.Worksheets(1).Cells(1,1).value=”First Column, First Cell”;
 newBook.Worksheets(1).Cells(2,1).value=”First Column, Second Cell”;
 newBook.Worksheets(1).Cells(1,2).value=”Second Column, First Cell”;
 newBook.Worksheets(1).Cells(2,2).value=”Second Column, Second Cell”;
 newBook.Worksheets(1).Name=”My First WorkSheet”;
}
</script>

//自定义提示条


<a href=”#” title=”这是提示”>tip</a>
<script Language=”JavaScript”>
//***********默认设置定义.*********************
tPopWait=50;//停留tWait豪秒后显示提示。
tPopShow=5000;//显示tShow豪秒后关闭提示
showPopStep=20;
popOpacity=99;
//***************内部变量定义*****************
sPop=null;
curShow=null;
tFadeOut=null;
tFadeIn=null;
tFadeWaiting=null;
document.write(”<style type=’text/css’>”);
document.write(”.cPopText {   background-color: #F8F8F5;color:#000000; border: 1px #000000 solid;font-color: font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0) }”);
document.write(”</style>”);
document.write(”<div style=’;z-index:1000;’ ></div>”);

function showPopupText(){
var o=event.srcElement;
MouseX=event.x;
MouseY=event.y;
if(o.alt!=null && o.alt!=”"){ o.dypop=o.alt;o.alt=”" };
        if(o.title!=null && o.title!=”"){ o.dypop=o.title;o.title=”" };
if(o.dypop!=sPop) {
sPop=o.dypop;
clearTimeout(curShow);
clearTimeout(tFadeOut);
clearTimeout(tFadeIn);
clearTimeout(tFadeWaiting);
if(sPop==null || sPop==”") {
dypopLayer.innerHTML=”";
dypopLayer.style.filter=”Alpha()”;
dypopLayer.filters.Alpha.opacity=0;
}
else {
if(o.dyclass!=null) popStyle=o.dyclass 
else popStyle=”cPopText”;
curShow=setTimeout(”showIt()”,tPopWait);
}
}
}
function showIt(){
dypopLayer.className=popStyle;
dypopLayer.innerHTML=sPop;
popWidth=dypopLayer.clientWidth;
popHeight=dypopLayer.clientHeight;
if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
else popLeftAdjust=0;
if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
else popTopAdjust=0;
dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust;
dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust;
dypopLayer.style.filter=”Alpha(Opacity=0)”;
fadeOut();
}
function fadeOut(){
if(dypopLayer.filters.Alpha.opacity<popOpacity) {
dypopLayer.filters.Alpha.opacity+=showPopStep;
tFadeOut=setTimeout(”fadeOut()”,1);
}
else {
dypopLayer.filters.Alpha.opacity=popOpacity;
tFadeWaiting=setTimeout(”fadeIn()”,tPopShow);
}
}
function fadeIn(){
if(dypopLayer.filters.Alpha.opacity>0) {
dypopLayer.filters.Alpha.opacity-=1;
tFadeIn=setTimeout(”fadeIn()”,1);
}
}
document.onmouseover=showPopupText;
</script>
//插入文字

document.onclick =function(){  
var oSource = window.event.srcElement; 
if(oSource.tagName!=”DIV”) 
return false; 
var sel = document.selection; 
if (sel!=null) {  
var rng = sel.createRange(); 
if (rng!=null) 
rng.pasteHTML(”<font color=red>插入文字</font>”); 


//netscapte下操作xml

doc = new ActiveXObject(”Msxml2.DOMDocument”);
doc = new ActiveXObject(”Microsoft.XMLDOM”)
->>
doc = (new DOMParser()).parseFromString(sXML,’text/xml’)
 

//判断键值

<html>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<head>
<script language=”javascript”>
var ie  =navigator.appName==”Microsoft Internet Explorer”?true:false;
  
function keyDown(e)
{
 if(!ie)
 {
  var nkey=e.which;
  var iekey=’现在是ns浏览器’;
  var realkey=String.fromCharCode(e.which);
  }
 if(ie)
 {
  var iekey=event.keyCode;
  var nkey=’现在是ie浏览器’;
  var realkey=String.fromCharCode(event.keyCode);
  if(event.keyCode==32){ realkey=” 空格” }
  if(event.keyCode==13){ realkey=” 回车” }
  if(event.keyCode==27){ realkey=” Esc” }
  if(event.keyCode==16){ realkey=” Shift” }
  if(event.keyCode==17){ realkey=” Ctrl” }
  if(event.keyCode==18){ realkey=” Alt” }
  }
 alert(’ns浏览器中键值:’+nkey+”+’ie浏览器中键值:’+iekey+”+’实际键为’+realkey);
}
document.onkeydown = keyDown;
</script>
</head>
<body>
//Javascript Document.
<hr>
<center>
<h3>请按任意一个键。。。。</h3>
</center>
</body>
</html>
 

//禁止FSO


1.注销组件
regsvr32 /u scrrun.dll
2.修改PROGID 
HKEY_CLASSES_ROOTScripting.FileSystemObject
Scripting.FileSystemObject
3.对于使用object的用户,修改HKEY_CLASSES_ROOTScripting.

//省略号

<DIV STYLE=”width: 120px; height: 50px; border: 1px solid blue;
            overflow: hidden; text-overflow:ellipsis”>
<NOBR>就是比如有一行文字,很长,表格内一行显示不下.</NOBR>
</DIV>
 

//检测media play版本


<IE:clientCaps style=”{ behavior:url(#default#clientcaps) }” />
<SCRIPT>
var flash=”";
    WMPVersion= oClientCaps.getComponentVersion(”{ 22D6F312-B0F6-11D0-94AB-0080C74C7E95 }”,”ComponentID”); 
    if (WMPVersion != “”) {
    flash = “”;
    var version = WMPVersion.split(”,”);
    var i;
    for (i = 0; i < version.length; i++) {
      if (i != 0)
    flash += “.”;
      flash += version[i];
    }
     document.write(”您的Windows Media Player 版本是:”+flash+”<p>”);
  }
</SCRIPT>


 

//图象按比例


<script language=”JavaScript”>
<!–
//图片按比例缩放
var flag=false;
function DrawImage(ImgD){
 var image=new Image();
 var iwidth = 80;  //定义允许图片宽度
 var iheight = 80;  //定义允许图片高度
 image.src=ImgD.src;
 if(image.width>0 && image.height>0){
 flag=true;
 if(image.width/image.height>= iwidth/iheight){
  if(image.width>iwidth){   
  ImgD.width=iwidth;
  ImgD.height=(image.height*iwidth)/image.width;
  }else{
  ImgD.width=image.width;  
  ImgD.height=image.height;
  }
  ImgD.alt=image.width+”×”+image.height;
  }
 else{
  if(image.height>iheight){   
  ImgD.height=iheight;
  ImgD.width=(image.width*iheight)/image.height;  
  }else{
  ImgD.width=image.width;  
  ImgD.height=image.height;
  }
  ImgD.alt=image.width+”×”+image.height;
  }
  }

//–>
</script>
<img src=”..” >


 

//细线SELECT


<span style=”border:1px solid #000000; ; overflow:hidden;” >
<select style=”margin:-2px;”>
<option>1111</option>
<option>11111111111111</option>
<option>111111111</option>
</select></span>

//Import


function Import() {
 for( var i=0; i<arguments.length; i++ ) {
  var file = arguments[i];
  if ( file.match(/.js$/i)) 
   document.write(’<script type=”text/javascript” src=”‘ + file + ‘”></sc’ + ‘ript>’);
  else
   document.write(’<style type=”text/css”> at import “‘ + file + ‘” ;</style>’);
  }
};

//js枚举

 

function getComputerName()
{
 var objWMIService = GetObject(”Winmgmts:rootcimv2″);
 for(e = new Enumerator(objWMIService) ; !e dot atEnd() ; e.moveNext())
 {
    var getComputer = e.item();
    return getComputer.Name;
  }
}


//条件编译


<script language=javascript>
/* at cc_on @*/
/*@if (@_win32 && @_jscript_version>5)
function window dot confirm(str)
{
    execScript(”n = msgbox(’”+ str +”‘, 257)”, “vbscript”);
    return(n == 1);
}
at end @*/
</script>


//取得innerText


 

<SCRIPT LANGUAGE=”JavaScript”>
<!–
 var xmlDoc = new ActiveXObject(”Msxml2 dot DOMDocument.4.0″);
 var currNode;
 xmlDoc.async = false;
 xmlDoc.async = false;
 xmlDoc.loadXML(”<TABLENAME>      你好你阿三    大法     司法等四              </TABLENAME>”);
 currNode = xmlDoc.documentElement;
   
  var s = currNode.xml;
  var r = /<([^>s]*?)[^>]*?>([^<]*?)</1>/
  var b = s.replace(r,”$2″);
  alert(b);
//–>
</SCRIPT>
//mergeAttributes 复制所有读/写标签属性到指定元素。

<SCRIPT>
function fnMerge(){
oSource.children[1].mergeAttributes(oSource.children[0]);
}
</SCRIPT>
<SPAN
<DIV
ID=”oDiv”
ATTRIBUTE1=”true”
ATTRIBUTE2=”true”
onclick=”alert(’click’);”
onmouseover=”this.style.color=’#0000FF’;”
onmouseout=”this.style.color=’#000000′;”
>
This is a sample <B>DIV</B> element.
</DIV>
<DIV >
This is another sample <B>DIV</B> element.
</DIV>
</SPAN>
<INPUT
TYPE=”button”
VALUE=”Merge Attributes”
onclick=”fnMerge()”
>

以上内容可以随意转载,转载后请注名来源和出处! 出处是 http://ttyp.cnblogs.com/

下一篇是 JavaScript[对象.属性]集锦
SCRIPT 标记 

用于包含javascript代码. 

语法 

属性 

LANGUAGE 定义脚本语言 

SRC 定义一个URL用以指定以.JS结尾的文件 

windows对象 

每个HTML文档的顶层对象. 

属性 

frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. 

feames.length 子桢个数. 

self 当前窗口. 

parent 父窗口(当前窗口是中一个子窗口). 

top 顶层窗口(是所有可见窗口的父窗口). 

status 浏览器状态窗口上的消息. 

defaultStatus 当status无效时,出现在浏览器状态窗口上的缺省消息. 

name 内部名,为由window.open()方法打开的窗口定义的名字. 

方法 

alert(”message”) 显示含有给定消息的”javascript Alert”对话框. 

confirm(”message”) 显示含有给定消息的”Confirm”对话框(有一个OK按钮和一个Cancel按钮).如果用户单击OK返回true,否则返回false. 

prompt(”message”) 显示一个”prompt”对话框,要求用户根据显示消息给予相应输入. 

open(”URL”,”name”) 打开一个新窗口,给予一个指定的名字. 

close() 关闭当前窗口.

frame对象 

它是整个浏览器窗口的子窗口,除了status,defaultStatus,name属性外,它拥有window对象的全部属性. 

location对象 

含有当前URL的信息. 

属性 

href 整个URL字符串. 

protocol 含有URL第一部分的字符串,如http: 

host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/ 

hostname 包含URL中主机名的字符串.如http://www.cenpok.net 

port 包含URL中可能存在的端口号字符串. 

pathname URL中”/”以后的部分.如~list/index.htm 

hash “#”号(CGI参数)之后的字符串. 

search “?”号(CGI参数)之后的字符串. 


document对象

含有当前文档信息的对象.

属性

title 当前文档标题,如果未定义,则包含”Untitled”.

location 文档的全URL.

lastModified 含有文档最后修改日期.

referrer 调用者URL,即用户是从哪个URL链接到当前页面的.

bgColor 背景色(#xxxxxx)

fgColor 前景文本颜色.

linkColor 超链接颜色.

vlinkColor 访问过的超链颜色.

alinkColor 激活链颜色(鼠标按住未放时).

forms[] 文档中form对象的数组,按定义次序存储.

forms.length 文档中的form对象数目.

links[] 与文档中所有HREF链对应的数组对象,按次序定义存储.

links.length 文档中HREF链的数目.

anchors[] 锚(…)数组,按次序定义存储.

anchors.length 文档中锚的数目.

方法

write(”string”) 将字符串突出给当前窗口.(字符串可以含有HTML标记)

writeln(”string”) 与write()类似,在结尾追加回车符,只在预定格式文本中(




)生效.

clear() 清当前窗口.

close() 关闭当前窗口.

form对象

属性

name

中的NAME属性的字符串值.

method 中METHOD属性的类值,”0″=”GET” ,”1″=”POST” .

action 中ACTION属性的字符串值.

target 表格数据提交的目标,与标记中相应属性一致.

elements[index] elements属性包含form中的各个元素.

length 表格中的元素个数.

方法

submit() 提交表格.

事件处理器onSubmit() 用户单击一个定义好的按钮提交form时运行的代码.

text和textarea对象

属性

name NAME属性的字符串值.

value 域内容的字符串值.

defaultValue 域内容的初始字符串值.

方法

focus() 设置对象输入焦点.

blur() 从对象上移走输入焦点.

select() 选定对象的输入区域.

事件处理器

onFocus 当输入焦点进入时执行.

onBlur 当域失去焦点时执行.

onSelect 当域中有部分文本被选定时执行.

onChange 当域失去焦点且域值相对于onFocus执行有所改变时执行.

复选框(checkbox)对象

属性

name NAME属性的字符串值.

value 复选框内容的字符串值.如果设置了,则为”on”,否则为”off”.

checked 复选框内容的布尔值.如果设置了,则为true,否则为false .

defaultChecked 反映(CHECKED)属性的布尔值(缺省状态).

方法

click() 选定复选框,并使之状态为”on”.

事件处理器

onClick 当用户单击Checkbox时执行.

单选按钮(radio)对象

属性 …

没有评论 »