跳到主要內容

發表文章

PHP去除js,smarty,css,php標籤的function-教學撰寫:徐嘉裕Neil hsu

在開發留言系統時除了前端防禦外,後端的過濾也很重要,因為前端所有的JS功能都可透過瀏覽器的F12竄改導致防禦無效,尤其是惡意發佈js,css,程式碼破壞版面,甚至可將頁面導向木馬程式網頁,所以一定要在資料寫入時就吧js,smarty,css,php標籤通通去除掉無害化處理,才能防止網站遭惡意破壞事情發生。 分享一個PHP去除js,smarty,css,php標籤的function,code如下 //去除js,smarty,css,php標籤 function removejscssscript($str) { //移除js $str = str_replace("\r\n", PHP_EOL, htmlspecialchars_decode($str)); $str = preg_replace('/<.*script.*>/', '', $str); //移除css $str = preg_replace('/<.*style.*>/', '', $str); $str = preg_replace('/<.*link.*>/', '', $str); //移除smarty $str = preg_replace('/<\{+/i', '', $str); $str = preg_replace('/\}>+/i', '', $str); //移除php $str = preg_replace('/<\?php+/i', '', $str); $str = preg_replace('/\?>+/i', '', $str); return $str; } //在接收變數寫進資料表的地方使用即可  removejscssscript($str=$_POST['description']) ; 實際測試移除效果,我們先在文字框中貼上js,css程式碼 然後送出,可以看到style及script都被移除掉,只剩下結構,這樣就無害化完成 有需要的朋友參考看...

JQuery->好用的去除HTML標籤function分享-教學撰寫:徐嘉裕Neil hsu

分享一個好用的JQuery去除HTML標籤function,可以用在編輯器計算字數的地方,範例如下: //去除TTML標籤function function removeHTMLTag(str) { str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tag str = str.replace(/[ | ]*\n/g, '\n'); //去除行尾空白 str = str.replace(/\n[\s| | ]*\r/g, '\n'); //去除多餘空行 str = str.replace(/&nbsp;/ig, ''); //去掉&nbsp; str = str.replace(/\s/g, ''); //將空格去掉 return str; } //應用範例 $test="<div>文字文字文字文字<br />文字文字文字文字</div>"; removeHTMLTag(str=$test); //輸出->文字文字文字文字文字文字文字文字 removeHTMLTag(str=$test) .length; //輸出16字數 以上工作心得分享,有需要的朋友參考看看 工作心得撰寫: 徐嘉裕 Neil hsu

PHP指定陣列顯示數量的方法-教學撰寫:徐嘉裕Neil hsu

使用array_slice()函數可以指定陣列輸出的數量,例如只輸出陣中前4個陣列,或是由第4個陣列之後輸出全部陣列,透過array_slice()函數都可達成 php code範例如下 //共有9個陣列 $Arr=array("陣列01","陣列02","陣列03","陣列04","陣列05","陣列06","陣列07","陣列08","陣列09"); //取得陣列總數 $Arrcount = is_array($Arr) ? count($Arr) : 0 ; //只輸出0-4個陣列 //顯示陣列01,陣列02,陣列03,陣列04 foreach( array_slice ($Arr, 0, 4) as $val){ echo $val.','; } // 輸出第 4個之後的全部陣列 //顯示陣列05,陣列06,陣列07,陣列08,陣列09 foreach( array_slice ($Arr, 4, $Arrcount) as $val){ echo $val.','; } 這樣就能在資料源頭做分流,不須使用IF來判斷迴圈數後顯示內容,精簡程式節省效能,有需要的朋友參考看看 工作心得撰寫: 徐嘉裕 Neil hsu

Xoops免費佈景:neilambilight3.1正式版釋出-佈景設計開發:徐嘉裕Neil hsu

針對neilambilight3.0版用戶回報問題做調整與升級,更新項目如下 neilambilight3.1更新內容 ============================== 1、自訂按鈕->圖片類型區塊,增加顯示及不顯示按鈕文字功能,並重新優化該區塊的布景CSS樣式。 2、布景電腦版->底區塊選單增加第二層收納第三層選單功能(原本為展開結構),並優化CSS樣式。 3、修正模組更新onUpdate.php->自動刪除腳本,刪除使用中的css檔問題。 4、隨機小語後台增加內容輸入框簡易CK編輯器。 5、調整布景JS套件引入位置解決與部分tad模組衝突問題。 6、聯絡我們顯示未回覆提示框時,自動關閉主選單浮動功能,解決版面變形問題。 7、修正多層自訂按鈕未關閉區塊樣式時字體過大問題。 8、修正多層自訂按鈕編輯時選擇分類會變成空值的問題。 9、調整佈景中間欄位配置區塊標題文字及高度加大。 本次更新釋出版本: neilambilight3.1版 neothemesadmin5.1版 neillibrary2.3版 安裝及升級方法如下neilambilight3.0說明。 歷經一年多的開發,neilambilight佈景已經完全煥然一新,以全新的面貌呈現給大家,本次改版佈景前台介面全部砍掉重練,全新的設計風格與優化結構,更實用的功能與管理便利性及安全性,並增加了視差動畫設計,自訂區塊icon功能,版面布局也更多樣化,可兼容tad最新版模組,目前已完成各項測試正式發佈,歡迎大家下載使用。 neilambilight佈景展示網站: https://chongshanli.com/ neilambilight3.0 更新內容 ============================== 1、升級布景jquery到jquery-3.5.1.min.js。 2,升級布景jquery-migrate到jquery-migrate-3.3.0.min.js 3、調整布景headtpl.tpl中CSS及JS檔引入方式。 4、移動儲存區塊圖片資料夾內容neilambilight->neothemesadmin,修改圖檔路徑 5、隨機小語新增自訂電腦版及手機版寬度高度設定。 6、災害示警新增自訂電腦版及手機版寬度高度設定,修改樣板設定。 7、強化表單防禦機器人程式架...

Xoops->使用js判斷USER端瀏覽器cookie是否啟用,若啟用ajax寫入cookieid-教學撰寫:徐嘉裕Neil hsu

cookie運作原理是吧伺服器端的資料儲存於user端的瀏覽器中,然後可讀寫cookie值,通常用於網站登入儲存會員密碼之類的,但也能作為區隔同ip多台電腦或同電腦多個不同瀏覽器的識別,只需要在網站首次進入時寫入一組cookieid即可。 不過問題來了,php雖然可以使用setcookie()寫入cookie,但卻無法判斷user端的cookie是否啟用(cookie是在瀏覽器前端執行),用js也能寫入cookie並判斷是否啟用,但所需的參數還是需要php先輸出到樣板在用js取值寫入,怎麼用都很麻煩的感覺。 解決方案就是用js來判斷user端的cookie是否啟用,若啟用直接用ajax在php端setcookie()寫入cookie,這樣整合起就能吧js跟php不足的地方都補齊了,方便好用。 以下為code範例 //tpl樣板部分 <!-- 載入cookie --> <script type="text/javascript" src="<{$xoops_url}>/modules/模組ID/js/cookie.js"></script> <script>var xoopsjsurl='<{$xoops_url}>';</script> //js部分 //建立一個cookie.js檔並放置以下內容 //判斷cookie是否啟用並寫入cookieid $(document).ready(function() {   if (typeof(getCookieByName('cookieid')) != 'undefined') return  //判斷指定cookie是否有建立,空值才執行以下程式   var dt = new Date();   dt.setSeconds(dt.getSeconds() + 60);   document.cookie = "cookietest=1; expires=" + dt.toGMTString(); //建立一個測試cookie   var cookiesEnabled = document.cookie.indexOf("...

小心偽造中華郵政繳納關稅詐騙郵件-Pay the delivery costs to collect your package.

現在的詐騙技術越來越高明了,連中華電信及中國信託的信用卡付款頁面都能偽造,今天就收到這樣的一封信 你好   , 最後提醒:  該電子郵件通知您您的貨件仍在等待處理中。 您的包裹無法在交付  10.02.2022  因為沒有繳納關稅 (  369  NT Dollars ) 商家:中華郵政 訂單號碼:00275029 採購金額:369新台幣 計劃於11.02.2022-12.02.2022之間交付 確認包裹的運輸  點擊這裡  . 當您到達家庭住址時,您將收到一封電子郵件或短信。從可用之日起,您將有8天的時間撤消包裹。 提款後,系統會要求您提供ID。 如需更多服務,請通過以下方式查找您的貨件的後續行動  點擊這裡   . 謝謝您的信任, 真摯地, 您的中華郵政客戶服務。 Compensation Chunghwa Post Co., Ltd. (hereinafter the "Company") is committed in respecting all users' personal privacy, being in accord with the Personal Information Protection Act of Republic of China and Company's personal information protection policy. The Company hereby declaring the following statements in regards with the collection, processing, 看起來真的很像是中華郵政的通知信格式,如果剛好有人在掏寶買東西又沒收到貨的,有可能第一時間就被這封詐騙信給騙了。 但仔細觀看就不難發現有問題的地方 1、寄送郵件地址:no-reply@ oxfordsymposium.org.uk  這網址不是中華郵政的,若是中華郵政寄出的信件網址因該為post.gov.tw,所以這裡就能確定是一封詐騙信 (org.uk為英國公會或機構的網站官方所使用之國家代碼頂級域名) 。 2、信中的【點擊這裡】繳費連結點進去後,會開啟中...

PHP計算達成率公式寫法(四捨五入)-教學撰寫:徐嘉裕Neil hsu

分享一個PHP計算達成率公式寫法,效果可以計算出如下圖的達成率 達成率公式範例: 目標 = 100 實績 = 90 達成率 = 90 / 100 * 100% = 90% 套用PHP程式 : $target=100; //目標 $joined= 90; //實績 //達成率 $ratevar=(!empty($target) && !empty($joined) ) ? ($joined / $target * 100) : '0'; //判斷計算值是否為0 ECHO "達成率".round($ratevar,0)."%"; //使用round()四捨五入->輸出結果90% 有需要的朋友參考看看 工作心的撰寫: 徐嘉裕 Neil hsu