UltraEdit調校

UltraEdit中文網站

UltraEdit一直是我寫PHP程式時的最愛,之前用的是V18。使用時在顯示函式清單時速度很僈,所以就找新的版本試試。果然在V25中函示清單功能是正常的。新的版本又提昇了不少功能,也引入了主題的概念,試著做一些調校,符合自己的使用習慣。
畫面一開始會有個歡迎畫面,這是主要的調校功能所在,如果不小心關掉了,可以從「 說明」==> 「歡迎頁面」重新叫出來。
1) 主題:之前習慣用classic,試著改用Charcoal,有不同的Fu。(Charcoal選取文字時不明顯,改用Slate。)
2) 版面配置:選擇「多視窗」
3) Ribbon 或功能表/工具列:選擇「功能表/工具列」
4) 幾種設定

  • 備份:選擇不備份
  • 縮排尺寸:4 插入空格

再從功能表中「檢視」==>「 檢視/清單」==>取消「文件地圖」勾選。

範本:進階  顯示/修改範本 選php
 

foreach ($[+arr+] as $[+key+] ==> $[+value+]) {
 	^ // loop through values 
}

 

發表於 程式設計 | 發表迴響

smarty 與 adodb 使用範例

//smarty
{{php}}
$i++ ;
echo $i ;
{{/php}}

//smarty
{{include file='join2/tnc_gov_join_inc.htm' }} 

//smarty
{{ if  (! $list.have_game) }}
{{/if}}

//smarty
{{ if  (! $list.have_game) }}
{{else }}
{{/if}}

//smarty 註解
{{*   *}}

 

//php
// 取得參賽項目部份名冊資料replay
 $sqlstr = " select game_id , player_id ,play_group_id ,play_item_id ,class_ename,coach_id , reference , reference2 , reference_unit ,term_num ,term_spe_id
             from game 
             where  gov_code = '$_SESSION[session_log_id]'   order by play_group_id ,class_ename , term_num,player_id " ;
 $recordSet = $CONN->Execute($sqlstr) ;
 while ($row = $recordSet->FetchRow() ) {
   $id = $row['player_id'] ;    
   $game_list[$id][] =  $row  ;
   
   //以組別做呈現
   $play_group_id = $row['play_group_id'] ;    
   $play_item_id = $row['play_item_id'] ;   
   $player_id  = $row['player_id'] ; 
   $class_ename  = $row['class_ename'] ; 
   $row['player_sex'] =  $user_list[$player_id]['player_sex'] ;
   $row['player_name'] =  $user_list[$player_id]['player_name'] ;
   
   $game_list2[$class_ename][$play_group_id][] = $row ;
   $user_list[$player_id]['have_game'] = $play_group_id ;   //已參加的組別代號
 }

//smarty    
//陣列由前向後解開    
{{foreach  key=class_key item=group_data   from=$game_list2 }}
    {{foreach  key=group_key item=group_list   from=$group_data}}
        {{php}}
        $i=0 ;
        {{/php}} 
<table class =datatable width=100%>

    <caption>組別:{{$play_group_name.name[$group_key]}}{{$class_key}}</caption>
    <tr>
        <th>序號</th>  
        <th>姓名</th>
	    <th>性別</th>
    </tr>
        <!-- 項目 -->
        {{foreach key=user_key item=user_list from=$group_list }}
	     <!-- 同項目多人 -->
         <!-- 指定狀態 -->
    <tr>
        <td>
            {{php}}
            $i++ ;
            echo $i ;
            {{/php}}   
        </td>
        <td nowrap> {{$user_list.player_name}}</td>
	    <td>{{$sex[$user_list.player_sex]}}</td>	
    </tr>

        {{/foreach }} 
    {{/foreach }} 
    </table>
    <br>

{{/foreach }}

 

//php
$sqlstr = " select play_group_level   from gov  where played ='1' group by play_group_level  order by play_group_level  ";
$recordSet = $CONN->Execute($sqlstr);
while ($row = @$recordSet->FetchRow() ) {
   $play_group_level_id  = $row['play_group_level'] ;
   $level_name[$play_group_level_id] = $row['play_group_level']  ;
} 

//smarty
<form name="form1" method="post" action="sum_level_user_list.php">
  <select name="level_id" onChange="submit();">
    {{html_options options=$level_name  selected=$level_id }}
  </select>
</form>

 

//php
 $sqlstr = " select gov.gov_code ,gov.play_group_level ,gov.gov_name , count(*) as cc from player  ,gov 
             where   player.gov_code = gov.gov_code and gov.played='1'  and gov.play_group_level= '$_GET[level_id]'
             group by gov.gov_code  
             order by gov.gov_code    " ;
             
 $recordSet = $CONN->Execute($sqlstr);
 while ($row = @$recordSet->FetchRow() ) {
    $gov_list[$row['gov_code']] = $row['gov_name']  ;
}

//smarty
{{foreach  key=key1 item=list   from=$gov_list }}  
  <tr> 
    <td>{{$gov_list[$key1]}}</td>
    <td>{{$user_array[$key1][1]}}</td>
  </tr>
{{/foreach}}

ADODB
 

$recordSet = &$conn->Execute('select * from products');
if (!$recordSet) 
        print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
        print $recordSet->fields[0].' '.$recordSet->fields[1].'<BR>';
        $recordSet->MoveNext();
}

GetRow($sql)

FetchRow()
返回目前記錄內容的陣列,如果是檔尾(EOF),返回 false 。注意:不要把 FetchRow 和 MoveNext() 混用。

$CONN->Execute($sqlstr) or die ( $sqlstr ) ;

 

發表於 程式設計 | 發表迴響

DreamWeaver之MM_validateForm表單輸入檢查

參考網址:TechRepublic

在DreamWeaver中先設計好表單
視窗-標籤檢測器(或按F9)
在右方會出現「行為」標籤
按「+」選檢驗表單

發表於 程式設計 | 發表迴響

ADODB 手冊

參考網址:掃文資訊

發表於 程式設計 | 發表迴響

HTML5新屬性自動檢核表單與欄位格式是否填寫正確

參考網址:梅問題
參考網址:The art of web
參考網址:w3cplus pattern–HTML5的表单验证属性

表單驗證是件相當麻煩的事,除了要驗證欄位是否有填寫外,還要針對填入的資料格式是否正確,光是一個表單驗證,就相當的傷神,因此很早之前,也曾分享過一些驗表單的javascript套件,來解決這惱人的問題,但現在透過HTML5所提供的新屬性後,完全不用寫任何的程式,就可實現表單的驗證。

甚至還可審核資料格的是否正確,像是Email、網址、電話…..等,因此有表單驗證需求的朋友,現在也一塊來看看HTML5的個表單驗證要如何使用,與格式驗證的設定。

用法很簡單,只需在input的標籤加入「required」

<input name="text" id="text" type="text" required />

加入後,當未填寫就按送出時,就會跳出提示框。

當要驗證Email格式時,將type設為「email」,若是網址就為「url」

<input name="email" id="email" type="email" required />

除了驗證email與網址外,電話也是很重要的,由於電話編碼每個國家都不同,因此就不能透過type來作設定,而是用pattern這屬性,再加入正規表示法來作驗證,以手機來說,前四碼為電信商,後六碼為個人碼,所以可以這樣子寫 pattern='\d{4}[\-]\d{6}',這表示前方四碼輸入完後,需加入-隔開,再輸入六碼,這樣格式才正確。

<input name="mobile" id="mobile" pattern='\d{4}[\-]\d{6}' required />

若是室內電話時,再將pattern='\d{4}[\-]\d{6}'變成pattern='\d{2}[\-]\d{8}',這樣就大功告成了,是不是超EZ的呀!!且完全不用寫到任何的程式。

而這麼方便的功能,目前只有Safari不支援,其它的瀏覽器皆可正常運行。

 

發表於 程式設計 | 發表迴響

正規表示式語法測試及程式產生器

參考網址:https://regex101.com

說明文件
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Regular_Expressions

發表於 程式設計 | 發表迴響

campus校園網站輕鬆架之tadnews模組block修改

tadnews模組中有個自訂頁面的自選文章block很好用
只是原本的block中有列出文章分類及人氣占用了寶貴的空間,有點多餘。
所以就動手修改block達到自己要的效果。
自選文章block的程式放在tadnews\blocks\tadnews_my_page.php
自選文章block的樣版放在tadnews\templates\blocks\tadnews_block_my_page.tpl
只需修改樣版檔就可以了,樣版檔內容是html應該很容易懂的。
 

<a href="<{$xoops_url}>/modules/tadnews/<{$page.index}>?nsn=<{$page.nsn}>"><{$page.news_title}></a></td>
改成
<a href="<{$xoops_url}>/modules/tadnews/page.php?nsn=<{$page.nsn}>"><{$page.news_title}></a></td>
<{$page.index}>內容為空值,直接指定為page.php

同場加映:複製區塊會在xx_newblocks資料表中加入一筆資料。

「自訂頁面選單」與「自選文章」區塊的區別:
「自訂頁面選單」只列出自訂頁面的文章
「自選文章」除了自訂頁面的文章外,也可以選擇最新消息的文章

發表於 Linux系統, 程式設計 | 發表迴響

UBUNTU 16.04 noip

參考網址:noip
ubuntu 16.04無法用apt install的方式取得noip2
官網提供安裝的方法
 

  1. cd /usr/local/src/
  2. wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
  3. tar xf noip-duc-linux.tar.gz
  4. cd noip-2.1.9-1/
  5. make install

noip命令

USAGE: noip2 [ -C [ -F][ -Y][ -L hosts_groups][ -U #min]

 

        [ -u username][ -p password][ -x progname]]

        [ -c file][ -d][ -D pid][ -i addr][ -S][ -M][ -h]

Version Linux-2.1.7

Options: -C                         create configuration data

               -F                          force NAT off

               -Y                          select all hosts/groups

               -L hosts_groups  select supplied hosts/groups

               -U minutes           set update interval

               -u username        use supplied username

               -p password        use supplied password

               -x executable       use supplied executable

               -c config_file        use alternate data path

               -d                           increase debug verbosity

               -D processID       toggle debug flag for PID

               -i IPaddress         use supplied address

               -I interface            use supplied interface

              -S                           show configuration data

              -M                          permit multiple instances

              -K processID        terminate instance PID

              -z                           activate shm dump code

              -h                           help (this text)

 

重新設定的話輸入

$ noip2 –C

 

已經有設定資料的話先刪除 noip porcess

$ noip2 –K processID

 

顯示現在電腦設定

$ noip2 –S

 設定檔放在
/usr/local/etc/no-ip2.conf.

但已經過編碼 

root@FH-ST:~# noip2 -S

1 noip2 process active.

 

Process 24342, started as noip2, (version 2.1.9)

Using configuration from /var/lib/noip2/noip2.conf

Last IP Address set 114.39.182.239

Account ——–@gmail.com

configured for:

host  fhst.ddns.net

Updating every 30 minutes via /dev/eth0 with NAT enabled. 

將/usr/local/bin/noip2放入/etc/rc.local

 

 

發表於 Linux系統 | 發表迴響

學生主機升級

將學生主機由ubuntu 11.04 升級至 16.04資料移動過程記錄

scp -r -p root@192.168.0.3:/home/711999 /home
權限無法複製,用劉勇炫老師的homechown.sh更改權限

samba
find / -name passdb.tdb
apt的samba密碼檔放在 /var/lib/samba/passdb.tdb
gcc的samba密碼檔放在 /usr/local/samba/private/passdb.tdb
scp -r -p root@192.168.0.3:/var/lib/samba/passdb.tdb /usr/local/samba/private

xrdp port更改 /etc/xrdp/xrdp.ini

mysql
apt install phpmyadmin
http://sp.idv.tw/blogs/index.php?op=ViewArticle&articleId=676&blogId=1
編輯mysql配置文件 my.cnf
(ubuntu 16.04放在/etc/mysql/mysql.conf.d/mysqld.cnf)
在 [mysqld]下添加
sql_mode=""


scp -r -p root@192.168.0.3:/var/lib/mysql/0_fh /var/lib/mysql
chown -R mysql.mysql 0_fh

scp -r -p root@192.168.0.3:/var/lib/mysql/0_fh1071 /var/lib/mysql
chown -R mysql.mysql 0_fh1071

scp -r -p root@192.168.0.3:/var/lib/mysql/gtpa /var/lib/mysql
chown -R mysql.mysql gtpa

html
scp -r -p root@192.168.0.3:/var/www/fh /var/www/html
scp -r -p root@192.168.0.3:/var/www/fh1071 /var/www/html
scp -r -p root@192.168.0.3:/var/www/xoops_data /var/www/html
scp -r -p root@192.168.0.3:/var/www/xoops_lib /var/www/html
scp -r -p root@192.168.0.3:/var/www/html /var/www/html
scp -r -p root@192.168.0.3:/var/www/php4 /var/www/html
scp -r -p root@192.168.0.3:/var/www/index.html /var/www/html
scp -r -p root@192.168.0.3:/var/www/gtpa /var/www/html

16.04安裝xrdp
http://honglung.pixnet.net/blog/post/167257893-windows-%E9%81%A0%E7%AB%AF%E6%A1%8C%E9%9D%A2%E9%80%A3%E7%B7%9A%E5%88%B0-ubuntu-16.04

安裝遠端桌面管理軟體
sudo apt-get install xfce4
sudo apt-get install xrdp

配置遠端桌面管理軟體
echo xfce4-session > ~/.xsession

 

XOOPS
$root_path    = "/var/www/html/fh1071";//這是主目錄
$xoop_up_path = "/var/www/html/fh1071";//這是xoops_data及xoops_lib的位置

 

DHCPD
apt install isc-dhcp-server
scp -r -p root@192.168.0.3:/etc/dhcp/dhcpd.conf /etc/dhcp

noip

UBUNTU 16.04 noip

192.168.0.3 192.168.0.9 IP已互換
ups
scp -r -p -P 8088 root@192.168.0.9:/root/ups /root
dpkg -i PPL_1.3.2_amd64.deb
pwrstat -status
service pwrstatd start

scp -r -p -P 8088 root@192.168.0.9:/home/51* /home

發表於 Linux系統 | 發表迴響

Google Dictionary 多國語言自動翻譯工具(Google Chrome 擴充套件)

參考網址:重灌狂人

Google Dictionary  這個工具主要是透過彈出訊息的方式顯示單字解釋,使用方式有兩種,1.將文字反白後自動顯示翻譯內容,或者 2.在文字上按兩下滑鼠左鍵才顯示翻譯內容。

兩種操作方式都可以搭配鍵盤快速鍵來使用,以避免混亂。譬如說,先按住「Ctrl」不放,然後在你要查的單字上按兩下滑鼠左鍵,可避免干擾其他功能的操作。

系統支援:此為 Google Chrome 瀏覽器專用擴充套件

官方網站:按這裡

軟體下載:用 Google Chrome 瀏覽器開啟「這個」網頁,按一下「安裝」按鈕,即可將程式安裝到電腦中

 

發表於 Windows系統 | 發表迴響