關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

Winforms C# - Login and Logout Example Tutorial

Winform Login Example Tutorial

winforms login page

LoginPage.cs

Continue Reading

PHP, Larave, Nginx 設置Header允許請求 CORS 的幾種方式

跨域資源共享 CORS (Cross-origin resource sharing) 是一個 W3C 標準

這裡主要針對 php (Laravel) 以及 nginx 如何設置 CORS 進行說明

以及 Laravel 5.5 之後的版本自定義 cros Middleware 踩過的坑進行紀錄

首先,先看一般原生PHP設定 cors 的方式

Continue Reading

.NET WinForms C# 視窗 - MetroFramework UI 框架

MetroFramework 是一個 .NET WinForms 視窗開發UI模組

這裡簡單紀錄安裝及基本使用方式

https://thielj.github.io/MetroFramework/

安裝

透過 NuGet 套件管理來安裝 首先,在專案按右鍵> 管理 NuGet 套件 在瀏覽,搜尋 MetroFramework

下載 MetroModernUI 依 Dennis Magno

Continue Reading

GitLab 正式發文慶賀 ~ 微軟以 75 億美元收購 GitHub

GitLab 正式發文慶賀 ~ 微軟以 75 億美元收購 GitHub

GitHub 正式慶賀被微軟收購的消息,正式於 Github lab 官方部落格證實(2018 年 6 月 3 日)

Continue Reading

股票市場 - 信仰長期投資的人告訴你為什麼不要玩期貨

期貨越玩越輸 沒有可愛… 對散戶來說保證是惡夢 傷財傷神傷身又傷心 賠大錢是可以保證的

Continue Reading

股票市場 - 現金殖利率是甚麼?

現金殖利率 (Dividend yield),主要是針對定期存股領取利息的市場常用的分析指標

簡單來說,就是你買的股票價位,分配的股利有多少

計算方式是: 現金殖利率 = 每年股利/股價

例如,你買進一張股票價格為20元,如果現金股利每年發送 1 元,則現金殖利率就等於 5%

現金殖利越高,代表這張股票報酬率越高,一般就會將這種股票納入適合定存概念股

Continue Reading

注意! Google 為加速推動 Https 普及化,將把http 網站標記不安全警示

Google 安全策略: 您的網站若未使用SSL憑證的將被標記為不安全! Http 網站應全面升級 Htpps 加密連線

Google Chrome 官方部落格發布了一項瀏覽器安全指標,針對先前的一項 HTTP 標記為不安全以移除 Https 安全標示的 計畫書提到:

為什麼要使用 SSL Https 加密呢?

使用 SSL憑證讓網頁支援 Https 加密連線 可以讓使用者避免備中間人竊聽擷取隱私訊息及帳號密碼資訊,應該視為優先策略

Continue Reading

ASP.NET C# 不同瀏覽器在 buffer 緩衝區 與Response.Flush() 表現差異比較

ASP.NET C# 不同瀏覽器在 buffer 緩衝區 與Response.Flush() 表現差異比較

ASP 輸出內容到網頁的方式基本上有兩種

  1. 直接輸出
  2. 緩衝區輸出

直接輸出的方式,每次連線 server 都要執行程式

buffer 緩衝區輸出方式,則首次連線會需要執行程式,程式會將結果放一份在緩衝區,後續連線則是直接從緩衝區讀取數據

緩衝區+大量資料

在 ASP 載入頁面時,若遇到需載入大量內容的情況,若使用到緩衝區

server 端開始載入大量資料時,會需要一段時間將資料一筆一筆放入緩衝區,直到所有數據完成之後,才會在前端頁面產出

此時會耗費較久時間,才會將資料呈現在畫面上

緩衝區資料輸出的時間點

輸出緩衝區資料的方式有兩種: Response.End 或者 Response.Flush

Response.Clear 則是可以清除緩衝區的資料(清除後就無法再送到前端)

Response.Clear 通常都會搭配 Flush 一起使用

使用Flush 預先支出緩衝區內容

這時就可以運用 Response.Flush() 解決等待時間過久的問題

在使用 Response.Flush() 時,要先將 Response.BufferOutput 設定為 true,避免再運行過程中會出現問題

Response.Flush() 可以在資料存取到緩衝區的同時間,立即輸出緩衝區的資料,這時server會持續與頁面保持請求連線,當Flush 拋出資料時,就立即反映在頁面

蒐集瀏覽器資料的處理方式,在不同瀏覽器會有不同處理方式

Chrome, Firefox, Edge 在接收到資料後,就會立即進行渲染,當資料是屬於續傳類型,就會在畫面看到一筆一筆資料逐步出現 須特別留意的是,Firefox, Edge 必須要等到資料為256字元才會真正進行flush輸出緩衝資料 Chrome 則可以做到即時

IE11 則是會等待所有資料都蒐集完畢後,才會一次處理

清除緩衝區資料

透過 Response.Clear() 可以刪除緩衝區所有的內容,使用前同樣要先將 Response.BufferOutput 設定為 true,避免再運行過程中會出現問題

測試

關閉 buffer,直接輸出網頁端,資料畫一筆一筆出現

Continue Reading

用批次檔清除 Windows 暫存檔

在 windows 環境,可以透過批次檔方式一鑑清除暫存檔案,釋放空間

將下列內容儲存為 cleanner.bat

Continue Reading

MySQL - 取得十分鐘內、一小時內、一天內 的資料

MySQL 取得指定分鐘、指定小時或指定天數內的資料

方式介紹:

Continue Reading

股票市場 - LME (London Metal Exchange) 倫敦金屬交易所 簡介

LME 期貨 - Carry trade

LME (London Metal Exchange) 倫敦金屬交易所

提供鋁、銅、鉛、鋅、鎳和錫等期貨交易

(1877~today) 2012-06 被香港以 22 億美元收購

Continue Reading

Git 解決出現 warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

Git 解決出現 warning: LF will be replaced by CRLF … The file will have its original line endings in your working directory.

在 windows,git add 可能會出現 LF will be replaced by CRLF 錯誤訊息

warning: LF will be replaced by CRLF ... The file will have its original line endings in your working directory.

原因是因為 windows 所使用的換行符號是 CRLF

Git 會在提交的時候為了將換行符號統一,將 CRLF 轉換為 LF,並且會在偵測到需轉換時,會提出警示訊息

若不希望出現此錯誤警示,不要將 CRLF轉換為LF,則可以執行以下指令:

rm -rf .git
git config --global core.autocrlf false
git init
git add .

但原則上,不建議將這個動作關閉

Continue Reading

MySQL - 取得平均為 NULL 如何轉為0、以及計算總數方法

MySQL 取得平均級總數的方式,可以直接用現成的方法

AVG 以及 COUNT

這裡會另外再分享一個小技巧,說明如何將 AVG 取得結果為 NULL 如何轉為零

Continue Reading

股票市場 - 選擇權重點介紹 (2)

[投資人的正逆價差]

一般來說,投資人的輸贏都會符合 28 法則

在選擇權的市場中,投資人對未來市場預期可分為:

正價差 - 預期未來會漲,看多 逆價差 - 預期未來會跌,看空

買賣雙方都能接受的交易價格,就稱為均衡價格

因此,要透過選擇權獲利,通常都要有預期盤勢會有大震盪才會有獲利空間

一般股市平穩的期間,只需要買賣期貨即可

或者可以選擇用 賣出買權、賣出賣權 來獲利

[買權 賣權]

不管買權或賣權,通常我們都會選擇買方身分

買權 (CALL Option) 未來看漲 - 買方 (買進買權 LONG CALL) : 可以在未來購買特定價格的權力 做多 - 賣方 (賣出買權 SHORT CALL) : 必須履行「賣出」「空頭期貨合約」的義務 放空

賣權 (PUT Option) 未來看空 - 買方 (買進賣權 LONG PUT) : 可以在未來賣出特定價格的權力 做空 - 賣方 (賣出賣權 SHORT PUT): 必須履行「買入」「多頭期貨合約」的義務 做多

買權(CALL) 賣權(PUT)
選擇權買方 付出權利金,取得未來買入指定價位股票權力,未來股價上漲即獲利
單次獲利金額高
獲利機率較低
若虧損,頂多賠掉權利金
付出權利金,取得未來賣出指定價位股票權力,未來股價下跌即獲利
單次獲利金額低
獲利機率較大
若虧損,金額較大
選擇權賣方 收取權利金,未來須保證買進履約指定價位股票,未來股價下跌即獲利
單次獲利金額高
獲利機率較低
若虧損,頂多賠掉權利金
收取權利金,未來須保證賣出履約指定價位股票,未來股價上漲即獲利
單次獲利金額低
獲利機率較大
若虧損,金額較大

[權利金(Premium)與保證金]

權利金會受到履約價影響,以CALL為例,買低權利金就高 以PUT為例,賣高(用比較高去放空)權利金就高

Continue Reading

ASP.NET C# - URL 網址參數解析,取得網址參數

ASP.NET C# URL 網址參數解析,取得網址參數

ASP.NET 提供許多 Request 屬性,可以對URL進行分析,取得網址參數

例如,這裡示範網址為:

https://my.url.com:8080/Detail/Page/List.aspx/showmore?mid=20#main

底下分別列出解屬性及解析結果:

參數 結果
Request.ApplicationPath /
Request.Url.Host my.url.com
Request.Url.Port 8080
Request.Url.Scheme https
Request.Url.Authority my.url.com:8080
Request.Path /Detail/Page/List.aspx/showmore
Request.Url.LocalPath /Detail/Page/List.aspx/showmore
Request.PathInfo /showmore
Request.Url.Query ?mid=20
Request.CurrentExecutionFilePath /Detail/Page/List.aspx
Request.FilePath /Detail/Page/List.aspx
Request.RawUrl /Detail/Page/List.aspx/showmore?mid=20
Request.Url.PathAndQuery /Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsoluteUri https://my.url.com:8080/Detail/Page/List.aspx/showmore?mid=20
Request.Url.AbsolutePath /Detail/Page/List.aspx/showmore

取得系統路徑

參數 結果
Request.PhysicalPath C:\wwwroot\Detail\Page\List.aspx
System.IO.Path.GetDirectoryName(Request.PhysicalPath) C:\wwwroot\Detail\Page
Request.PhysicalApplicationPath C:\wwwroot\
System.IO.Path.GetFileName(Request.PhysicalPath) List.aspx

解析參數

參數 結果
Request.Url.Segments /, Detail/, Page/, List.aspx/, showmore

Continue Reading

ASP.NET HTML (UrlEncode, UrlDecode, HtmlEncode, HtmlDecode)相關編碼方法

ASP.NET HTML相關編碼方法

ASP.NET 針對HTML相關的編碼,可以分成網址編碼、網頁內容編碼兩部分

這裡分別記錄這些常見的編碼方式,提供參考

Continue Reading

如何解決 IIS 空白畫面或執行ASP.NET 時出現【處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"】

通常在新的環境,發布ASP.NET網頁到 wwwroot 之後

最常見的異常狀況有兩種:

  1. IIS 空白畫面
  2. 處理常式 “PageHandlerFactory-Integrated” 的模組清單中有錯誤的模組 “ManagedPipelineHandler”

這裡針對這兩種方式來進行說明,如何解決

[IIS空白]

IIS 空白通常是靜態網頁選項未設定

因此,先開啟控制台 > 程式集 點選 解除安裝程式

IIS 空白畫面

接著點選 開啟或關閉windows功能

IIS 空白畫面

在功能選項中,將 Internet Information Services > World Wide Web 服務 > 靜態內容 勾選

IIS 空白

接著再開啟畫面,看看是否還是空白

IIS 空白 - 在勾選靜態內容後,畫面仍是空白該如何處理

首先,在wwwroot目錄新增一個 index.html ,我們放入簡單的顯示文字

index.html

<!DOCTYPE html>
<html>
<head>
	<title>Hello world</title>
</head>
<body>
Hello world
</body>
</html>

若有在畫面中看到 Hello World,就表示靜態內容已經能正常運作瞜

可以刪除 index.html ,重新發布看看是否已經正常

若 ASP.NET 發布仍出現白畫面問題,則試試接下來得解決方式

Continue Reading

ASP.NET C# - MS SQL Server 連線

ASP.NET C# - MS SQL Server 連線

ASP.NET 連接 MS SQL Server 方式

首先,載入 System.Data.SqlClient 空間命名,取得與 MS SQL Server 連線查詢處理相關功能

Continue Reading

ASP.NET C# - Server Controls

ASP.NET C# - Server Controls

Microsoft 採取跟 Windows Form 應用程式一樣的方式來建立網站應用程式,

動態處理部分會放在 .aspx,事件處理程式則會將程式碼後置(code-behind) 放在 .cs或.vb

所以都必須先建立一個 form 表單範圍,並且添加 runat=“server”

在 form 內部,就能開始添加控制項,或者事件驅動,

因此,想在HTML元素進行 server side處理,就要向這些元素添加 runat=“server” 屬性,

以及註冊 ID 作為辨識,ID在同一個webForm中不可以重複

例如,在 server side 賦予超連結的url值

在 C# 檔案 C#

mylink.HRef = "http://google.com";

在HTML 表單中,超連結標籤新增了HtmlAnchor 服務器控制向之後,

server side就會透過id來辨識,操控賦予值

aspx

<form id="form1" runat="server">
	<a id="mylink" runat="server">my link</a>
</form>

標準控制項

前面提到,在 Web 設計會透過一個 form 的區塊來處理動態資料

微軟提供相當多的標準控制項,可以直接應來建立各種網頁功能,例如: Label, TextBox, Button, LinkButton, ImageButton, HyperLink, DropDownList, ListBox, CheckBox, CheckBoxList, RadioButton, RadioButtonList, Image, ImageMap, Table, BulletedList, HiddenField, Literal, Calendar, AdRotator, FileUpload, Wizard, Xml, MultiView, Panel, PlaceHolder, View, Substitution, Localize

Continue Reading

ASP.NET C# 判斷 HTTP REQUEST 請求來源 KEY 是否存在

ASP.NET C# 判斷 HTTP REQUEST 請求來源 KEY 是否存在

HTTP 請求來源可以為 POST 或 GET 類型,並且夾帶 key 與 value

常用到會先檢查是否存在 key

若不存在則返回錯誤,或者對應處理,例如表單欄位未填

若存在key才進行正常程序,例如儲存表單

有幾種方式可以用來檢查

這裡以取得GET的參數來說明如何檢查 Key 是否存在

Continue Reading