標籤

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 (117) 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 (126) 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 (2) 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)

2020年10月11日 星期日

使用JQuery autocomplete時,如何呼叫外來 datasource

 

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Autocomplete - Remote datasource</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
.ui-autocomplete-loading {
background: white url("images/ui-anim_basic_16x16.gif") right center no-repeat;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );  
$( "#log2" ).val(message);
}
$( "#birds" ).autocomplete({
source: "search.php",
minLength: 2,
select: function( event, ui ) {
log( "Selected: " + ui.item.value + " aka " + ui.item.id );
}
});
} );
</script>
</head>
<body>
<!-- CSS 也可以在html body這樣引用
<STYLE TYPE="text/css">

 <!--

@import url(https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css);

@import url(https://jqueryui.com/resources/demos/style.css);

-->
 
</STYLE> 

-->

<div class="ui-widget">
<label for="birds">Birds: </label>
<input id="birds">
</div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>

<input id="log2" value="test"></input>
</body>
</html>
 
///////////////////////////////////////////////////////////////////////////////////
search.php

1 <?php
2 header("Access-Control-Allow-Origin: *");
3 header('Content-Type: application/json; charset=utf-8');
4 include("../../../ini/db_erp_ini.php");
5 include("../../mod/mod_oracle.php");
6
7 $term = $_GET['term'];
8
9 $oracle = new Oracle($db_erp_ini);
10
11 #$oracle->debug = true;
12
13 $sql = "
14 select nmt01 \"value\", nmt02 \"label\"
15 from echo01.nmt_file
16 where nmtacti = 'Y'
17 and nmt02 like '%" . $term . "%'
18 order by 1
19 ";
20
21 $oracle->query($sql);
22 $results = $oracle->fetchAll();
23 #$news = array();
24 #foreach ($results as $result )
25 #{
26 # $news[] = array( 'label'=>$result['LABEL'],
27 # 'value'=>$result['VALUE']
28 # );
29 #}
30
31 #echo json_encode($news);
32 echo json_encode($results);
33 ?>
 

2020年6月24日 星期三

如何使用perl 模組 LWP::UserAgent 時,不要每次呼叫post時,會重新連線一個session

my $browser = LWP::UserAgent->new(ssl_opts => { verify_hostname => ''},
                                  cookie_jar => HTTP::Cookies->new,
                                  requests_redirectable => [],
                                  timeout => 10,
                                  agent => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0"
                                 );

2020年5月24日 星期日

VNCserver初始設定與自動啟動

http://blog.pulipuli.info/2008/07/vncserver.html

VNC是遠端桌面控制很方便的工具,這一篇記錄著如何安裝、初始設定以及開機自動啟動VNCserver的方法。

測試環境

確認是否安裝VNC Server

#rpm -q vnc vnc-server 如果已經安裝,那麼系統會直接顯示VNC Server的版本訊息:
vnc-server-4.1.2-9.el5

安裝VNC Server

由於CentOS 5預設已經安裝好VNC了,因此手動安裝VNC的步驟在此就省略。

設定啟動VNC Server時自動啟用帳號

以root權限修改vncservers
#vim /etc/sysconfig/vncservers 如果你要以dspace帳號登入,登入桌面為1024x768,那麼加入以下設定:
VNCSERVERS="1:dspace"
VNCSERVERARGS[1]="-geometry 1024x768"
設定完成之後,每次啟用VNC Server的服務時,都會自動啟動該帳號的vncserver。
請輸入以下指令以啟動VNC Server:
service vncserver start

開機自動啟動VNC Server

以root權限加入開機自動啟動VNC Server
#vim /etc/rc.d/rc.local 加入以下設定
service vncserver start 確認以上步驟完成之後,接著重新啟動,就能夠開啟VNC Server。

設定VNC的密碼

請切換到你預設要登入的使用者帳號,此範例中以dspace作為我預設登入的帳號。可使用su指令來切換,系統會提示你輸入密碼(除非你是root):
su dspace 執行vncpasswd來設定密碼
#vncpasswd
Password: //輸入 VNC 密碼
Verify: //再輸入一次 VNC 密碼以確認

修改顯示設定成為安裝的X-Win

接著修改連接設定。如果你沒有在自己設定的帳號裡找到.vnc/xstartup,那你得回到之前的步驟,把VNC Server設定好之後一一啟動,他才會產生xstartup這個檔案。
#vim ~/.vnc/xstartup 該檔案的內容如下,請將SESSION_MANAGER與exec /etc/X11/xinit/xinitrc開頭的#註解拿掉,其他行則加上註解。參考如下:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
#[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &

修改防火牆設定(透過setup指令)

必需要修改防火牆的設定,你才能讓外面的使用者連到VNC Server。輸入以下指令
# setup 如果非root權限,系統會提示密碼。正常來說會顯示以下畫面:
image
選單依序選擇:防火牆設定 => 自訂 => 其他連接埠,填入5801:tcp。結果如下圖:
image
確認完畢之後一一退出,即完成設定。

修改防火牆設定(修改IP Table)

如果你的OS沒有setup功能,那麼請直接修改IP Table。請以root帳號修改/etc/sysconfig/iptables
#vim /etc/sysconfig/iptables 然後加入以下設定:
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5801 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
再重新啟動iptable service,完成設定。
#/etc/rc.d/init.d/iptables restart Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ] Applying iptables firewall rules: [ OK ] Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]

連接到VNC Server

只要透過瀏覽器就可以用Java Applet來開啟VNC
請在瀏覽器網址列輸入以下網址:
http://伺服器的IP:5801/ 順利連結便會開啟以下畫面:
image
輸入OK,然後輸入密碼,如下畫面:
image
便可以正常開啟遠端桌面,解析度會比較差是正常的事情。
image 

VNC遠端桌面使用中文輸入法

在Windows環境下開啟VNC遠端桌面,由於輸入法的切換組合鍵皆為「Ctrl + Space」,所以會被Windows環境抓去,而無法在VNC遠端桌面發揮效果。
解決方法是修改遠端Server上的輸入法切換組合鍵。
設定位置在「系統→偏好設定→更多偏好設定→SCIM輸入法設定」。
image
進入「介面(前端)→全域設定→快速鍵→作用鍵→…」。
image
作用鍵勾選「Ctrl」跟「Alt」,按下「新增」。
image
全部確定退出之後,就可以用「Ctrl + Alt + Space」叫出中文輸入法了。
image
點選輸入法工具列就可以選擇其它輸入法使用。
image

[Linux 常見問題] Iptables Open VNC Port To Allow Incoming VNC Connections

http://puremonkey2010.blogspot.com/2016/11/linux-iptables-open-vnc-port-to-allow.html

Source From Here
Question
How do I configure Linux system firewall to allow incoming VNC connections?

How-To
VNC server listens on the following TCP ports:
=> VNC server on display 0 will listen on TCP ports 5800, 5900 and 6000
=> VNC server on display 1 will listen on TCP ports 5801, 5901 and 6001
=> VNC server on display N will listen on TCP ports 580N, 590N and 600N

In other words a VNC server listens for a VNC client on TCP ports 5800+N, 5900+N, and 6000+N where N is the display which starts at zero. So,
5800+N – Java-based vncviewer;
5900+N – VNC Client Port;
6000+N – X Server port.

Find Out VNC Port
Type the following command:
# netstat -tulp | grep vnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 3240/Xvnc

Update /etc/sysconfig/iptables
Edit /etc/sysconfig/iptables file:
  1. ...  
  2. -A INPUT -p tcp -m state --state NEW -m tcp --dport 5801 -j ACCEPT  
  3. -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT  
  4. -A INPUT -p tcp -m state --state NEW -m tcp --dport 6001 -j ACCEPT  
記得 要和其他的 -A INPUT寫在一起
 Save and close the file. Restart iptables:
# service iptables restart

A Note About Other Linux Distributions
/etc/sysconfig/iptables works only on RHEL / CentOS / Fedora Linux. For other distros update your iptables shell script as follows:
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5801 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6001 -j ACCEPT
# service iptables save