Fixing scriptcase permission on your host
Some users have problems regarding permissions. When they are uploading files you can a message likes this "500 Internal Server Error" or when trying to creating the connection on scriptcase deploy environment you get an error like this "failed to open stream: Permission denied" or when you to try register in your scriptcase.
The first thing that some people say its to give 777 permission. The first "7" is the total permission for the owner, the second one is for the group and the third "7" is for everyone. Here is the trick, for hosts company, a permission 777 is a security issue for php files. "Everyone" can't have total permission. So you cant an internal server error.
The correct permissions are:
Folders: 755
Files: 644
So, how to fix?
Step-by-step:
1. Open a shell (or putty on windows) and log in into your SSH account;
2. Execute this command at the prompt for folders:
find /home/YOURUSER/public_html/ -type d -exec chmod 755 {} \;
3. Execute this command at the prompt for files:
find /home/YOURUSER/public_html/ -type f -exec chmod 644 {} \;
Execute this command at the prompt for fix owner (only if the files aren't if your username):
chown YOURUSER.YOURUSER /home/YOURUSER/public_html/ -R
本網誌記錄網站設計的一些內容筆記。 網站設計需要整合很多工具與概念。 我畢業自淡江電子計算機科學學系,算是科班出身。但我們那個年代(50年代,唉!LKK了!),網路還只是剛開始,相關的技術都是出社會以後陸續接觸學習。 網站的建立與設計,牽涉的範圍真的很廣泛。 網站的目地是甚麼?銷售網頁、電子購物、廣告、社群經營、互動、教學、客戶服務、網站應用程式、...... 需要整合的人才,程式設計師、資料庫管理師、網頁美編、文字編輯、多媒體製作等等。 這裡將記錄一個LKK對網站系統重新學習與複習,還有教學使用的一些資料。
2019年1月26日 星期六
2019年1月9日 星期三
XOOPS tad_news 分類新聞區塊,thumbnail bootstrap 4 設定錯誤
XOOPS tad_news 分類新聞區塊,thumbnail bootstrap 4 設定錯誤
分類新聞區塊,上傳圖形以後,結果圖形很大,沒有縮小。
經過查詢,發現是該區塊的 theme 設定的 class <img src="<{$all_news.pic}>" alt="<{$all_news.nc_title}>" title="<{$all_news.nc_title}>" class="img-responsive thumbnail">
<img src="<{$all_news.pic}>" alt="<{$all_news.nc_title}>" title="<{$all_news.nc_title}>" class="img-responsive img-thumbnail">
該檔案位置:
/modules/tadnews/templates/blocks/b4/tadnews_block_cate_news.tpl
分類新聞區塊,上傳圖形以後,結果圖形很大,沒有縮小。
經過查詢,發現是該區塊的 theme 設定的 class <img src="<{$all_news.pic}>" alt="<{$all_news.nc_title}>" title="<{$all_news.nc_title}>" class="img-responsive thumbnail">
<img src="<{$all_news.pic}>" alt="<{$all_news.nc_title}>" title="<{$all_news.nc_title}>" class="img-responsive img-thumbnail">
該檔案位置:
/modules/tadnews/templates/blocks/b4/tadnews_block_cate_news.tpl
<{foreach item=all_news from=$block.all_news}>
<{if $all_news.news}>
<div class="row">
<{if $all_news.show_pic}>
<div class="col-sm-2">
<a href="<{$xoops_url}>/modules/tadnews/index.php?ncsn=<{$all_news.ncsn}>">
<img src="<{$all_news.pic}>" alt="<{$all_news.nc_title}>" title="<{$all_news.nc_title}>" class="img-responsive img-thumbnail">
</a>
</div>
<div class="col-sm-10">
<{else}>
<div class="col-sm-12">
<{/if}>
<h4><a href="<{$xoops_url}>/modules/tadnews/index.php?ncsn=<{$all_news.ncsn}>"><{$all_news.nc_title}></a></h4>
<ul>
<{foreach from=$all_news.news item=news}>
<li>
<{$news.post_date}>
<{$news.always_top_pic}>
<{$news.prefix_tag}>
<a href="<{$xoops_url}>/modules/tadnews/index.php?nsn=<{$news.nsn}>"><{$news.news_title}>
</a>
<{if $news.content}>
<{$news.content}>
<{/if}>
</li>
<{/foreach}>
</ul>
</div>
</div>
<{/if}>
<{/foreach}>
只要修改 class= "img-thumbnail" 這樣就好了!
2019年1月6日 星期日
修改Tadnews模組裡面的 電子報區塊
發現 電子報區塊裡面,有訂閱人數,這個資訊,我不希望讓它出現,就開始尋找,從哪裡可以把它拿掉!
查詢程式,找到在這裡:
/modules/tadnews/templates/blocks/b4/tadnews_block_newspaper.tpl
將裡面 Line 4:
<!-- <{$block.counter}> -->
用 <!-- --> 把它Mark起來,再上傳上去,就完成了!
恭喜老爺!
這可能也是 open source 的好處之一,如果萬一碰到需要自行修改程式的時候,可以有更改的 機會。
過去沒有 Source Code 的程式,經過 Compile 成為執行檔,使用者沒有原始碼,萬一要修改,就GG了!
不過,雖然有原始碼,還是要看得懂啦!才有辦法改!
查詢程式,找到在這裡:
/modules/tadnews/templates/blocks/b4/tadnews_block_newspaper.tpl
將裡面 Line 4:
<!-- <{$block.counter}> -->
用 <!-- --> 把它Mark起來,再上傳上去,就完成了!
恭喜老爺!
這可能也是 open source 的好處之一,如果萬一碰到需要自行修改程式的時候,可以有更改的 機會。
過去沒有 Source Code 的程式,經過 Compile 成為執行檔,使用者沒有原始碼,萬一要修改,就GG了!
不過,雖然有原始碼,還是要看得懂啦!才有辦法改!
2019年1月5日 星期六
XOOPS製作電子書
電子書如何做?
光一個PDF,在網頁上,很難看。
XOOPS有個書籍模組
我試試看,用WORD編好一本書,然後,列印出來 jpeg 檔案。
然後,逐頁上傳上去 書籍模組,這樣看起來還不錯。
紀錄一下中間過程。
一、編好 WORD 檔案
二、WORD 檔名,最好列印前改用英文檔名,用Paperless Printer 印出 jpeg 檔案 產生的 jpeg 檔案名稱,就會是 英文檔名+000nn.jepg
三、由於 產生的 nn 序號,不好,必須 重新 RENAME 成為 正確的序號檔案 xxxx.jepg xxxx0001.jepg xxxx0002.jepg ... xxxx00010.jepg Paperless Printer 是這樣編序號的。所以,必須修改
四、使用 Excel 檔案,來做一個 Batch 檔案,
DOS的 RENAME source_filename target_filename
Excel VBA寫一個 GetFileNames 模組函數
Function GetFileNames(ByVal FolderPath As String) As Variant
Dim Result As Variant
Dim i As Integer
Dim MyFile As Object
Dim MyFSO As Object
Dim MyFolder As Object
Dim MyFiles As Object
Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set MyFolder = MyFSO.GetFolder(FolderPath)
Set MyFiles = MyFolder.Files
ReDim
Result(1 To MyFiles.Count) i = 1
For Each MyFile In MyFiles
Result(i) = MyFile.Name
i = i + 1
Next MyFile
GetFileNames = Result
End Function
然後,在Excel 工作表中: A1 : your_directory A3: =IFERROR(INDEX(GetFileNames($A$1),ROW()-2),"")
其中 ROW()-2 是現在在 A3 row3 , -2 才能得到 1, 這是 index
GetFileNames 出來的是一個 Array
然後,將 A3 往下複製,就可以拉出所有的 檔案名稱出來了
在右邊 C3: =RIGHT(A3,9),取出檔案名稱右邊9個字元,就可以得到 序號的檔名
然後,再 E3: ="RENAME """ & A3 & """ """ & C3
在 Excel中,字元雙引號,只要重複兩次雙引號,就可以得到字元雙引號。
再往下複製出來一串 RENAME指令 將之複製到一個文字檔案,存檔成為 xxx.bat 然後,執行該 .bat檔 完成!
五、將這些 Jpeg 檔案,上傳到主機 xoops / uploads / tad_book3 / image / your_folder
六,編輯 Xoops 上 tad書籍,
完成!
光一個PDF,在網頁上,很難看。
XOOPS有個書籍模組
我試試看,用WORD編好一本書,然後,列印出來 jpeg 檔案。
然後,逐頁上傳上去 書籍模組,這樣看起來還不錯。
紀錄一下中間過程。
一、編好 WORD 檔案
二、WORD 檔名,最好列印前改用英文檔名,用Paperless Printer 印出 jpeg 檔案 產生的 jpeg 檔案名稱,就會是 英文檔名+000nn.jepg
三、由於 產生的 nn 序號,不好,必須 重新 RENAME 成為 正確的序號檔案 xxxx.jepg xxxx0001.jepg xxxx0002.jepg ... xxxx00010.jepg Paperless Printer 是這樣編序號的。所以,必須修改
四、使用 Excel 檔案,來做一個 Batch 檔案,
DOS的 RENAME source_filename target_filename
Excel VBA寫一個 GetFileNames 模組函數
Function GetFileNames(ByVal FolderPath As String) As Variant
Dim Result As Variant
Dim i As Integer
Dim MyFile As Object
Dim MyFSO As Object
Dim MyFolder As Object
Dim MyFiles As Object
Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set MyFolder = MyFSO.GetFolder(FolderPath)
Set MyFiles = MyFolder.Files
ReDim
Result(1 To MyFiles.Count) i = 1
For Each MyFile In MyFiles
Result(i) = MyFile.Name
i = i + 1
Next MyFile
GetFileNames = Result
End Function
然後,在Excel 工作表中: A1 : your_directory A3: =IFERROR(INDEX(GetFileNames($A$1),ROW()-2),"")
其中 ROW()-2 是現在在 A3 row3 , -2 才能得到 1, 這是 index
GetFileNames 出來的是一個 Array
然後,將 A3 往下複製,就可以拉出所有的 檔案名稱出來了
在右邊 C3: =RIGHT(A3,9),取出檔案名稱右邊9個字元,就可以得到 序號的檔名
然後,再 E3: ="RENAME """ & A3 & """ """ & C3
在 Excel中,字元雙引號,只要重複兩次雙引號,就可以得到字元雙引號。
再往下複製出來一串 RENAME指令 將之複製到一個文字檔案,存檔成為 xxx.bat 然後,執行該 .bat檔 完成!
五、將這些 Jpeg 檔案,上傳到主機 xoops / uploads / tad_book3 / image / your_folder
六,編輯 Xoops 上 tad書籍,
完成!
2018年12月26日 星期三
Unauthorized access!! E107
e107 uses various security methods to keep your site protected from abuse. However, some server configurations are incompatible with these methods, usually due to these servers employing similar security methods.
In order to disable only the parts which may cause you problems, we recommend you add the following code on a new line in your
e107_config.php file, and see if that helps. If not, please submit an Issue on Github - we'll do our best to find a solution for you.define('e_SECURITY_LEVEL', 0);
2018年12月12日 星期三
MYSQL資料庫命名規則及設計規範
MYSQL資料庫命名規則及設計規範
原文作者: Aeolus (傻鱼)
正體譯者: Fntsrlike (月湖)
1. 設計原則
(1) 標準化和規範化
資料的標準化有助於消除資料庫中的資料冗餘。標準化有好幾種形式,但Third Normal Form(3NF)
通常被認為在性能、擴展性和資料完整性方面達到了最好平衡。
簡單來說,遵守3NF標準的資料庫的資料表設計原則是:“One Fact in One Place”
即某個資料表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。
資料表之間的關係通過外鍵相連接。
有一組資料表專門存放通過鍵連接起來的關聯資料。
舉例:
某個存放客戶及其有關定單的3NF資料庫就可能有兩個資料表:Customer和Order。
Order資料表不包含定單關聯客戶的任何信息,但資料表內會存放一個鍵值,
該鍵指向Customer資料表裡包含該客戶信息的那一行。
事實上,為了效率的緣故,對資料表不進行標準化有時也是必要的。
(2) 資料驅動 (Data-Driven)
採用資料驅動而非硬編碼的方式,許多策略變更和維護都會方便得多,大大增強系統的靈活性和擴展性。
舉例,假如使用者界面要訪問外部資料源(文件、XML文件、其他資料庫等),
不妨把相應的連接和路徑信息存儲在使用者界面支持資料表裡。
還有,如果使用者界面執行工作流之類的任務(發送郵件、列印信箋、修改記錄狀態等),
那麼產生工作流的資料也可以存放在資料庫裡。
角色權限管理也可以通過資料驅動來完成。
事實上,如果過程是資料驅動的,
你就可以把相當大的責任推給使用者,由使用者來維護自己的工作流過程。
(3) 考慮各種變化
在設計資料庫的時候考慮到哪些資料欄位將來可能會發生變更。舉例,姓氏就是如此(注意是西方人的姓氏,比如女性結婚後從夫姓等)。
所以,在建立系統存儲客戶信息時,在單獨的一個資料表裡存儲姓氏欄位,
而且還附加起始日和終止日等欄位,這樣就可以跟踪這一資料條目的變化。
2. 資料庫涉及字元規範
採用26個英文字母(區分大小寫)和0-9這十個自然數,加上底線'_'組成,
共63個字元,不能出現其他字元(註解除外)。
注意事項:
(1)
以上命名都不得超過30個字元的系統限制。
變數名稱的長度限制為29(不包括標識字元@)。
(2)
資料對象、變數的命名都採用英文字元,
禁止使用中文命名。絕對不要在命名對象的字元之間留空格。
(3)
小心保留字,要保證你的欄位名沒有和保留字、資料庫系統或者常用訪問方法衝突。
(4)
保持欄位名和類型的一致性,
在命名欄位並為其指定資料類型的時候一定要保證一致性。
假如資料類型在一個資料表裡是INT,那在另一個資料表裡可就別變成CHAR型了。
3. 資料庫命名規範
資料庫,資料表一律使用前綴
正式資料庫名使用小寫英文以及下劃線組成,盡量說明是那個應用或者係統在使用的。
比如:
web_19floor_net
web_car
備份資料庫名使用正式資料庫名加上備份時間組成,如:
web_19floor_net_20070403
web_car_20070403
4. 資料表命名規範
資料表名使用小寫英文以及下劃線組成,盡量說明是那個應用或者係統在使用的。
相關應用的資料表使用同一前綴,
如論壇的資料表使用cdb_前綴,博客的資料表使用supe _前綴,
前綴名稱一般不超過5字
比如:
web_user
web_group
supe_userspace
備份資料表名使用正式資料表名加上備份時間組成,如:
web_user_20070403
web_group_20070403
supe_userspace_20070403
5. 欄位命名規範
欄位名稱使用單詞組合完成,首字母小寫,後面單詞的首字母大寫,最好是帶錶名前綴。
如web_user資料表的欄位:
userId
userName
userPassword
資料表與資料表之間的相關聯欄位要用統一名稱,
如web_user資料表裡面的userId和web_group資料表裡面的userId相對應
6. 欄位類型規範
規則:
盡量用較少的儲存空間來儲存數一個欄位的資料。
比如能用INT的就不用CHAR或者VARCHAR
能用TINYINT的就不用INT
能用VARCHAR (20)的就不用VARCHAR (255)
時間戳欄位盡量用INT型,如
created:
表示從'1970-01-01 08:00:00'開始的INT秒數,
採用英文單詞的過去式;
gmtCreated :
表示DATETIME類型的時間,
即形如'1980-01-01 00:00:00'的時間串,Java中對應的類型為TIMESTAMP
7. 資料庫設計文件規範
所有資料庫設計要寫成文件,文件以模塊化形式表達。大致格式如下:'------------------------------------------- '表名: web_user '作者: Aeolus(傻魚) '日期: 2007-04-11 '版本: 1.0 '描述:保存使用者資料 '具體內容: ' UserID INT,自動增量使用者代碼 ' UserName CHAR(12 )使用者名字 ' ...... '-------------------------------------------
8. 索引使用原則:
(1)邏輯主鍵使用唯一的成組索引,
對系統鍵 (作為儲存過程) 採用唯一的非成組索引,
對任何外鍵列採用非成組索引。
考慮資料庫的空間有多大,資料表如何進行訪問,
還有這些訪問是否主要用作讀寫。
(2)
大多數資料庫都索引自動創建的主鍵欄位,
但是可別忘了索引外鍵,它們也是經常使用的鍵,
比如運行查詢顯示主資料表和所有關聯資料表的某條記錄就用得上。
(3)
不要索引blob/text等欄位,不要索引大型欄位(有很多字元),
這樣作會讓索引佔用太多的儲存空間。
(4)
不要索引常用的小型資料表
不要為小型資料表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。
對這些插入和刪除操作的索引維護可能比掃描資料表空間消耗更多的時間。
9. SQL語句規範
所有SQL關鍵字全部大寫,比如SELECT、UPDATE、FROM、ORDER、BY等,所有的資料表名和資料庫名都要用``包含
如:
SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = 'aeolus';
10. 其他設計技巧
(1) 避免使用觸發器
觸發器的功能通常可以用其他方式實現。在調試程序時觸發器可能成為乾擾。
假如你確實需要採用觸發器,你最好集中對它文件化。
(2) 使用常用英語(或者其他任何語言)而不要使用編碼或者拼音首字母縮寫
在創建下拉菜單、列表、報表時最好按照英語名排序。
假如需要編碼或者拼音首字母縮寫,可以在旁邊附上使用者知道的英語。
(3) 保存常用信息
讓一個資料表專門存放一般資料庫信息非常有用。
在這個資料表裡存放:
資料庫當前版本、最近檢查/修復(對Access )、關聯設計文件的名稱、客戶等信息。
這樣可以實現一種簡單機制跟踪資料庫,
當客戶抱怨他們的資料庫沒有達到希望的要求而與你聯繫時,
這樣做對非客戶機/服務器環境特別有用。
(4) 包含版本機制
在資料庫中引入版本控制機制來確定使用中的資料庫的版本。
時間一長,使用者的需求總是會改變的。最終可能會要求修改資料庫結構。
把版本信息直接存放到資料庫中更為方便。
(5) 規格文件(Documents)
對所有的快捷方式、命名規範、限制和函數都要規格文件。
採用給資料表、列、觸發器等加註解的資料庫工具。
對開發、支持和追蹤修改非常有用。
對資料庫文件化,或者在資料庫自身的內部或者單獨建立文件。
這樣,當過了一年多時間後再回過頭來做第2個版本,犯錯的機會將大大減少。
(6) 測試、測試、反覆測試
建立或者修訂資料庫之後,必須用使用者新輸入的資料測試資料欄位。
最重要的是,讓使用者進行測試並且同使用者一道保證選擇的資料類型滿足商業要求。
測試需要在把新資料庫投入實際服務之前完成。
(7) 檢查設計
在開發期間檢查資料庫設計的常用技術是通過其所支持的應用程序原型檢查資料庫。
換句話說,針對每一種最終資料表達資料的原型應用,
保證你檢查了資料模型並且查看如何取出資料。
2018年12月5日 星期三
架設伺服主機
幫朋友架設Linux主機,很少架設linux主機,之前幫公司架,已經是三年前的事了。而且是用 ubuntu 6.0架的。後來查到有 Centos-Webpanel 可以用,所以就想說架 Centos
第一次下載了 minimal 版的 centos 7.0
摸索了半天,用 win32diskimager 來建立 centos 的usb開機安裝,搞了半天
........
中間錯誤的過程就不記載了
直接紀錄成功簡單的路徑就好。
用最 minimal 的安裝。
將網路設定好,可以往外連線。
然後,依據 Centos-webpanel.com 的指示,一步一步執行。
http://centos-webpanel.com/installation-instructions
記得,要將最後完成的畫面記錄下來,有sql server 密碼,還有登入資訊
設定好基地台虛擬伺服器的 ip/udp :2030
測試一下就好了!
第一次下載了 minimal 版的 centos 7.0
摸索了半天,用 win32diskimager 來建立 centos 的usb開機安裝,搞了半天
........
中間錯誤的過程就不記載了
直接紀錄成功簡單的路徑就好。
用最 minimal 的安裝。
將網路設定好,可以往外連線。
然後,依據 Centos-webpanel.com 的指示,一步一步執行。
http://centos-webpanel.com/installation-instructions
記得,要將最後完成的畫面記錄下來,有sql server 密碼,還有登入資訊
設定好基地台虛擬伺服器的 ip/udp :2030
測試一下就好了!
訂閱:
文章 (Atom)
如何判斷現在FORM是在 insert mode? 還是 update mode?
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。
-
3-1 使用 Smarty 一、Smarty基本操作 大原則:和外觀有關的東西都放到.html或.tpl中,所需要的資料全由.php提供,簡單範例,index.php內容: <?php require_once 'smarty/lib...
-
分享:網站上 http://shuai.be/archives/php-undefined-index/ 平時用 $_GET[ ‘ xx ’ ] 取得參數值時,如果之前不加判斷在未傳進參數時會出現這樣的警告 : PHP Notice: undefined i...
-
【PHP】下載檔案但不直接開啟 多數人在下載檔案的頁面直接連結該檔案, 如下寫法 ---- a href="檔名.副檔名" 這在 windows 系統會有一個可能的狀況, 當此類型檔案與 windows 預設開啟功能...