完整程式碼下載
/var/www/log/資料夾中產生使用者帳號加u與加d的檔案
u為上班時間記錄檔
d為下班時間記錄檔
如calvinu與calvind
範例中的員工名稱為66DM01~66DM35
若是在普通的公司之中,可事先做一份user.txt檔記錄員工帳號及名稱
再修改一下我程式的內容中就可以應用了
a.cgi中比較核心的部份
tp=1
while [ $tp -le 35 ]
do
tx=$(printf "%02i\n" $tp)
echo "<tr><td>"
echo "員工:66DM"$tx"上班打卡 : </td><td>"
#下面這行使用grep檢察log檔中有沒有存在今天日期的資料
u1=$(cat /var/www/log/66DM$tx"u" | grep $ck)
#若有存在就顯示該筆日期與時間
if [ $? == "0" ]; then
echo $u1
#若不存在就顯示打卡按鈕,按了以後會呼叫ct.sh做打卡的動作。
else
echo "<form action="http://172.22.66.5/~usadmin/cgi-bin/ct.sh" method="get">"
echo "<input name="66DM$tx"u"" type="hidden">"
echo "<input type="submit" value="打卡"></form>"
fi
echo "</td><td>員工:66DM"$tx"下班打卡 : </td><td>"
#下班部份存在另一log檔,原理與上面相同。
u2=$(cat /var/www/log/66DM$tx"d" | grep $ck)
if [ $? == "0" ]; then
echo $u2
else
echo "<form action="http://172.22.66.5/~usadmin/cgi-bin/ct.sh" method="get">"
echo "<input name="66DM$tx"d"" type="hidden">"
echo "<input type="submit" value="打卡"></form>"
fi
echo "</td></tr>"
tp=$(( $tp + 1 ))
done
ct.sh程式碼解釋
echo '<body>'
echo '<pre>'
#抓取a.cgi傳過來的值,只取使用者帳號部份。
mf=$(/usr/bin/env |grep QUERY|cut -d'=' -f2)
#抓取現在時間
tm=$(date +%Y%m%d" "%H":"%M":"%S)
#將現在時間存到該使用者log檔中。
echo $tm >> /var/www/log/$mf
#顯示已經打卡完成。
echo 員工:$mf 已打卡完成,時間為$tm
echo '</pre>'
echo "<a href='./a.cgi'>回上一頁</a>"
echo '</body>'
沒有留言:
張貼留言