跳到主要內容

發表文章

於Xoops佈景中製作一個profile模組註冊頁面的防機器人機制(js+php+ajax)-教學撰寫:徐嘉裕Neil hsu

相信用過Xoops架站的朋友最怕就是遇到機器人了,每天都來註冊產生一大推的垃圾帳號,刪到手都酸了還刪不完,所想以說在佈景中寫一個js+php+ajax的防機器人驗證機制來阻擋垃圾帳號的建立,解決註冊機器人出亂的問題。 範例網站: http://demoweb.neodw.com/themesdemo/modules/profile/register.php 防機器運作方式是這樣,先由js建立10位數的隨機碼,然後透過js建構一個name='verification'欄位取得隨機碼值,另外再透過ajax吧隨機碼值存入$_SESSION['profile_post']中,當user送出表單時所建構的欄位name='verification'會吧數值post到註冊表單的第二頁,然後php會讀取ajax的$_SESSION['profile_post']數值與post過來的$verification核對,如果數值相符則進行後續的註冊流程,若不相符或是$_SESSION['profile_post']為空值則返回首頁顯示【本站不歡迎機器人註冊】的文字,所以就算機器人使用的瀏覽器沒啟用javascript也一樣無法送出註冊會員表單,在第二頁就會被阻擋,資料不會被寫入資料庫中。 製作註冊表單防機器人方法如下 (請先安裝profile會員管理模組) : 1、於Xoops佈景根目錄中建立一個js資料夾(佈景最頂層目錄),然後建立一個anti-robot.js檔,並貼入以下的code /*==========註冊頁面防機器人設置==============*/ /*================產生亂數==================*/ var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','...

用CSS3的線性漸變做出表格斜線效果的方法-教學撰寫:徐嘉裕Neil hsu

從我開始設計網站到現在,就知道用CSS的border參數是無法畫出表格斜線的,但隨者CSS的發展到CSS3之後,已經延伸出一種可以畫出像以下範例的表格斜線的方法: 就是使用線性漸變的方法(linear-gradient)來實現,在IE10以上跟Google及火狐都能正常顯示,其實方法也不會很困難,以下為製作表格斜線的範例,大家可以參考看看。 表格結構部分 (看紅字即可) <thead> <tr> <th> <div class="slash"> <div class='slash01'>年級</div> <div class='slash02'>科別</div> </div> </th>   略............. </tr> </thead> css樣式部分  .slash{   position:relative;   width:100px;   height:40px;   box-sizing:border-box;   line-height:120px;   background: linear-gradient( 135deg , transparent 49.5%, #212121 49.5%, transparent 50.5%, transparent 50.5%); } .slash01{ position: absolute; top: -50px; } .slash02{ position: absolute; top: -25px; left: 50px; } 135deg 為傾斜角度,設45deg則為則斜線會左右顛倒, #212121 為斜線的顏色,其他都設為transparent透明即可。 .slash01跟.slash02都設為absolute(浮動),顯示位置可以按實際需求調整(left and  top)。 這樣至...

解決tad_uploader網路硬碟模組的細部權限設定送出後顯示【抱歉,您沒有權限造訪該區域】的方法!!-教學撰寫:徐嘉裕Neil hsu

基本上tad_uploader模組功能上是沒問題了,細部權限設定power.php送出後傳值到modules/system/admin/groupperm.php,並帶上$modid數值做判斷,將數值寫入group_permission資料表,這一整段CODE都沒問題,但就是有些網站無法使用【細部權限設】功能,一送出就會顯示【抱歉,您沒有權限造訪該區域】,並返回首頁。 所設定的資料夾權限也並未更新, 經過測試後發現如果是有建了大量的資料夾及大量的群組就會出現  Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 錯誤,當然user是看不到的因為程式會返回首頁,除非管理員在groupperm.php程式頁面加上die():才會看到這段錯誤訊息,意思是 【php 中執行過多的 POST變數更動時所產生的錯誤】 。 例如像下面這個網站細部權限設定中有那麼多資夾跟群組設定, 送出後一定會顯示【抱歉,您沒有權限造訪該區域】並返回首頁,因為php變數的數量已經超過max_input_vars預設的1000了。 解決方法如下: 方法1 修改php.ini方法,找到php.ini檔案,搜尋max_input_vars = 1000會看到以下的設定。 ; How many GET/POST/COOKIE input variables may be accepted ; max_input_vars = 1000 吧max_input_vars前面的;註解拿掉,吧數值加大改成2000或3000! ; How many GET/POST/COOKIE input variables may be accepted max_input_vars = 3000 然後重啟Apache,這樣細部權限設定的問題就能排除了。 方法2 虛擬主機或自己主機使用.htaccess設定值來修改主機php.ini設定方法 如果是自己的主機首先要確認.htaccess的使用功能有被啟用,找到以下的檔案,用筆記本打開httpd.conf...

修改Xoops會員無法編輯E-mail的問題(profile模組)-教學撰寫:徐嘉裕Neil hsu

今天客戶回報說網站會員無法修改自己帳號的E-MAIL,結果用多個網站多個Xoops版本測試還真的有這問題存在,即使是最新的xoops2.5.9也一樣無法修改, profile模組 也是最新版本的,問題到底出在哪?於是作了以下的測試。 先檢查看看管理後台->偏好設定->註冊會員設定,允許會員修改電子郵件地址是否設為 是 確認設定無誤後,再以會員帳號登入(非管理員帳號)->進到帳號管理-點選修改電子郵件 輸入密碼及新的E-MAIL後送出,結果E-MAIL還是一樣,完全沒更新!! 那就是程式的問題了,經過測試後終於找到解決方法如下: 找到以下檔案,用筆記本打開 xoops根目錄/modules/profile/ changemail.php 找到約49行的地方的以下這段程式碼 if (!password_verify( $oldpass , $GLOBALS['xoopsUser']->getVar('pass', 'n'))) { $errors[] = _PROFILE_MA_WRONGPASSWORD; } 替換為 if (!password_verify( $pass , $GLOBALS['xoopsUser']->getVar('pass', 'n'))) { $errors[] = _PROFILE_MA_WRONGPASSWORD; }  問題就是出在$oldpass變數並不存在,所以無論輸入幾次密碼都是顯示密碼錯誤,也就無法進行變更e-mail後面的code運作,吧$oldpass改成$pass後會員修改E-MAIL功能就可以常使用了。 教學撰寫  徐嘉裕  Neil hsu

Xoops2.5.9使用Gmail寄信的方法-教學撰寫:徐嘉裕Neil hsu

如果要使用Gmail的smtp功能來寄送Xoops網站的郵件,基本上是可行的,不過需要修改部分程式及做以下的設定: 1、進入Xoops管理後台->點選偏好設定->系統設定->電子郵件設定 然後填入以下的欄位內容: A:填入要寄信的GMAIL帳號。 B:填入寄信主標題,例如XXX客服信箱之類的 C:電子郵件分發方式改為: SMTPauth D:填入SMTP伺服器: ssl://smtp.gmail.com:465 E:填入GMAIL帳號,就是登入GMAIL信箱那個帳號 F:填入GMAIL密碼,就是登入GMAIL信箱那個密碼 完成後送出 接者需要些修改寄信PORT的設定,Xoops預設PORT是25,要改成Gmail的587 找到以下檔案用記本打開 xoops根目錄/class/mail/phpmailer/ class.smtp.php 開啟後找到      const DEFAULT_SMTP_PORT = 25; 修改為 const DEFAULT_SMTP_PORT = 587; 接者尋找  public $SMTP_PORT =25; 改成  public $SMTP_PORT = 587; 然後還需要修改寄信Gmail帳號的[允許安全性較低的應用程式] 設定,將設定改為 啟用狀態 (啟用低安全性)。 https://www.google.com/settings/security/lesssecureapps 完成以上設定後,可以透過Xoops的寄信給會員功能來測試信件是否有寄出,經測試郵件通通都有寄出 再去Windows Live Mail測試看看能否收到郵件,確認結果也能收到xoops網站所寄出的郵件。 Xoops使用Gmail寄信功能完全正常,這樣就不用花錢再去租用有smtp寄信功能的E-mail了,真的非常好用的功能,感謝佛心估狗大神(拜)。 參考資料來源: https://3q.9527.tw/77 教學撰寫:徐嘉裕 Nei...

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

2017/8/29日追加更新並發佈neilambilight2.4正式版,更新內容如下: 1、修正主選單在超過1440瀏覽器解析度時不正常顯示位置的問題。===================================================================== 2017/8/24日追加更新並發佈neilambilight2.3正式版,更新內容如下: 1、修正佈景跑馬燈於模組內頁無法顯示內容的問題。 ================================================================== 2017/8/23日追加更新並發佈neilambilight2.2正式版,更新內容如下: 1,修改圖片播放器圖片縮圖格式為JPG(原本預設為PNG),解決因圖檔過大導致播放器圖片無法正常顯示問題! (圖片需重新上傳) 2、修正圖片播放器選擇淡入淡出特效時外框圓邊未顯示CSS問題。 3、修改tadnews新聞模組編輯器貼上表格後線格無法顯示的css問題。 =================================================================== neilambilight2.1本次更新主要是針對Xoops2.5.9環境做兼容調校工作,讓neilambilight佈景能正常運作Xoops2.5.9環境下,並確認tad模組區塊及模組功能都能正常使用,調整JS配置,並新增加了新功能跟調整除錯工作。 參考範例網站: http://demoweb.neodw.com/themesdemo/ 本次新增加的三項功能,包括: A、內容頁面隱藏上方區塊設定,當進到模組內容頁時需要滑動滑鼠往上或是點選開啟箭頭才顯示上方區塊,預設是隱藏的,加快網站的開啟速度。 B、多層自訂滑動按鈕區塊功能建置及焦點功能開發,管理員可以於後台建立多個按鈕分類及子按鈕,按鈕會以滑動選單方式呈現,user如進到選單頁面選單會自動展開並呈現焦點顏色,設定選單焦點方法請參閱佈景附件中的neilambilight佈景操作說明手冊.pdf第37頁。 C、另外建立了增加災害警示區塊建置,管理員可以於區塊管理中設定【示警...

Xoops2.5x升級Xoops2.5.9教學-教學撰寫:徐嘉裕Neil hsu

Xoops官網已於2017年8月初發佈Xoops2.5.9正式版並開放下載了,非常感謝 tad吳弘凱 老師進行Xoops語系檔中文化工作,所以現在可以直接到XOOPS輕鬆架下載Xoops2.5.9更新檔了(中文介面)。 Xoops2.5.9下載位置: http://120.115.2.90/modules/tad_uploader/index.php?of_cat_sn=16 選擇【XOOPS 2.5.9 正體中文版 2017-08-03(升級用)】這個檔案,點選下載 下載完成後,然後回到要升級的Xoops網站中,吧xoops\modules\system <-這個資料夾整個刪除掉(在網站根目錄的modules資料夾中),這樣就不會有樣版一下讀.html一下讀.tpl的問題了,乾淨升級。 接者吧剛剛下載的Xoops2.5.9檔案解壓縮,裡面有一個XoopsCore25-2.5.9_for_upgrade目錄,點選進入,然後點選htdocs檔案進入!! 進入htdocs檔案後,吧裡面的檔案 全部複製起來 ,貼到你的xoops網站根目錄中覆蓋舊檔! 完成覆蓋後,再回到剛剛下載的Xoops2.5.9更新檔的XoopsCore25-2.5.9_for_upgrade資料夾中,吧裡面的 xoops_data跟xoops_lib 兩個檔案給複製起來 一樣貼到你的Xoops網站中覆蓋舊檔, 要注意xoops_data跟xoops_lib這兩個檔案的位置 ,有些管理員會吧這兩個檔案移出去根目錄之外,或是改了檔名, 要更新的檔案也到隨者變更(更改覆蓋位置或是檔名)。 然後於瀏覽器網址輸入http://你的網址.com/ upgrade / 就是在首頁網址後面增加一個/ upgrade /  <-升級檔案資料夾 會顯示以下的升級介面-先輸入管理員帳號密碼登入網站 登入後點選繼續按鈕 一直按繼續,直到顯示完成Xoops2.5.9升級為止,然後按繼續! 然後畫面會轉到網站的管理介面中,點選更新系統管理 然後點選->返回模組管理區->完成升級操作 接下來需要進到網站的根目錄中,吧升級檔upgrade刪除掉 (很重要) 。 ...