顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - yokunandu

頁: [1]
1
所以server文件其實不用修改囉?
光是文件的修改就找了很多方法......

原本沒修改文件成utf-8前,
在puTTy看資料是顯示正常的(顯示中文)。
如果預設都是latin1,
那是什麼原因可以看到中文的部分呢?(只是因為語系統一的關係嗎)

先謝謝您提供的建議喔~

2
我知道這問題很多人問,
我上網查了後,好不容易將my.cnf和httpd都改成utf-8的編碼了(mysqld或client等等),
結果我的mysql資料庫原本的中文內容卻變成亂碼......
像'測試'兩個字變成:
 æ¸¬è©¦
還有讀出結果是:
\u6e2c\u8a66

原本都是latin1時,資料庫還可以存取中文資料。
改成utf-8後反而變成亂碼了......
我是用指令視窗沒有用phpMyAdmin,
用insert into中文資料就變成??
用了\s也都是顯示utf-8的設定結果
在PHP端加了header('conten-type:text/html;charset=utf-8');
結果是在全設為UTF-8時可以讀取正常(然而資料庫裡的內容是亂碼)
用了mysql_query("SET NAMES 'utf8'");則是亂碼。

我測試後大概是這樣:

原本的(預設Latin):
用header('conten-type:text/html;charset=utf-8');
是亂碼(這可想而知)
用mysql_query("SET NAMES 'utf8'");
也是亂碼
在資料庫中:中文操作都ok

全改成utf-8後
用header('conten-type:text/html;charset=utf-8');
可以讀取
用mysql_query("SET NAMES 'utf8'");
是亂碼
在資料庫中:中文操作皆無法

server 是 Linux的環境,
操作是用指令(用puTTy)

麻煩大家幫我查看問題到底出在哪裡了,

謝謝大家!

3
經過看到計數器的範例,
我終於明白為什麼我的無法累加了。

原來要將數值存在檔案裡,
比方一開始是'0',
那麼檔案(ex: test.txt)裡的內容就是0。
cgi裡面則是以讀檔的方式讀取test.txt讓count=0。
等做了動作後(像我是下載),
就將count加一,並且寫入檔案。如此一來,才能真正地達到每做動作就累加,
否則,每次count都從0開始,難怪我的結果一直是1 :P
接著將'今天日期'也存起來,每次讀'今天日期',來判斷是不是要將count歸零?
如果'今天日期'與date不同,就要歸零。

所以總歸一句:
只要增加讀寫檔的動作。

還是謝謝大家的幫忙喔,
希望能幫忙有這種困擾的同仁 ;D

4
先謝謝您的支持,
我後來找到方法了!
就是按下button後,
用form跑到執行shell script的動作,
而跑過去的那個.cgi網頁加上button,
按下另一個網頁的button後會回到原始網頁,
接著判斷
代碼: [選擇]
if [ "$Stop" != "" ]; then
killall tcpdump
fi
也就是另一個網頁按下了StopCapture的動作。
因此執行killall tcpdump指令。

原來是我搞錯之前同事的網頁寫法才會出問題~

總之,這樣就可以達到使用者覺得按下一個button是開始,
按下另一個button(雖然是不同網頁)是結束的效果。

給大家參考!
如果不懂我說的是怎麼做,
還是可以問問喔~

5
因為對於cgi有錯誤認知,
才會造成我的問題很奇怪,跟先進們說聲抱歉!
我的程式是shell的:
#!/bin/sh
開頭寫成,
因為有ui部分,
結合了javascript。
檔名是.cgi的,
因為之前看到有人問這類型的檔案在此版,才想說可能是要把問題放在這。

如果要把javascript和shell分開,
那麼按鈕的顯示用javascript執行,
而用判斷來分析是哪個按鈕被執行,
也就是:
代碼: [選擇]
if [ "$Stop" != "" ]; then
killall tcpdump
fi
上面這個片段,我在其他檔案是可以執行的(也就是如果按下name=Stop的按鈕,就會執行shell指令:
killall tcpdump

只是不知為何我現在這個無法這樣做判斷......
還是這個部分要放在特定位置(跟client端程式分離)才有效?
若我沒做判斷,
將if [ "$Stop" != "" ]這部分移除,
程式就直接執行指令了。
但我希望能夠透過button來執行(但是不知道辦不辦得到)

6
我希望能按下button跑指令,
因為是抓封包的方法,
我不確定可不可行......
我目前的程式是這樣的:
代碼: [選擇]
echo "function StartCapture()"
echo "{"
echo "document.getElementById('btnStop').disabled = false;"
echo "document.getElementById('btnStart').disabled = true;"
echo "document.getElementById('blockDownload').style.display = \"none\";"
        if [ "$Start" != "" ]; then
      /fs1/tcpdump/tcpdump -s 1500 -w $filename &
fi
echo "}";
echo "function StopCapture()"
echo "{"
if [ "$Stop" != "" ]; then
killall tcpdump

fi
echo "document.getElementById('btnStart').disabled = false;"
echo "document.getElementById('btnStop').disabled = true;"
echo "document.getElementById('blockDownload').style.display = \"block\";"

echo "}";
echo "</script>"
echo "<form name=DbC_form> "
echo "<input id='btnStart' name=Start value=\"$msg020\" type=submit onclick='javacript:StartCapture();'>"
echo "<input id='btnStop' name=Stop value=\"$msg030\" type=submit disabled='disabled' onclick='javacript:StopCapture();'>"

上面是希望按下StartCapture按鈕後,會執行/fs1/tcpdump/tcpdump -s 1500 -w $filename &
並顯示StopCapture按鈕。
按下StopCapture按鈕會執行
killall tcpdump
但是submit按鈕好像不會偵測到我按了哪個按鈕(用name),所以沒有去執行......
要如何才能達到我想要的功能呢?
麻煩大家幫忙了!

7
我不是很會訂題目......
不過我希望能做到的就是:
有個叫做version的變數,
希望他能在按下button時累加,
不過不知為何不能累加......
那個變數count是指今天按下button的次數,
像是今天下載了幾次這樣。
比方version=1212050(第一次時)
      version=1212051(第二次下載)
      .....
但是如果到了隔天,count就要歸零(所以version=1212060開始)
我目前的程式是這樣的:
代碼: [選擇]
dateis=`date | awk '{print $6}'`
#2012--->12
dateyear=`echo $dateis | tail -c 3`
monthis=`date | awk '{print $2}'`
if [ "$monthis" == "Dec" ]; then
datemonth="12"
fi
if [ "$monthis" == "Nov" ]; then
datemonth="11"
fi
if [ "$monthis" == "Oct" ]; then
datemonth="10"
fi
if [ "$monthis" == "Sep" ]; then
datemonth="9"
fi
if [ "$monthis" == "Aug" ]; then
datemonth="8"
fi
if [ "$monthis" == "Jul" ]; then
datemonth="7"
fi
if [ "$monthis" == "Jun" ]; then
datemonth="6"
fi
if [ "$monthis" == "May" ]; then
datemonth="5"
fi
if [ "$monthis" == "Apr" ]; then
datemonth="4"
fi
if [ "$monthis" == "Mar" ]; then
datemonth="3"
fi
if [ "$monthis" == "Feb" ]; then
datemonth="2"
fi
if [ "$monthis" == "Jan" ]; then
datemonth="1"
fi
Dayis=`date | awk '{print $3}'`
dateday=`echo $Dayis|awk '{printf "%02d", $1}'`

##dateyear=12年
##datemonth=12月
##dateDay=5日
#count=一天當中的次數→可能一天很多次

##version=v1212050版本
Houris=`date | awk '{print $4}' | awk -F':' '{print $1}'`
datehour=`echo $Houris|awk '{printf "%02d", $1}'`
##datehour=小時
Minuteis=`date | awk '{print $4}' | awk -F':' '{print $2}'`
dateminute=`echo $Minuteis|awk '{printf "%02d", $1}'`
##dateminute=分鐘

##timeis=1212051037什麼時候   

echo "<script type='text/javascript'>"
count=0
version="v$dateyear$datemonth$dateday$count"
timeis="$dateyear$datemonth$dateday$datehour$dateminute"
filename="hg"_"$version"_"$timeis"
echo "function StartCapture()"
echo "{"
echo "document.getElementById('btnStop').disabled = false;" ##下載時才顯示停止下載
        count=`expr $count + 1`

echo "alert(\"$count\");"##測試是否累加→但沒有累加(只加了一次)
echo "document.getElementById('btnStart').disabled = true;"
echo "}";
echo "function StopCapture()"
echo "{"
echo "document.getElementById('btnStart').disabled = false;" ##結束才又能下載
echo "document.getElementById('btnStop').disabled = true;" 
echo "}";
echo "</script>"
##若要判斷是否隔天,應該加在這裡
echo "<input id='btnStart' name='upd' value='開始' type='submit' onclick='javacript:StartCapture();'>"
echo "<input id='btnStop' name='upd' value='結束' type='submit' disabled='disabled' onclick='javacript:StopCapture();'>"
所以累加的部分是因為要reload網頁(網頁是cgi)還是判斷時間進行即可累加?
還有隔天count要歸零的部分......

先謝謝大家的幫忙喔!

頁: [1]