標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (120) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (131) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2015年3月24日 星期二

在 Windows 7 上安裝 Apache + PHP + PostgreSQL

http://yuanfarn.blogspot.tw/2013/06/windows-7-apache-php-postgresql.html

前幾天寫了篇 "在 Debian 上安裝 Apache + PHP + PostgreSQL"。這兩天突然想到,也許有些讀者只是單純想試試 Apache 和 PostgreSQL,於是乾脆也在自己的 Windows 7 上來試試如何安裝 Apache + PHP + PostgreSQL 了。
其實,在 Windows 7 上安裝也非常簡單,其中 Apache 和 PHP 只是將下載回來的壓縮檔解開,然後修改幾個設定即可。
安裝 Apache HTTP Server
Apache 目前最新的版本為 2.4.4,不過讀者可能會發現在 Apache 的網站 http://httpd.apache.org/ 上找不到 Windows 版的安裝程式,必須在 Apache Lounge (http://www.apachelounge.com/) 下載 Windows 的版本。
下載取得 httpd-2.4.4-win32.zip 這個檔案,然後將它解壓縮到 C:\,基本上會得到 C:\Apache24 這個目錄。
安裝 PHP
從 PHP 的網站 http://php.net/ 下載取得 PHP 5.4 (5.4.16) 的 VC9 x86 Thread Safe 版本,將它解壓縮並變更目錄名稱為 C:\php。
設定 Apache HTTP Server 與 PHP
從 PHP 5.4.10 這個版本之後,基本的設定如下:
首先編輯 C:\Apache24\conf\httpd.conf 這個檔案,然後加入以下幾行:
LoadModule php5_module "c:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
接著找到 Directory index 的設定,並加入 index.php 這項:
DirectoryIndex index.html index.php
向 Windows 註冊 Apache HTTP Server
以系統管理員的身份執行命令提示字元 (Command prompt),然後執行以下這行:
C:\apache24\bin\httpd -k install
接著再執行將它指定為手動啟動:
sc config Apache2.4 start= demand
不過通常我會將 demand 改成 auto,讓 Apache HTTP Server 自動啟動。
最後,將 C:\Apache24、C:\Apache24\bin 及 C:\PHP 這幾個路徑加到環境變數的 PATH 裡。
修改 PHP 的設定
在 C:\PHP 找到 php.ini-development 這個檔案,複製一份並更名為 php.ini,然後修改如下:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"

extension=php_pgsql.dll
基本上,要取消 PostgreSQL 這個 DLL extension 的註解。此外,也可以再取消幾個 extension 的註解,如下:
extension=php_bz2.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_mbstring.dll
命令提示字元 (Command prompt),執行以下這行確認載入的模組:
php -m
到這裡,基本上已經完成 Apache HTTP Server 與 PHP 的設定了,可以在 C:\Apache24\htdocs 編輯一個 info.php,填入以下內容:
<?php
phpinfo();
?>
然後,用瀏覽器開啟 http://localhost/info.php 查看。
安裝 PostgreSQL
從 PostgreSQL 的網站 http://www.postgresql.org/ 下載 Windows 版的安裝程式。根據網頁上的說明,將從 EnterpriseDB 的網站取得 9.2.4 版的安裝程式。
雙擊下載回來的 postgresql-9.2.4-1-windows.exe 安裝,並變更目錄到 C:\。因此,安裝完成會得到 C:\PostgreSQL\9.2 這個目錄。
在安裝過程依照說明設定資料庫管理員的密碼。
Windows 版本的 PostgreSQL 安裝程式會一併安裝圖形化的管理工具 pgAdmin III,在安裝後就可以直接用它來管理 PostgreSQL 了。

2015年3月22日 星期日

PHP上傳檔案,透過 PHP $_FILES 陣列輕鬆上傳檔案

http://www.webtech.tw/info.php?tid=24
http://gdsecret.com/post.php?id=15

php.ini設定

上傳檔案前總要做些設定吧,以下列出幾個設定供參考:
  1. file_uploads:檔案上傳 ,設為 On (允許上傳)
  2. upload_max_filesize:上傳最大檔案大小,預設 2M ,建議不要太大
  3. max_execution_time:最大程式執行時間,預設為 30 秒
  4. max_input_time:接收資料時間限制,建議比 max_execution_time 大
  5. memory _limit:最大記憶體,必須比 upload_max_filesize 大,檔案上傳才不會出錯
  6. post_max_size:POST資料量限制,預設 8M,必須比 upload_max_filesize 大

上傳檔案對 PHP 來說是個相當重要的功能,PHP 可以上傳各式各樣的檔案類型,像是文件檔 word 的 .doc、Excel 的 .xls、PowerPoint 的 .ppt、PDF、exe、影片檔案如 avi、rmvb、flv .... 圖片檔案類型等等。

上傳檔案最基本的架構有三個重點:
  1. 上傳頁面(HTML)
  2. 處理檔案(PHP)
  3. 儲存上傳檔案的資料夾
步驟一、先利用 HTML 建立一個簡單的上傳檔案頁面

這個頁面是要給上傳檔案的人看的,必須包含表單(form)、上傳檔案的欄位以及一個上傳按鈕。


開啟程式碼頁面

注 意表單 form 需要加上 enctype="multipart/form-data" 代表你要上傳檔案,input type="file" 這裡是上傳檔案的欄位。PHP 一次可以上傳多個檔案,這裡介紹單一檔案上傳,順利完成單一檔案上傳後,也可以嘗試看看多檔案上傳唷!

步驟二、建立一個資料夾來裝上傳的檔案

PHP 檔案上傳後會先放到一個暫存資料夾(tmp),再用 move_uploaded_file 將檔案移動到你的網站資料夾中,所以你必須建立好一個放檔案的資料夾在網站根目錄,我們暫時將這個資料夾命名為 upload。記得權限要設為可以寫入才能夠使用唷!通常預設是可以寫入,如果你待會上傳的檔案沒辦法寫入,就必須改一下資料夾權限。

步驟三、建立處理上傳檔案的 PHP 檔案 upload.php

在寫程式碼之前需要先了解 PHP 怎麼判斷檔案的各種數據
  • $_FILES["file"]["name"]:上傳檔案的原始名稱。
  • $_FILES["file"]["type"]:上傳的檔案類型。
  • $_FILES["file"]["size"]:上傳的檔案原始大小。
  • $_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
  • $_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。
現在你了解了 PHP 如何判斷檔案上傳後的資料,接著就可以運用這些資料去做檔案上傳的功能囉!以下是檔案上傳的基本架構,你可以先透過這個架構看看檔案是否有問題,若有碰到什麼問題可以在這個階段先處理好。


開啟程式碼頁面

如果都沒有問題的話,接著我們開始加入「移動檔案到資料夾」的動作,此動作相當的重要,主要是將剛剛上傳到伺服器暫存資料夾的檔案正式移動到你的網站目錄底下,如此一來網友才看得到。

移動檔案請用 move_uploaded_file()

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);

將此 function 加到我們的程式碼中


開啟程式碼頁面

現在你已經可以將檔案上傳並順利移動到你的資料夾中囉!但是這樣其實並不完整,我們應該再加入檔案是否存在的判斷,避免有時候一個不小心重覆上傳相同的檔案,這裡可以採用 PHP 的 file_exists() 函式來判斷。


開啟程式碼頁面

相關連結

2015年3月18日 星期三

Find out biggest cpu/memory consuming processes with ps command

http://www.math-linux.com/linux/tip-of-the-day/article/find-out-biggest-cpu-memory-consuming-processes-with-ps-command

Biggest memory consuming processes

root@kali:~# ps -eo pmem,pcpu,pid,args | tail -n +2 | sort -rnk 1 | head

 1.8  0.0  3304 gnome-panel

 1.3  0.2  3365 /usr/lib/vmware-tools/sbin64/vmtoolsd -n vmusr --blockFd 3

 1.3  0.0  3370 nautilus -n

 1.2  0.3  2642 /usr/bin/Xorg :0 -br -verbose -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-0vVbZF/database -nolisten tcp vt7

 1.0  0.1  3468 gnome-terminal

 0.9  0.0  3377 nm-applet

 0.8  0.0  3371 gnome-screensaver

 0.8  0.0  3357 gnome-sound-applet

 0.8  0.0  3267 /usr/lib/gnome-settings-daemon/gnome-settings-daemon

 0.7  0.0  3458 /usr/lib/gnome-online-accounts/goa-daemon
 

Biggest cpu consuming processes

root@kali:~# ps -eo pmem,pcpu,pid,args | tail -n +2 | sort -rnk 2 | head
0.1 26.4  5845 find / -name *fg*
1.8  0.0  3304 gnome-panel
1.3  0.3  3365 /usr/lib/vmware-tools/sbin64/vmtoolsd -n vmusr --blockFd 3
1.3  0.3  2642 /usr/bin/Xorg :0 -br -verbose -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-0vVbZF/database -nolisten tcp vt7
1.3  0.0  3370 nautilus -n
0.9  0.1  3468 gnome-terminal
0.9  0.0  3377 nm-applet
0.8  0.0  3371 gnome-screensaver
0.8  0.0  3357 gnome-sound-applet
0.8  0.0  3267 /usr/lib/gnome-settings-daemon/gnome-settings-daemon


Explanations

- ps Report a snapshot of the current processes
- -e Select all processes
- o Specify user-defined format
- pmem,pcpu,pid,args user-defined format: memory,cpu, pid number and command
- | tail -n +2 Output lines starting to the second line (to avoid column names such %MEM, etc ...)
- | sort -rnk 1 reverse (r), numeric sort (n) by column 1 (memory)
- | sort -rnk 2 reverse (r), numeric sort (n) by column 2 (cpu)
- | head output the 10 first lines
Enjoy !!!

 
By myself: below is what I want and recommend
[root@vm-www ~]# pidstat | tail -n +4 |grep mysql | sort -rnk 6 | head -5 


2015年2月22日 星期日

低價特殊交易 北市松山公寓交易價1元

http://udn.com/news/story/6/720037


低價特殊交易 北市松山公寓交易價1元

2015-02-23 14:40:08 經濟日報 記者郭及天╱即時報導

房價不斷追高,「創新高」的價格外受到矚目,然而「破盤價」往往因特殊交易使得房價有異,究竟這些「原因」有多特殊?優美地產企研室統計發現,實價 揭露上路後,北市松山區有總價1元的公寓、中正區則有總價3420元的透天厝,住宅總價10萬元內的特殊交易就有七筆,其中交易備註包括「急賣」、「有民 情風俗因素之交易」等。
優美地產企研室召集人葉立敏表示,特殊交易在區域行情中雖然較不具參考價值,但透過交易備註更了解交易物件狀況,如含增建或未登記建物、建商與地主合建案、瑕疵物件交易等。
在特殊交易「價格」部分,台北市總價10萬元內特殊交易住宅就有七筆,最便宜的出現在2013年3月一筆松山區新東街20巷、27.8坪三房兩廳的「1元公寓」,實價揭露顯示總價1元、單價零元,說明欄註明「親友、員工或其他特殊關係間之交易、有民情風俗因素之交易」。
葉立敏分析,2013年松山區新東街公寓每坪均價62.3萬元,以這筆27.79坪公寓為例,合理總價落在1,731萬元左右,這類特殊交易雖不影響當地行情,但若在附近置產應多了解一下其特殊原因,若是物件本身有「不能說的秘密」,則可避免買到不明原因或瑕疵物件。
在交易原因「說明」部分,葉立敏指出,雖然內政部實價資訊中排除了部分最高與最低價揭露,但自2012年12月起登錄系統中提供了「申報案件基本資料說明」選項供申報人選填,也讓特殊交易能被透明化的揭露且不影響市場行情。

2015年2月3日 星期二

讓 TIPTOP 下拉式選單可以動態的顯示

http://4shiun.blogspot.tw/2013/01/tiptop.html

在 Genero Studio 設計 ComboBox 下拉式選單的時候,
通常都是直接在 4fd 檔上面定義固定的 item 項目。
然後再到 p_perlang 修改多國語言顯示的名稱。

提供一個方式可以讓 ComboBox 物件可以隨著其他欄位的變化,來改變下拉式選單的項目。
就是用 ui.ComboBox 的方法。

參考 Genero 的說明文件,ui.ComboBox 提供下式的 Function。
CLASS Method:
1. forname :物件名稱

2. setDefaultInitializer:設定初始的項目

OBJECT Method:
1. addItem(name,text) :增加項目,name 是值,text 是顯示名稱

2. getColumnName():回傳欄位的名稱

3. getIndexOf(name):回傳 name 是在項目的第幾個,沒有回傳 0

4. getItemCount():回傳項目的數量

5. getItemName(index):回傳第 index 個的項目 name 值

6. getItemText(index):回傳第 index 個的項目 text 值

7. getTableName():回傳欄位的 table_name 或是 FORMONLY

8. getTag():回傳欄位的 tag 值

9. getTextOf(name) :回傳 name 是在項目的第幾個的 text 值,沒有回傳 null

10. removeItem(name):刪除名稱是 name 的項目

11. clear():清除所有的項目

範例1:ComboBox 依開啟時可以顯示 1~5 的項目選單
方法1:
1. 在 4fd 檔中的 ComboBox 欄位 Initializer 屬性加上 cb_load 字串

2. 在 4gl 檔中增加一個 Function
    FUNCTION cb_load(combox)
         DEFINE combox ui.ComboBox
         LET combox = ui.ComboBox.forname("ima12")
         CALL combox.clear()
         FOR g_num = 1 TO 5
             CALL combox.addItem(g_num ,g_num)
         END FOR
    END FUNCTION

方法2:
1. 在 OPEN WINDOW 之前加上:
     CALL ui.ComboBox.setDefaultInitializer("cb_load")

2. 同上增加 cb_load 的 Function

範例2:ComboBox 可以隨著某個欄位所選擇的,列出對應的選單
 1. 新增 cb_load 的 Function
    FUNCTION cb_load(combox)
         DEFINE combox ui.ComboBox
         DEFINE l_azf01   LIKE  azf_file.azf01,
                       l_azf03    LIKE azf_file.azf03
         LET combox = ui.ComboBox.forname("ima12")
         DECLARE ima12 CURSOR FOR
            SELECT azf01,azf03 FROM azf_file
                WHERE azf02 = g_ima.ima12
         FOREACH ima12  INTO l_azf01,l_azf03
                 CALL combox.addItem( l_azf01,l_azf03)
         END FOREACH
    END FUNCTION

2. 然後再 INPUT 段的 BEFORE FIELD 欄位的時候,呼叫就可以變化了
    BEFORE FIELD ima12
           CALL cb_load("")

當欄位 ima12 選擇是那一個的時候,跳到 ComboxBox 欄位的時候,
就會帶出不同的下拉式選單

總結:在 Genero 的 ComboBox 有一些可惜的地方,只能在查詢的時候才能夠輸入資料
(要開啟 queryEditabile ),不能提供新增的時候可以輸入選單以外的值。
再來就是如果是用此方式的話,多國語言的功能就不能再維護了,
如果是帶 Table 的資料多國語言就沒問題,但是是自定的話,當然也可以用 p_ze 來定義啦~~~
要注意的另一點,如果下拉式選單因其他欄位的變化而造成值是相同但是顯示的名稱不同,
再查詢的時候就要再多判斷要帶出來的顯示名稱,並上下筆做查詢的時候也要判斷。

2015年1月29日 星期四

PHP在不同頁面之間傳值的三種常見方式

http://fanli7.net/a/bianchengyuyan/PHP/20140531/510971.html

      接觸PHP也有幾個月了,本文總結一下這段日子中,在編程過程裏常用的3種不同頁面傳值方法,希望可以给大家参考。有什麼意見也希望大家一起討論。   &
      接觸PHP也有幾個月了,本文總結一下這段日子中,在編程過程裏常用的3種不同頁面傳值方法,希望可以给大家参考。有什麼意見也希望大家一起討論。
      一. POST傳值
      post傳值是用於html的<form>表單跳轉的方法,很方便使用。例如:
 <html>
 <form action='' method=''>
 <input type='text' name='name1'>
 <input type='hidden' name='name2' value='value'>
 <input type='submit' value='提交'>
 </form>
 </html>
      form中的action填入的是跳轉頁面的url路徑,method填入post方法。form表單中的提交按鈕按下後,就會把form中有name的內容都傳到填入的url中,可以通過$_POST['name']獲取,例如:
<?php
$a=$_POST['name1'];
$b=$_POST['name2'];
?>
      這裏有個很方便的小技巧,在input標簽中把type選为'hidden'時,這個input標簽會隱藏起來,不在頁面顯示,但這input標簽在 form中,並且有name值和value值,同样會跟隨提交按鈕傳遞過去,這種隱藏標簽可以傳遞一些不想顯示出來的內容。
    二.GET傳值
     GET傳值是通過跟隨url傳遞的,在頁面跳轉時,跟着url跳轉。常用於<a>標簽的使用。例如:
<a href='delete.php?id=value'>點我跳轉</a>
   跳轉進入xxx.php後,就能通過$_GET['id']獲取傳遞的值。GET方法常用於URL的目的是刪除或讀取某個id的php文件。
   三.SESSION傳值
   SESSION是全局變量的一種,經常用於用戶登陆後保存用戶id之類的常用數據。一旦保存到SESSION中,其他頁面都可以通過SESSION獲取,SESSION的使用要開启session:
<?php
//session賦值
   session_start();
   $_SESSION['one']=value1;
   $_SESSION['two']=value2;

//session值的讀取:
   $one = $_SESSION['one'];
   
   //session值的銷毀
   unset($_SESSION['one']);
?>
   以上三種方式是常用方式,大家可以参考使用。

2015年1月28日 星期三

請問不使用< input type="submit"> 如何傳值?

http://www.programmer-club.com.tw/ShowSameTitleN/php/9872.html

請問不使用<input type="submit">如何傳值? 更改我的閱讀文章字型大小大 小
作者 : shanesss(JJM)
[ 貼文 51 | 人氣 9379 | 評價 0 | 評價/貼文 0 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/22 下午 07:56:23
請問各位大大
select可以不透過<input type="submit">就傳值到其他網頁嗎?

code如下:
//-------------------------------------------------------------------------
<form name="form1" method="post" action="card.php">
     <p align="left">
     <select name="color" size="1">
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
     </p>
</form>
//-------------------------------------------------------------------------
有方法可以把值傳遞到card.php嗎?

謝謝
作者 : davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/23 上午 07:11:11
純粹是Javascript的問題,不要submit按鈕,甚至不要form也可以給你傳
<script language=javascript>
function link(obj){
location.href="abc.php?color="+obj;
}
</script>
     <select name="color" size="1" onchange=link(this.value)>
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
最後在abc.php,用$_GET或$_REQUEST去接收color這個變數即可
作者 : davidsets(勇ㄚ)
[ 貼文 32 | 人氣 705 | 評價 80 | 評價/貼文 2.5 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/23 上午 07:18:18
囧"~這個討論區沒有重新編輯的功能
不知道你已經假設card.php這個檔名了

即然發了文章,再雞婆多跟你講一些
除了剛剛的方法外,你還可以偷偷的送
<script language=javascript>
function link(obj){
obj.submit;
}
</script>
<form name="form1" method="post" action="card.php">
     <p align="left">
     <select name="color" size="1 onchange=link(this.form)>
     <option selected value="0">請選擇</option>
     <option value="white">白</option>
     <option value="red">紅</option>
     </select>
     </p>
</form>

第一個方法你還要傳另一個值的話會比較麻煩
第二個方法,你要傳多少表單都沒關係,只要在同一個form的資料都會送出
作者 : shanesss(JJM)
[ 貼文 51 | 人氣 9379 | 評價 0 | 評價/貼文 0 | 送出評價 16 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/5/25 上午 10:00:47
謝謝大大指導~