<?php if($_POST["test"]) foreach($_POST["test"] as $var) echo $var."|"; print_r($_POST["test"]); ?> <form name="form" method="post" action="test.php"> <input type=checkbox name=test[] value=001>001<br /> <input type=checkbox name=test[] value=002>002<br /> <input type=checkbox name=test[] value=003>003<br /> <input type=checkbox name=test[] value=004>004<br /> <input type=checkbox name=test[] value=005>005<br /> <input type="submit" value="submit"> </form>
2012年11月30日 星期五
checkbox 多重選取
test.php
2012年11月23日 星期五
office2010 及 office2013 kms 認證 bat
@echo off
if exist "%programfiles(x86)%\microsoft office\office14\ospp.vbs" (
cscript "%programfiles(x86)%\microsoft office\office14\ospp.vbs" /osppsvcrestart
cscript "%programfiles(x86)%\microsoft office\office14\ospp.vbs" /sethst:your-kms-server
cscript "%programfiles(x86)%\microsoft office\office14\ospp.vbs" /act
)
if exist "%programfiles%\microsoft office\office14\ospp.vbs" (
cscript "%programfiles%\microsoft office\office14\ospp.vbs" /osppsvcrestart
cscript "%programfiles%\microsoft office\office14\ospp.vbs" /sethst:your-kms-server
cscript "%programfiles%\microsoft office\office14\ospp.vbs" /act
)
if exist "%programfiles(x86)%\microsoft office\office15\ospp.vbs" (
cscript "%programfiles(x86)%\microsoft office\office15\ospp.vbs" /sethst:your-kms-server
cscript "%programfiles(x86)%\microsoft office\office15\ospp.vbs" /act
)
if exist "%programfiles%\microsoft office\office15\ospp.vbs" (
cscript "%programfiles%\microsoft office\office15\ospp.vbs" /sethst:your-kms-server
cscript "%programfiles%\microsoft office\office15\ospp.vbs" /act
)
PAUSE
因應office2013上市,修改了原本office2010.bat的檔案
同時,發現之前的流程只會執行一次,如果同時安裝各種版本的就會無法同時認證
所以改了一下bat檔執行的流程
2012年11月20日 星期二
在 windows 2008 R2 上安裝 KMS server 更新
1.安裝windows 2008 R2 並完成所有更新。
2.由下列網址下載 KMS host 更新,以支援 windows 8 及 2012 啟動認證
http://support.microsoft.com/kb/2757817/en-us
3.安裝完成後執行以下兩行指令,啟動 KMS host
cscript c:\windows\system32\slmgr.vbs -ipk "your host key"
cscript c:\windows\system32\slmgr.vbs -ato
ps:
(1) windows 8 host key 支援 windows 8, windows 7, windows vista 啟動認證
(2) windows 2012 host key 支援 windows 2012, windows 2008R2, windows 2008, windows 8, windows 7, windows vista 啟動認證
資料來源:http://technet.microsoft.com/en-us/library/jj134256.aspx
4.由下列網址下載 Office 2010 啟動程式
http://www.microsoft.com/en-us/download/details.aspx?id=25095
執行 KeyManagementServiceHost.exe
然後輸入 "your host key"
5.由下列網址下載 Office 2013 啟動程式
http://www.microsoft.com/en-us/download/details.aspx?id=35584
執行 office2013volumelicensepack_en-us_x86.exe
然後輸入 "your host key"
2.由下列網址下載 KMS host 更新,以支援 windows 8 及 2012 啟動認證
http://support.microsoft.com/kb/2757817/en-us
3.安裝完成後執行以下兩行指令,啟動 KMS host
cscript c:\windows\system32\slmgr.vbs -ipk "your host key"
cscript c:\windows\system32\slmgr.vbs -ato
ps:
(1) windows 8 host key 支援 windows 8, windows 7, windows vista 啟動認證
(2) windows 2012 host key 支援 windows 2012, windows 2008R2, windows 2008, windows 8, windows 7, windows vista 啟動認證
資料來源:http://technet.microsoft.com/en-us/library/jj134256.aspx
4.由下列網址下載 Office 2010 啟動程式
http://www.microsoft.com/en-us/download/details.aspx?id=25095
執行 KeyManagementServiceHost.exe
然後輸入 "your host key"
5.由下列網址下載 Office 2013 啟動程式
http://www.microsoft.com/en-us/download/details.aspx?id=35584
執行 office2013volumelicensepack_en-us_x86.exe
然後輸入 "your host key"
2012年11月9日 星期五
Q11498: Division of Nlogonia
原文
中譯
#include "stdio.h" int main() { int K,N,M,X,Y; while( scanf(" %d",&K) != EOF && K != 0 ) { scanf(" %d %d",&N,&M); while( K-- ) { scanf(" %d %d",&X,&Y); if( X == N || Y == M ) printf("divisa"); else { if( M - Y > 0 ) printf("S"); if( M - Y < 0 ) printf("N"); if( N - X > 0 ) printf("O"); if( N - X < 0 ) printf("E"); } printf("\n"); } } return 0; }
Q11494: Queen
原文
中譯
#include "stdio.h" int main() { int x1,x2,y1,y2; while( 1 ) { scanf(" %d %d %d %d",&x1,&y1,&x2,&y2); if( x1 == 0 && x2 == 0 && y1 == 0 && y2 == 0 ) break; if( x1 == x2 && y1 == y2) printf("0\n"); else if( (x1 - x2)*(x1 - x2) == (y1 - y2)*(y1 - y2) || x1 - x2 == 0 || y1 - y2 == 0) printf("1\n"); else printf("2\n"); } return 0; }
Q11479: Is this the easiest problem?
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2474
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11479.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2474
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11479.htm
#include "stdio.h" int main() { int num,tmp = 1; long long int in[3]; scanf( "%d",&num); while( num-- ) { scanf(" %lld %lld %lld",&in[0],&in[1],&in[2]); if( in[0] + in[1] <= in[2] || in[0] + in[2] <= in[1] || in[1] + in[2] <= in[0] ) printf("Case %d: Invalid\n",tmp); else if( in[0] == in[1] && in[1] == in[2] ) printf("Case %d: Equilateral\n",tmp); else if( in[0] == in[1] || in[1] == in[2] || in[0] == in[2]) printf("Case %d: Isosceles\n",tmp); else printf("Case %d: Scalene\n",tmp); tmp++; } return 0; }
Q11398 - The Base-1 Number System
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2393
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11398.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2393
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11398.htm
#include "stdio.h" int main() { int str[50],num = 0,i,tmp = 0; char in[40],flag = 0; while( 1 ) { scanf(" %s",in); if( in[0] == '~' ) break; if( in[0] == '#' ) { int j = 1,out = 0; for(i = tmp - 1;i > -1;i--) { out += str[i] * j; j *= 2; } printf("%d\n",out); num = 0; tmp = 0; for(i = 0;i < 50;i++) str[i] = 0; continue; } if( strlen(in) == 1 ) flag = 1; else if( strlen(in) == 2 ) flag = 0; else { for(i = 0;i < strlen(in) - 2;i++) { str[tmp] = flag; tmp++; } } num++; } return 0; }
2012年11月8日 星期四
Q11369: Shopaholic
原文
中譯
#include "stdio.h" int quicksort(int p[],int left,int right) { if( left >= right ) return 0; int i,j,s,tmp; s = p[left]; i = left + 1; j = right; while( 1 ) { while( i < right && p[i] >= s ) i++; while( j > left && p[j] <= s ) j--; if( i >= j ) break; tmp = p[i]; p[i] = p[j]; p[j] = tmp; } tmp = p[left]; p[left] = p[j]; p[j] = tmp; quicksort(p,left,j - 1); quicksort(p,j + 1,right); return 0; } int main() { int num; scanf(" %d",&num); while( num-- ) { int i,j,n,p[20000]={0},save = 0,tmp; scanf(" %d",&n); for(i = 0;i < n;i++) { scanf(" %d",&p[i]); } quicksort(p,0,n - 1); for(i = 2;i < n;i+=3) { save += p[i]; } printf("%d\n",save); } return 0; }
2012年11月5日 星期一
Q11364: Parking
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2349
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11364.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2349
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11364.htm
#include "stdio.h" int main() { int t,n; scanf(" %d",&t); while( t ) { int i,min=100,max=0,x; scanf(" %d",&n); for(i = 0;i < n;i++) { scanf(" %d",&x); if( x > max ) max = x; if( x < min ) min = x; } printf("%d\n",(max - min) * 2); t--; } return 0; }
2012年11月2日 星期五
Q11332: Summing Digits
原文
中譯
#include "stdio.h" int f(int n) { int tmp = 0; while( n ) { if( n >= 10 ) tmp += n % 10; else tmp += n; n = n / 10; } if( tmp >= 10 ) return f(tmp); else return tmp; } int main() { int n; while (scanf(" %d",&n) != EOF && n ) { printf("%d\n",f(n)); } return 0; }
Q11219: How old are you?
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2160
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11219.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2160
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11219.htm
#include "stdio.h" int main() { int T,D,M,Y,d,m,y,DAYS,days,times = 1; scanf(" %d",&T); while ( times <= T ) { scanf(" %d/%d/%d",&D,&M,&Y); scanf(" %d/%d/%d",&d,&m,&y); DAYS = Y * 12 * 31 + (M - 1) * 31 + D; days = y * 12 * 31 + (m - 1) * 31 + d; if( DAYS - days < 0) printf("Case #%d: Invalid birth date\n",times); else if( DAYS - days >= 131 * 12 * 31 ) printf("Case #%d: Check birth date\n",times); else { printf("Case #%d: %d\n",times,(DAYS - days) / (12 * 31)); } times++; } return 0; }
Q11204: Musical instruments
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2145
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11204.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2145
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11204.htm
#include "stdio.h" int main() { int num,i,j,k,total; scanf(" %d",&num); for(i = 0;i < num;i++) { int N,M,tmp,first[32]={0},times = 1; scanf(" %d %d",&N,&M); for(j = 0;j < M;j++) { for(k =0;k < N;k++) { scanf(" %d",&tmp); if( tmp == 1 ) first[k] += 1; } } for(j = 0;j < N;j++) { if( first[j] > 0) { times *= first[j]; } } printf("%d\n",times); } return 0; }
Q11185: Ternary
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2126
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11185.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2126
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11185.htm
#include "stdio.h" int main() { int N; while( scanf(" %d",&N) ) { int q[1000],i = 0,j; if( N < 0 ) break; if( N == 0) q[0] = 0; while( N > 0 ) { q[i] = N % 3; N = N / 3; if( N == 0 ) break; i++; } for(j = i;j >= 0;j--) { printf("%d",q[j]); } printf("\n"); } return 0; }
Q11172: Relational Operators
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2113
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11172.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2113
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11172.htm
#include "stdio.h" int main() { int num,a,b; scanf(" %d",&num); while( num ) { scanf(" %d %d",&a,&b); if( a > b ) printf(">\n"); if( a < b ) printf("<\n"); if( a == b ) printf("=\n"); num--; } return 0; }
Q11059: Maximum Product
原文
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2000
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11059.htm
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2000
中譯
http://luckycat.kshs.kh.edu.tw/homework/q11059.htm
#include "stdio.h" int main() { int N,S[20],num = 1; while( scanf(" %d",&N) != EOF && N) { int i,j,k; long long int P; for(i = 0;i < N;i++) { scanf(" %d",&S[i]); if(i == 0) P = S[i]; else { for(j = 0;j <= i;j++) { long long int tmp = 1; for(k = j;k <=i;k++) tmp *= S[k]; if( P < tmp ) P = tmp; } } } if( P < 0 ) P = 0; printf("Case #%d: The maximum product is %lld.\n\n",num,P); num++; } return 0; }
2012年10月30日 星期二
使用HttpWebRequest抓取檔案
using System; using System.IO; using System.Net; namespace test { class Program { static void Main(string[] args) { try { string url = "http://192.168.1.1/test.txt"; HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url); Request.Timeout = 5; HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); Stream dataStream = Response.GetResponseStream(); byte[] buffer = new byte[8192]; FileStream fs = new FileStream("C:\\test.txt",FileMode.Create,FileAccess.Write); int size = 0; do { size = dataStream.Read(buffer, 0, buffer.Length); if (size > 0) fs.Write(buffer, 0, size); } while (size > 0); fs.Close(); Response.Close(); Console.WriteLine("Get File Done!!\n"); Console.ReadKey(); } catch(WebException ex) { Console.WriteLine("Get Nothing!!\n"); Console.ReadKey(); } } } }
2012年10月12日 星期五
2012年10月11日 星期四
netsh 開放特定ip通過防火牆連線特定port
開放
23:開放port
192.168.0.0/16:開放ip(網段)
關閉(移除)
action=block 封鎖
netsh advfirewall firewall add rule name="pass" protocol=TCP localport=23 action=allow remoteip=192.168.0.0/16 enable=yes dir=inpass:防火牆規則名稱,移除時會用到
23:開放port
192.168.0.0/16:開放ip(網段)
關閉(移除)
netsh advfirewall firewall del rule name="pass"action=allow 開放
action=block 封鎖
2012年10月5日 星期五
php 呼叫外部程式
當程式中有需要呼叫外部程式,且不需等待外部程式跑完,即繼續執行時可用以下方法:
$file = popen("php test.php","r"); pclose($file);
2012年10月1日 星期一
netsh 防火牆開/關
WinXP
關閉防火牆
netsh firewall set opmode mode=disable profile=ALL
開啟防火牆
netsh firewall set opmode mode=enable profile=ALL
Win7也可用以上指令開關,但會提示指令已過時,建議改用以下指令:
關閉防火牆
netsh advfirewall set currentprofile state off
開啟防火牆
netsh advfirewall set currentprofile state on
關閉防火牆
netsh firewall set opmode mode=disable profile=ALL
開啟防火牆
netsh firewall set opmode mode=enable profile=ALL
Win7也可用以上指令開關,但會提示指令已過時,建議改用以下指令:
關閉防火牆
netsh advfirewall set currentprofile state off
開啟防火牆
netsh advfirewall set currentprofile state on
2012年9月18日 星期二
使用session傳遞資料
啟動session session_start(); 釋放所有變數 session_unset(); session_destroy(); //方法一:直接指定 $_SESSION['data'] = "true"; //方法二:使用陣列變數 $_SESSION['phone'] = array(); while( $i = mysql_fetch_assoc($result) ) { $_SESSION['phone'][] = $i['unit'].",".$i['name'].",".$i['ext']; } //讀取陣列變數的方法 foreach($_SESSION['phone'] as $value) { $ar = explode(",",$value); echo $ar[0].$ar[1].$ar[2]; }
從csv檔讀進資料庫
程式碼: $db = mysql_connect("ip","account","password"); $db_selected = mysql_select_db("mydb",$db); mysql_query("SET NAMES 'utf8'"); $file = fopen("mycsv.csv","rb"); while(!feof($file)) { $line = fgets($file); $line = iconv("big5","utf-8",$line); $tmp = explode(",",$line); $sql = "INSERT INTO data (data1,data2,data3) VALUES ('$tmp[0]','$tmp[1]','$tmp[2]')"; mysql_query($sql,$db); } mysql_close($db); csv檔由xls檔另存新檔成csv(逗號分隔),即可直接匯入。
2012年5月25日 星期五
以系統管理員身分執行程式
專案->加入新項目->應用程式資訊清單檔案 (新增)
會新增一個 app.manifest 檔案
將裡面的
〈requestedexecutionlevel level="requireAdministrator" uiaccess="false"〉〈/requestedexecutionlevel〉
會新增一個 app.manifest 檔案
將裡面的
〈requestedexecutionlevel level="asInvoker" uiaccess="false"〉〈/requestedexecutionlevel〉
修改為〈requestedexecutionlevel level="requireAdministrator" uiaccess="false"〉〈/requestedexecutionlevel〉
2012年5月24日 星期四
pf指令操作
啟動pf
pfctl -e
停止pf
pfctl -d
重新載入conf
pfctl -f /etc/pf.conf
檢查conf是否正確(不載入)
pfctl -nf /etc/pf.conf
列出即時性的統計資料
pfctl -si
列出各項連線的限制
pfctl -sm
列出即時的連線資料
pfctl -ss
列出table內的資料
pfctl -t table -T show
2012年5月9日 星期三
netsh 設定 DNS
顯示目前dns server的設定
netsh interface ip show dnsservers
設定第一順位的dns
netsh interface ip add dns "區域連線" 120.125.2.1 index=1
刪除已設定的dns
netsh interface ip delete dns "區域連線" 120.125.2.1
dns由dhcp自動設定
netsh interface ip set dnsserver "區域連線" source=dhcp
ps: "區域連線"依照每台電腦的網卡更動
netsh interface ip show dnsservers
設定第一順位的dns
netsh interface ip add dns "區域連線" 120.125.2.1 index=1
刪除已設定的dns
netsh interface ip delete dns "區域連線" 120.125.2.1
dns由dhcp自動設定
netsh interface ip set dnsserver "區域連線" source=dhcp
ps: "區域連線"依照每台電腦的網卡更動
2012年5月4日 星期五
excel 固定欄位運算
如果公式是 ( =A1*A2*A3 ),複製貼上後會變成 ( =A2*A3*A4 )...
這時候加上符號 $ ,變成 ( =$A$1*$A$2*A3 ),則複製貼上後只有A3會跟著不同儲存格的位置變動。
A1*A2*A3
= product(A1,A2,A3) #單項相乘
= product(A1:A3) #範圍相乘
2012年5月3日 星期四
判斷瀏覽器
$str = $_SERVER["HTTP_USER_AGENT"]; if(strpos($str,"MSIE")) $browser = "IE"; else if(strpos($str,"Firefox")) $browser = "FF"; else if(strpos($str,"Chrome")) $browser = "CH"; else if(strpos($str,"Opera")) $browser = "OP"; else if(strpos($str,"Konqueror")) $browser = "Kq"; else if(strpos($str,"iPhone")) $browser = "iPhone"; else if(strpos($str,"iPad")) $browser = "iPad"; else if(strpos($str,"Android")) $browser = "Android"; else if(strpos($str,"Safari")) $browser = "Sa"; else { $browser = "other"; }
2012年3月30日 星期五
kms認證失敗
有時候在做kms認證的時候,雖然版本都對,可是kms認證就是會失敗,
這時候可以依照下面的網頁,修改預設的序號,這樣再做認證就會成功了。
http://technet.microsoft.com/en-us/library/ff793421.aspx
這時候可以依照下面的網頁,修改預設的序號,這樣再做認證就會成功了。
http://technet.microsoft.com/en-us/library/ff793421.aspx
2012年3月21日 星期三
Debian 安裝 domjudge 步驟
1. 安裝相關軟體
sudo apt-get install gcc g++ make libcurl4-gnutls-dev mysql-server apache2 php5 php5-cli libapache2-mod-php5 php5-mysql php-geshi ntp sudo procps sharutils phpmyadmin xsltproc libboost-regex-dev libgmp3-dev linuxdoc-tools transfig texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
2. 安裝相關軟體
sudo apt-get install make sudo php5-cli php5-mysql ntp xsltproc procps sharutils gcc g++ gcj openjdk-6-jre-headless openjdk-6-jdk ghc fp-compiler
3. 安裝瀏覽器
sudo apt-get install chromium-browser
4. 抓取source code
wget -c http://downloads.sourceforge.net/project/domjudge/domjudge/3.2.2/domjudge-3.2.2.tar.gz
5. 解壓縮
tar zxvf domjudge-3.2.2.tar.gz
6. confige 環境
cd domjudge-3.2.2/
./configure
7. 編譯code
make domserver judgehost docs
9. 安裝domserver
sudo make install-domserver
10. 安裝judgehost
sudo make install-judgehost
11. 安裝docs
sudo make install-docs
12. 建立資料庫
cd /opt/domjudge/domserver/bin/
./dj-setup-database -u root -r install
14. 建立web路徑
sudo ln -s /opt/domjudge/domserver/etc/apache.conf /etc/apache2/conf.d/domjudge.conf
15. 重啟apache
sudo apache2ctl graceful
16. 建立web admin 帳號
cd /opt/domjudge/domserver/etc/
htpasswd htpasswd-jury admin
17. cd /opt/domjudge/judgehost/bin/
sudo ./dj_make_chroot /opt/chroot/ i386
18. cd /opt/domjudge/judgehost/lib/judge/
sudo gedit chroot-startstop.sh
edit CHROOTORIGINAL="/opt/chroot"
19. cd /opt/domjudge/judgehost/etc/
sudo gedit judgehost-config.php
edit define('CHROOT_SCRIPT', 'chroot-startstop.sh');
20. 啟動編譯程式
/opt/domjudge/judgehost/bin/judgedaemon
PS: manual裡寫需 sudo visudo ,加上
judge ALL=(root) NOPASSWD: /opt/domjudge/judgehost/bin/runguard *
judge ALL=(root) NOPASSWD: /bin/cp -pR /dev/null ./dev/null
judge ALL=(root) NOPASSWD: /bin/mount -n -t proc -bind /proc proc
judge ALL=(root) NOPASSWD: /bin/umount /*/proc
judge ALL=(root) NOPASSWD: /bin/mount -bind /opt/chroot/*
judge ALL=(root) NOPASSWD: /bin/umount /opt/domjudge/judgehost/judgings/*
但仍會出現需要輸入sudo密碼...
故先加上
judge ALL=(ALL) NOPASSWD:ALL
可先正常運作,之後再查明原因。
訂閱:
文章 (Atom)