ASP.NET 網頁製作教本 – 從基本語法學起

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第2章 Visual Basic 6.0编程基础 (第一部分)
計算機程式及實習 期末報告 題目:超級猜一猜
第4章 VB.NET程式與 網頁製作的應用 主講人: 姚奉緒 M
ASP.NET 網頁製作教本 -- 從基本語法學起
第八章 DataGrid 與 DataTable 瀏覽器 DataTable DataGrid 存取 顯示表格 暑資碩三 房玄博 報告.
ASP.NET 網頁製作教本 – 從基本語法學起
第13章 FTP檔案上傳、 自動傳送 報告人 M9153314 李育旻.
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
組長:呂淑君 組員:邱采王亭 吳仁傑 池姿霖 楊佩慈
四 VBScript编程基础.
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
《ASP.NET数据库网站设计教程(C#版)》
ASP VBScript 基础知识.
程式語言Visual Basic 變數的可視範圍
課程名稱:程式設計 授課老師:________
Ch11 檔案上傳及電子郵件 WEB程式設計.
ASP.NET 網頁製作教本 – 從基本語法學起
LINQ 建國科技大學 資管系 饒瑞佶.
第二章 Visual Basic语言基础.
滑鼠移動與按鍵事件 JavaScript 滑鼠移動與按鍵事件.
ASP.NET 網頁製作教本 – 從基本語法學起
程式語言 -Visual Basic 變數、常數與資料型態.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
ASP.NET 網頁製作教本 – 從基本語法學起
ASP.NET 網頁製作教本 – 從基本語法學起
ASP.NET 網頁製作教本 – 從基本語法學起
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
ASP.NET 網頁製作教本 – 從基本語法學起
Visual Basic 程序设计 教师:王 杨 电话:
第15章 豐富控制項.
網頁切換移轉 JS vs. ASP.NET.
第12章 VBA模块设计.
ASP.NET 網頁製作教本 – 從基本語法學起
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
第5章 .NET框架类 5.
主 讲 教 师:陆有军 Web技术与应用 第四章 内部对象 主 讲 教 师:陆有军
新觀念的 VB6 教本 第 6 章 資料型別.
硬體話機設定說明.
第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 繪出文字和圖形 12-3 載入與顯示圖形檔案 12-4 建立多媒體的動畫效果
Java 程式設計 講師:FrankLin.
Visual Basic程序设计.
網頁切換移轉 JS vs. ASP.NET.
第一單元 建立java 程式.
VS.NET 2003 IDE.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
第4章 ASP.NET的HTTP物件、輸出入與Cookie處理
Ch20. 計算器 (Mac 版本).
Pocket Access.
第18章 個人入口網站的建立 18-1入口網站的基礎 18-2 建立網站的搜尋引擎 18-3 網頁組件的個人化功能
第一個cordova project Cordova project建立與平台設定,均藉由cli(command line interface來完成 建立project請打開命令提示字元視窗應輸入下列命令 cordova create hello tw.edu.stust.mis.hello HelloWorld.
打地鼠(陣列版).
C# 基本語法、變數.
程序基础 2019/4/25.
第二章、第三章错题分析.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
期末考.
Controls.
DEV342 Visual Basic 2005: 应用程序框架 和高级语言特性
函數應用(二)與自定函數.
Dreamweaver 進階網頁製作 B 許天彰.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
Brief Guide of FrontPage
多站台網路預約系統之 AJAX即時資料更新機制
Test for R Data Processing & Graphics
第17章 PHP應用實例探討 17-1 PHP應用實例探討 17-2 圖片版的訪客計數 17-3 訪客留言簿 17-4 聊天室
InputStreamReader Console Scanner
Presentation transcript:

ASP.NET 網頁製作教本 – 從基本語法學起 第12章 訪客計數器、廣告迴旋板

12-1 訪客計數器

文字版訪客計數器 -- Application 物件版本 Tcount1.aspx <HTML> <BODY BGCOLOR=WHITE> <CENTER><H2>Tcount01.aspx -- 文字版訪客計數器 <HR></H2> 您是本站第 <%=Application("counter")%> 位貴賓! </BODY> </HTML> <script Language="VB" runat="server"> Sub Page_Load(sender As Object, e As EventArgs) Application.Lock Application("counter") = Application("counter") + 1 Application.UnLock End Sub </script>

Tcount1.aspx

文字版訪客計數器 -- 檔案版本 (Tcount2.aspx #1~14) #01 <%@ Import Namespace="System.IO" %> #02 #03 <HTML> #04 <BODY BGCOLOR=WHITE> #05 <CENTER><H2>Tcount02.aspx -- 文字版訪客計數器 <HR></H2> #06 您是本站第 <%=counter%> 位貴賓! #07 </BODY> #08 </HTML> #09 #10 <script Language="VB" runat="server"> #11 #12 Dim counter As Long = 1 ' 宣告一個計數器變數 #13 #14 Sub Page_Load(sender As Object, e As EventArgs)

文字版訪客計數器 -- 檔案版本 (Tcount2.aspx #15~31) #15 ' 進行鎖定,防止非同步更新 #16 Application.Lock #17 #18 Dim PathName As String = Server.MapPath("counter.txt") #19 #20 If File.Exists( PathName ) Then ' 判斷 counter.txt 是否存在 #21 ' 讀取 counter.txt 檔案中的計數器,然後指定給 counter 變數 #22 Dim sReader As StreamReader #23 sReader = New StreamReader( PathName, Encoding.Default ) #24 Dim S As String #25 S = sReader.ReadLine() #26 If Not S Is Nothing Then #27 counter = CLng( S ) + 1 ' 先加一,再指定給 counter 變數 #28 End If #29 sReader.Close() #30 End If#31

文字版訪客計數器 -- 檔案版本(Tcount2.aspx #32~42) #32 ' 將計數器的值寫回 counter.txt 檔案 #33 Dim sWriter As StreamWriter #34 sWriter = New StreamWriter( PathName, False, Encoding.Default ) #35 sWriter.Write( CStr(counter) ) #36 sWriter.Flush() #37 sWriter.Close() #38 #39 ' 解除鎖定 #40 Application.UnLock #41 End Sub #42 </script>

圖形訪客計數器第一版 顯示圖形的訪客計數器,例如 ,那麼可以把計數器的數值轉換成圖形計數器的 HTML 標示 。若計數器的數值等於 12:

PngCounter 函數 把數值轉換成圖形的 HTML 標示這個轉換的工作寫成以下的 PngCounter 函數: Function PngCounter( counter As Long ) As String Dim S, i, G   S = CStr( counter ) ' 先將數值轉成字串 S ' 逐一取字串S的每一個字元, 然後串成 <IMG SRC=?.png> 的圖形標示 For i = 1 to Len(S) G = G & "<IMG SRC=" & Mid(S, i, 1) & ".png Align=TextTop>" Next Return G End Function

PngCount.aspx 網頁

PngCount.aspx 網頁程式(1) <%@ Import Namespace="System.IO" %>   <HTML> <BODY BGCOLOR=WHITE> <CENTER><H2>PngCount.aspx -- 圖形訪客計數器 <HR></H2> 您是本站第 <%=PngCounter(counter)%> 位貴賓! </BODY> </HTML> <script Language="VB" runat="server"> Dim counter As Long = 1 ' 宣告一個計數器變數 Sub Page_Load(sender As Object, e As EventArgs) ' 進行鎖定,防止非同步更新 Application.Lock Dim PathName As String = Server.MapPath("counter.txt")

PngCount.aspx 網頁程式(2) If File.Exists( PathName ) Then ' 判斷 counter.txt 是否存在 ' 讀取 counter.txt 檔案中的計數器,然後指定給 counter 變數 Dim sReader As StreamReader sReader = New StreamReader( PathName, Encoding.Default ) Dim S As String S = sReader.ReadLine() If Not S Is Nothing Then counter = CLng( S ) + 1 ' 先加一,再指定給 counter 變數 End If sReader.Close() ' 將計數器的值寫回 counter.txt 檔案 Dim sWriter As StreamWriter sWriter = New StreamWriter( PathName, False, Encoding.Default ) sWriter.Write( CStr(counter) ) sWriter.Flush() sWriter.Close()

PngCount.aspx 網頁程式(1) ' 解除鎖定 Application.UnLock End Sub   Function PngCounter( counter As Long ) As String Dim S, i, G S = CStr( counter ) ' 先將數值轉成字串 S ' 逐一取字串S的每一個字元, 然後串成 <IMG SRC=?.gif> 的圖形標示 For i = 1 to Len(S) G = G & "<IMG SRC=" & Mid(S, i, 1) & ".png Align=TextTop>" Next Return G End Function  </script>

圖形訪客計數器第二版 每一個數字是一個獨立的圖檔,可能因不同圖檔下載情況不同的關係,造成以下現象:

NumToPng.apsx 網頁

PngCount2.aspx 網頁程式(1) <%@ Import Namespace="System.IO" %>   <HTML> <BODY BGCOLOR=WHITE> <CENTER><H2>PngCount2.aspx -- 圖形訪客計數器第二版 <HR></H2> 您是本站第 <Img Src="NumToPng.aspx?counter=<%=counter%>" Align=TextTop> 位貴賓! </BODY> </HTML> <script Language="VB" runat="server"> Dim counter As Long = 1 ' 宣告一個計數器變數 Sub Page_Load(sender As Object, e As EventArgs) ' 進行鎖定,防止非同步更新 Application.Lock

PngCount2.aspx 網頁程式(2) Dim PathName As String = Server.MapPath("counter.txt")   If File.Exists( PathName ) Then ' 判斷 counter.txt 是否存在 ' 讀取 counter.txt 檔案中的計數器,然後指定給 counter 變數 Dim sReader As StreamReader sReader = New StreamReader( PathName, Encoding.Default ) Dim S As String S = sReader.ReadLine() If Not S Is Nothing Then counter = CLng( S ) + 1 ' 先加一,再指定給 counter 變數 End If sReader.Close()

PngCount2.aspx 網頁程式(3) ' 將計數器的值寫回 counter.txt 檔案 Dim sWriter As StreamWriter sWriter = New StreamWriter( PathName, False, Encoding.Default ) sWriter.Write( CStr(counter) ) sWriter.Flush() sWriter.Close()   ' 解除鎖定 Application.UnLock End Sub </script>

PngCount2.aspx 網頁

NumToPng.aspx 的原始碼(1) <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Drawing" %> <%@ Import Namespace="System.Drawing.Imaging" %>   <script Language="VB" runat="server"> Sub Page_Load(sender As Object, e As EventArgs) Const PicWidth As Integer = 14 ' 若改變圖檔大小 Const PicHeight As Integer = 19 ' 請修改這兩行敘述 Dim counter As String = Request("counter") Const ThisPixelFormat = PixelFormat.Format24bppRgb Dim bmp As New Bitmap( Len(counter)*PicWidth, PicHeight, ThisPixelFormat ) Dim g As Graphics = Graphics.FromImage(bmp) Dim img As System.Drawing.Image

NumToPng.aspx 的原始碼(2) Dim I As Integer, gFile As String For I = 1 To Len(counter) gFile = Server.MapPath( Mid(counter, I, 1) & ".png") img = System.Drawing.Image.FromFile( gFile ) g.DrawImage( img, New Point(PicWidth*(I-1), 0) ) Next   Dim MyStream As New MemoryStream() bmp.Save( MyStream, ImageFormat.Png) MyStream.Seek(0, SeekOrigin.Begin ) Dim Buffer( MyStream.Length ) As Byte MyStream.Read(Buffer, 0, MyStream.Length ) MyStream.Close() Response.BinaryWrite(Buffer) End Sub  </script>

訪客計數器 Server 版 --使用資料庫來開發 counter.mdb資料庫「計數器」資料表結構如下:

counter.mdb 資料庫的「計數器」資料表的資料

dbcount.htm 的使用範例(1) <HTML> <BODY BGCOLOR=WHITE> <H2>使用 Server 版訪客計數器範例<HR></H2>   dbcount.aspx 放置於「本機」的 /kjaspx/ch12 目錄 <blockquote> ID=kjwang:<Img Src="/kjaspx/ch12/dbcount.aspx?ID=kjwang" Align=TextTop><P> ID=walter:<Img Src="/kjaspx/ch12/dbcount.aspx?ID=walter" Align=TextTop> </blockquote>

dbcount.htm 的使用範例 (2) dbcount.aspx 放置於 http://www.kjedu.com.tw/kjaspx/ch12 <blockquote> ID=kjwang:<Img Src="http://www.kjedu.com.tw/kjaspx/ch12/dbcount.aspx?ID=kjwang" Align=TextTop><P> ID=walter:<Img Src="http://www.kjedu.com.tw/kjaspx/ch12/dbcount.aspx?ID=walter" Align=TextTop> </blockquote> <HR> </BODY> </HTML>

dbcount.htm 網頁

12-2 廣告迴旋板

認識廣告迴旋板

AdRotator 廣告迴旋板

製作 AdRotator 廣告迴旋板的準備工作--網址 圖片所連結到的網址,也就是當上網者在圖片上按下滑鼠之後,所跳至的網頁。此一欄位可以設定成標準的網際網路網址,例如: http://www.kj.com.tw/2000/vb/ba/vbba6.htm

製作 AdRotator 廣告迴旋板的準備工作--文字敘述 圖片還沒有下載至瀏覽器之前,圖片外框所顯示的替代性文字,例如:

製作 AdRotator 廣告迴旋板的準備工作--加權(1) 加權在此是一個數字,用來表示此一廣告出現的機率,舉例來說,某一廣告迴旋板含有 4 則廣告,每一則廣告的加權都等於 1,那麼每一則廣告的出現率就等於 1÷(1+1+1+1),等於 25%,但如果第一則廣告的加權等於 3,而其他三則廣告的加權都等於 1,則第一則廣告的出現率將等於 3÷(3+1+1+1),等於 50%,而其他廣告的出現率則等於 1÷(3+1+1+1),等於17% 左右。

製作 AdRotator 廣告迴旋板的準備工作--加權(2) 「出現率」與「實際出現次數」的差異:上述的廣告出現率 25%(等於 1/4),是指進入網頁無限次之後,平均 4 次會出現 1 次,並不是說每 4 次就一定會出現 1 次,舉例來說,可能在前 4 次沒有出現半次(或前 4 次出現了 2 次),但經過 10000 次之後,出現次數卻是 2500 次左右。

每一則廣告所對應的圖檔、網址、文字敘述、及加權

AdRotator「排程檔」-- Adrot.xml (1) <?xml version="1.0" encoding="big5" ?> <Advertisements> <Ad> <ImageUrl>F8315.gif</ImageUrl> <NavigateUrl>ba/vbba6.htm</NavigateUrl> <AlternateText>新觀念的 Visual Basic 6.0 教本/AlternateText> <Impressions>1</Impressions> </Ad> <Ad> <ImageUrl>F8308.gif</ImageUrl> <NavigateUrl>api/vbapi.htm</NavigateUrl> <AlternateText>Visual Basic 6.0與 Windows API 講座</AlternateText> <Impressions>1</Impressions> </Ad>

AdRotator「排程檔」-- Adrot.xml (2) <Ad> <ImageUrl>F8316.gif</ImageUrl> <NavigateUrl>ex/vbex6.htm</NavigateUrl> <AlternateText>Visual Basic 6.0 實戰講座</AlternateText> <Impressions>1</Impressions> </Ad> <Ad> <ImageUrl>F8317.gif</ImageUrl> <NavigateUrl>db/vbdb6.htm</NavigateUrl> <AlternateText>Visual Basic 6.0 資料庫程式設計</AlternateText> <Impressions>1</Impressions> </Ad> <Advertisements>

佈置 AdRotator 控制元件 Adrot.aspx <Html> <Body BgColor="White"> <H3>使用 AdRotator 控制元件<HR></H3> <center> <Form runat="server">   <asp:AdRotator id="adrot1" BorderWidth="1" runat=server AdvertisementFile="Adrot.xml" /> </Form> </center><Hr> </Body> </Html>