保护不被人使用
设为首页
很多人问我:怎么学做主页啊?我说做主页一天就可以了。其实学做主页一点都不难,关键是去做,去做就会了。
要学主页,分三步走就行了,请看下图第二行(可直接点击每个阶段的文字):
首先找一个网页编辑器,例如DreamWaver或者Frontpage,然后就可以制作主页了,制作主页无非是添加文字、添加图片、添加链接,跟用word没什么区别(详细可以看这里),倒腾一番后,其实你已经开始会制作主页了!第三步,就是用一个FTP软件,把你的主页传上去(请看如何上传主页)就完了!原来就那么容易!
DWMX 2004从零开始:框架构建网页(3) 转自: 时间:2003-11-17 19:48:06
文/赵江
我们登录一些论坛之后,可以看见左边是每个讨论区的名称,点击任意一个讨论区就可以在右部区域中看见相应讨论区的内容,不过左右部分是独立显示的,例如拖动左边的滚动条不会影响右侧的显示效果。其实这就是页面中利用了框架技术,因此可以把浏览器的显示空间分割为几个部分,每个部分都独立显示网页内容。而且把几个框架结合在一起构成框架集,能够让页面具有更为丰富的效果。
一、创建框架和框架集
第一步:在Dreamweaver MX 2004中新建一个页面,运行“View→Visual Aids→Frame Borders”命令之后可以看见编辑窗口中出现一个边框,用鼠标点击边框之后可以看见虚线框,说明新建的页面中已经附带了框架。
第二步:按下“Alt”按键,用鼠标拖拽边框,松开鼠标之后就可以把窗口一分为二,这样就把页面分为两个边框。比如拖拽左右边框可以把窗口分为左右两个部分,而拖拽上下边框可以把窗口分为上下两个部分。另外,窗口的四个角也可以拖拽,这样可以直接把窗口分为四个区域(如图1)。当窗口分割为几个框架之后,每个框架都可以作为独立的网页进行编辑,也可以直接把某个已经存在的页面赋给一个框架。
第三步:框架允许嵌套,比如要创建图2所示的框架,可以先通过上述的方法水平一分为二,但是接着不能直接拖拽边框,否则会得到图1所示的框架。正确的方法是先在右下角的框架面板中点击右部的框架,然后再按下“Alt”按钮拖拽边框。
小提示:如果边框拖拽错了,只要用鼠标把需要删除的线拖拽到父框架的边框上即可删除它。
二、编辑框架
页面中经常混有框架和框架集,选取不同对象可以进行不同的属性设置。
第一步:框架集的属性。选中框架集之后可以看见属性对象面板(如图3),其中“Border”一项可以设定是否显示边框,“Border Width”一项可以设定边框宽度,“Border Color”可以设定边框的颜色。另外还可以设置每个边框的尺寸,此时在面板右边的缩略图中选定一行或者一列,然后在它旁边的“Alue”输入框中输入数值,并且选择像素或者百分比作为单位即可。
第二步:框架的属性。如果在框架面板中选择任意一个框架,在框架面板中被选中的框架会有黑色的边框显示,这时就可以在属性面板中进行相应的设置了(如图4)。比如在此可以通过“Src”地址栏设置框架中的网页文件,“Scroll”为是否加入滚动条,“Border”可以决定是否显示边框,“No resize”允许在浏览器是改变框架大小,另外“Margin Width”和“Margin Height”分别设置边界的宽度和高度来决定框架中内容和边框的距离。
第三步:输入框架中的内容。用鼠标点击任意一个框架之后就可以像正常编辑页面一样插入各种文本内容、图片、Flash动画和背景音乐等网页元素。
其实利用框架能够对网页布局进行合理规划,尤其在设计网页初期更显得格外重要,因此需要大家在日常使用中多加练习,这对搭建一个优秀的网站可是大有裨益的!
除了设置背景图象或背景颜色,你还可以设置一种背景音乐或声音。但这个设置是在页面属性对话框的General标签下。所以,点击general标签,则显示以下对话框:
在该对话框的中下部你可以看到有一项是Background Sound,在该项目下面的location框中你可以键入你所要加入的声音文件所在的路径和文件名。你也可以点击右边的Browse键在弹出的对话框中选择文件所在的路径和文件名。在loop选单中你可以设定背景声音文件循环播放的次数,如果你选中loop右边的Forever选框,则你所设定的背景声音将一直循环播放,直到你转到别的网页或网站浏览时为止。 asp.net生成不重复的随即数 Sub CalCaPiao()
Dim strCaiPiaoNoArr() As String Dim strSQL As String
Dim strCaiPiaoNo As String strCaiPiaoNo = \"01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33\"
Dim StrTempArr(7) As String
Dim strZhongJiangArr(7) As String
strCaiPiaoNoArr = Split(strCaiPiaoNo, \Dim intRand As Integer Dim i As Integer Dim j As Integer i = 0
Dim find As Boolean Do While True find = False Randomize
intRand = Int((33 * Rnd) + 1) For j = 0 To i - 1
If StrTempArr(j) = CStr(intRand) Then find = True
End If Next
If Not find Then
StrTempArr(j) = CStr(intRand)
strZhongJiangArr(i) = CStr(intRand) 'Text1(i) = strZhongJiangArr(i) i = i + 1 If i = 7 Then Exit Do End If End If
Loop随机产生用户密码(good)
转自:网页制作大宝库 时间:2003-12-4 12:34:07
说明:通过随机产生密码,然后将密码EMail给注册用户,你可以确认用户的EMail填写是否正确。自动产生的密码往往安全性更高,同时,你可以过滤那些无效的用户。
把下面的代码保存为random.asp文件: <%
Sub StrRandomize(strSeed) Dim i, nSeed nSeed = CLng(0)
For i = 1 To Len(strSeed)
nSeed = nSeed Xor ((256 * ((i - 1) Mod 4) * AscB(Mid(strSeed, i, 1)))) Next
Randomize nSeed End Sub
Function GeneratePassword(nLength) Dim i, bMadeConsonant, c, nRnd
Const strDoubleConsonants = \"bdfglmnpst\" Const strConsonants = \"bcdfghklmnpqrstv\" Const strVocal = \"aeiou\"
GeneratePassword = \"\" bMadeConsonant = False
For i = 0 To nLength nRnd = Rnd If GeneratePassword <> \"\" AND (bMadeConsonant <> True) AND (nRnd < 0.15) Then
c = Mid(strDoubleConsonants, Int(Len(strDoubleConsonants) * Rnd + 1), 1)
c = c & c i = i + 1
bMadeConsonant = True Else
If (bMadeConsonant <> True) And (nRnd < 0.95) Then
c = Mid(strConsonants, Int(Len(strConsonants) * Rnd + 1), 1) bMadeConsonant = True Else
c = Mid(strVocal,Int(Len(strVocal) * Rnd + 1), 1) bMadeConsonant = False End If End If
GeneratePassword = GeneratePassword & c Next
If Len(GeneratePassword) > nLength Then
GeneratePassword = Left(GeneratePassword, nLength) End If End Function %>
然后在你的目标程序中这样调用上面的代码,就可以实现密码的自动生成:(仅仅是一个例子,你可以把他们粘贴到一个Test.asp的文件中,然后运行Test.asp)
<%
'产生一个六位的密码
StrRandomize CStr(Now) & CStr(Rnd) response.write GeneratePassword(6) %>
<%
'产生一个8位的密码
StrRandomize CStr(Now) & CStr(Rnd) response.write GeneratePassword(8)
%>
<%
'产生一个10位的密码
StrRandomize CStr(Now) & CStr(Rnd) response.write GeneratePassword(10) %>
<%
'产生1000个密码
dim t, t2
for t = 1 to 500 For t2 = 1 to 661
StrRandomize CStr(Now) & CStr(Rnd) next
StrRandomize CStr(Now) & CStr(Rnd) response.write GeneratePassword(6) response.write \"
\" next %>
DWMX 2004从零开始:用模板作网页1 转自: 时间:2003-11-17 19:41:48
文/赵江
随着Internet的普及,很多人已经不满足于仅仅上网冲浪,而希望深入地参与其中。现在,拥有自己的Web网站已经成为一种潮流。虽然制作一个简单的网页并不困难,但是制作出超凡脱俗的网站就不那么容易了,因此我们特意为大家准备了最新网站设计软件Dreamweaver MX 2004的系列教程,希望对大家有所帮助。
通常在一个网站中会有几十甚至几百个风格基本相似的页面,如果每次都重新设定网 页结构以及相同栏目下的导航条、各类图标就显得非常麻烦,不过我们可以借助Dreamweaver MX 2004的模板功能来简化操作。其实模板的功能就是把网页布局和内容分离,在布局设计好之后将其存储为模板,这样相同布局的页面可以通过模板创建,因此能够极大提高工作效率。
一、制作模板
制作模板和制作一个普通的页面完全相同,只是不需要把页面的所有部分都制作完成,仅仅需要制作出导航条、标题栏等各个页面的公有部分,而把中间区域用页面的具体内容来填充。
第一步:先在Dreamweaver MX 2004中运行“File→New”命令,接着从图1所示的窗口中依次选定“Template page→HTML template”选项,点击“Create”按钮之后即可创建一个模板文件。
第二步:在页面设计视图下插入网页框架、导航条、Flash标题等所有页面公有的元素(图2),然后运行“File→Save”命令将这个模板保存下来。
小提示:可以先下载一个中意的网页,然后在Dreamweaver MX 2004中打开它,仅仅保留框架等元素之后通过“File→Save as Template”命令将其保存为模板,这样能够省去很多制作模板的时间。
为了避免编辑时候误操作而导致模板中的元素变化,模板中的内容默认为不可编辑,只有把某个区域或者某段文本设置为可编辑状态之后,在由该模板创建的文档中才可以改变这个区域。先用鼠标选取某个区域(也就是每个页面不同内容的区域),接着运行“Modify→Templates→New Editable Region”命令,并且在弹出的对话框中为这个区域设定一个名称,这样就完成了编辑区域的设置。
小提示:设定好编辑区域之后需要运行“File→Save”命令保存所做的修改。
二、使用模板
有了模板之后,接下来就要在编辑网页时候使用它们了。只要在Dreamweaver MX 2004主窗口中运行“File→New”命令即可看见图1所示的新建窗口,接着进入“Templates”标签即可查看到已经保存的模板,从中选取一种还可以在右部的预览区进行预览(图3),最后挑选一款中意的模板并点击下部“Create”按钮打开这个模板。
在打开的模板中,无法编辑的区域将呈高亮状态显示,但是有些位置是锁定区域,却不是高亮显示,这主要是因为图片正好盖住了背景的颜色。对于这种情况,可以运行“Edit→Preferences”命令,在弹出窗口的“Category”列表中选取“Highlighting”一项,接着在右部区域中选取“Locked regions”旁边的“Show”选项(图4),并且设定高亮显示色为蓝色,这样就可以很清楚地分辨出模板中的锁定区域了。
小提示:如果仍然看不见高亮显示效果,还可以依次选中“View→Visual Aids→
Invisible Elements”命令。
最后,我们只要在可编辑区域添加网页的内容就可以了,比如添加一些文字说明或者是插入相应的图片,最后通过“File→Save”命令保存页面即可。
三、修改和更换模板
在通过模板创建了若干个页面之后,如果需要更改页面或者增加栏目,再对所有的页面手工修改则非常麻烦,因此我们可以通过Dreamweaver MX 2004的模板修改功能来解决这个问题。比如我们对模板进行了修改之后,运行“File→Save”命令来保存模板,这时候会弹出提示框询问是否更新所有使用了该模板的页面(图5),确认之后就会显示出更新的页面总数以及更新的时间等信息。
另外,Dreamweaver MX 2004还提供了一个为网页更换模板的功能,这样更换模板有点像给人换衣服,只要把各种模板制作好,然后想穿哪件就穿哪件。不过模板也不是随便可以更换的,可以更换模板的条件是被更换的页面必须是通过模板创建的,而且页面中的可编辑区域个数和名称必须与要更换模板的可编辑区域个数和名称相一致。比如一个网页中有3个可编辑区域,名称分别为t1、t2、t3。另外还有一个模板,无论这个模板什么结构,只要它也有3个可编辑区域,并且名称也是t1、t2和t3,那么就可以用它来为原先的网页更换新模板,而页面中3个可编辑区域的内容则相应保持不变。具体的更换模板方法也很简单,只要运行“Windows→Templates”命令打开模板面板,此时可以从上部区域挑选合适的模板,然后点击“Apply To Page”按钮,这样就可以很快完成模板更换操作了。
小提示:利用这个功能可以为网站首页分别制作夏天和冬天两个版本,这样可以非常方便地更换模板。
其实模板的相关内容还很多,不过限于篇幅只能选取部分介绍,希望大家能够举一反三,彻底领会到模板的精妙所在。(赵江)
SQL循序渐进(12)HAVING子句
转自:网页制作大宝库 时间:2003-12-4 10:13:16
HAVING子句
下面先给出HAVING子句的语法:
SELECT column1, SUM(column2)
FROM \"list-of-tables\"
GROUP BY \"column-list\"
HAVING \"condition\";
这个HAVING子句允许你为每一个组指定条件,换句话说,可以根据你指定的条件来选择行。如果你想使用HAVING子句的话,它应该处再GROUP BY子句之后。
下面将以一个例子来解释HAVING子句。假设我们的employee表中包含雇员的name、departmen、salary和age。如果你想为每个部门中每个雇员选择平均工资的话,你可以使用下面的SQL语句:
SELECT dept, avg(salary)
FROM employee
GROUP BY dept;
当然,如果你还想只计算和显示salary大于20000的平均工资的话,你还可以加上HAVING子句:
SELECT dept, avg(salary)
FROM employee
GROUP BY dept
HAVING avg(salary) > 20000;
SQL循序渐进(11)GROUP BY子句
转自:网页制作大宝库 时间:2003-12-4 10:13:56
GROUP BY子句
首先讲讲GROUP BY 子句语法:
SELECT column1, SUM(column2)
FROM \"list-of-tables\"
GROUP BY \"column-list\";
这个GROUP BY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。当然最好解释的方法是给出一个例子啦:
假设我们将从employee表中搜索工资最高的列,可以使用以下的SQL语句:
SELECT max(salary), dept
FROM employee
GROUP BY dept;
这条语句将在每一个单独的部门中选择工资最高的工资。结果他们的salary和dept将被返回。
//传送参数: 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\’确认?’)\");
button.attributes.add(\"onclick\’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\’您是否确定要删除这条信息’);\"); break; default: break; } }
5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e) {
//点击表格打开 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
e.Item.Attributes.Add(\"onclick\’Default.aspx?id=\" + e.Item.Cells[0].Text + \"’);\"); }
//双击表格连接到另一页 //在itemDataBind事件中 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
string OrderItemID =e.item.cells[1].Text;
e.item.Attributes.Add(\"ondblclick\\"location.href=’../ShippedGrid.aspx?id=\" + OrderItemID + \"’\"); }
//双击表格打开新一页 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
string OrderItemID =e.item.cells[1].Text;
e.item.Attributes.Add(\"ondblclick\\"open(’../ShippedGrid.aspx?id=\" + OrderItemID + \"’)\"); }
★特别注意:【?id=】 处不能为 【?id =】6.表格超连接列传递参数
<asp:HyperLinkColumn Target=\"_blank\" headertext=\"ID号\" DataTextField=\"id\" NavigateUrl=\"aaa.aspx?id=’
<%# DataBinder.Eval(Container.DataItem, \"数据字段1\")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, \"数据字段2\")%>’ /> 正确的设置
+ \"&knowledgecontent=\" + DataBinder.Eval(Container,\"DataItem.KnowledgeContent\") %>'>
7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) {
e.Item.Attributes.Add(\"onclick\’#99cc00’; this.style.color=’buttontext’;this.style.cursor=’default’;\"); }
写在DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) {
e.Item.Attributes.Add(\"onmouseover\’#99cc00’; this.style.color=’buttontext’;this.style.cursor=’default’;\"); e.Item.Attributes.Add(\"onmouseout\’’;this.style.color=’’;\"); }
8.关于日期格式
日期格式设定
DataFormatString=\"{0:yyyy-MM-dd}\" //我觉得应该在itembound事件中
e.items.cell[\"你的列\"].text=DateTime.Parse(e.items.cell[\"你的列\"].text.ToString(\"yyyy-MM-dd\")) 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的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie
Cookie.Expires=[DateTime];
Response.Cookies(\"UserName\").Expires = 0
11.自定义异常处理
//自定义异常处理类 using System;
End Sub
因篇幅问题不能全部显示,请点此查看更多更全内容