本網誌記錄網站設計的一些內容筆記。 網站設計需要整合很多工具與概念。 我畢業自淡江電子計算機科學學系,算是科班出身。但我們那個年代(50年代,唉!LKK了!),網路還只是剛開始,相關的技術都是出社會以後陸續接觸學習。 網站的建立與設計,牽涉的範圍真的很廣泛。 網站的目地是甚麼?銷售網頁、電子購物、廣告、社群經營、互動、教學、客戶服務、網站應用程式、...... 需要整合的人才,程式設計師、資料庫管理師、網頁美編、文字編輯、多媒體製作等等。 這裡將記錄一個LKK對網站系統重新學習與複習,還有教學使用的一些資料。
2017年8月6日 星期日
FACC 程式讀取mysql資料庫出來為亂碼
\facc\includes\db\connect_db.inc
找到:$db = mysql_connect($connection["host"] , $connection["dbuser"], $connection["dbpassword"]);
在後面加上這兩行:
mysql_query("set character set 'utf8'");//讀庫
mysql_query("set names 'utf8'");//寫庫
2017年7月20日 星期四
允許特定帳號、特定IP、遠端連線到mysql
從mysql裡面的 user 去設定。
或者從 phpmyadmin 裡面的使用者去設定用戶帳號。
從網路上搜尋到下面資訊:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
或者從 phpmyadmin 裡面的使用者去設定用戶帳號。
從網路上搜尋到下面資訊:
如果你想連接你的mysql的時候發生這個錯誤:
ERROR 1130: Host '192.168.1.2' is not allowed to connect to this MySQL server
1。 改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者myuser從ip為192.168.1.2的主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges; 這句一定要加上。
2017年6月29日 星期四
使用者管理指令
使用者管理指令
useradd 增加使用者。 passwd 設定或變更密碼。 usermod 用戶帳號相關資料微調。 userdel 刪除使用者。 id 查詢使用者的 UID、GID 及所擁有的群組。
- useradd:增加使用者。
[root@dywOffice dywang]# useradd [-ungGmMd] user 參數: -u: 指定帳號的 UID。 -n: 群組為 users。 -g: 後接之群組 initial group,變動 /etc/passwd。 -G: 後接之群組為支援此帳號之群組,變動 /etc/group。 -M: 不要建立使用者家目錄。 -m: 建立使用者家目錄。 -d: 指定某個目錄為家目錄,而不使用預設目錄。 #範例: ### 帳號之群組 ### [root@dywOffice dywang]# useradd -n testing [root@dywOffice dywang]# ll /home/testing total 4 drwx------ 2 testing users 4096 Aug 7 15:28 tmp/ [root@dywOffice ~]# useradd -G ftp test1 [root@dywOffice ~]# useradd -n test2 [root@dywOffice ~]# useradd -g test1 test3 [root@dywOffice ~]# grep test1 /etc/passwd /etc/group /etc/passwd:test1:x:511:511::/home/test1:/bin/bash /etc/group:ftp:x:76:ftp,calculus1A,calculus1B,linux2AB,test1 /etc/group:test1:x:511: [root@dywOffice ~]# grep test2 /etc/passwd /etc/group /etc/passwd:test2:x:512:100::/home/test2:/bin/bash [root@dywOffice ~]# grep test3 /etc/passwd /etc/group /etc/passwd:test3:x:513:511::/home/test3:/bin/bash [root@dywOffice ~]# ls -ld /home/test? drwx--x--x 21 test1 ftp 4096 Jul 31 07:24 /home/test1/ drwx--x--x 3 test2 users 4096 Dec 6 13:50 /home/test2/ drwx--x--x 3 test3 test1 4096 Dec 6 14:11 /home/test3/ ### 帳號之家目錄 ### [root@dywOffice ~]# useradd -M test4 [root@dywOffice ~]# useradd -m test5 [root@dywOffice ~]# useradd -d /home/testx test6 [root@dywOffice ~]# ls -ld /home/test[456x] drwxr-xr-x 4 test5 test5 4096 Dec 19 11:02 /home/test5/ drwxr-xr-x 4 test6 test6 4096 Dec 19 11:04 /home/testx/
- useradd 指令至少可能會更動到的檔案有:
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
- /home/username [表示家目錄 /home 下產生的帳號 username 目錄]
- useradd 指令在建立帳號時會參考的檔案:
- /etc/default/useradd:預設的帳號的基本設定。
GROUP=100 %*<==預設的群組*) HOME=/home %*<==預設的家目錄所在目錄*) INACTIVE=-1 %*<==在 /etc/shadow 內的第 7 欄*) EXPIRE= %*<==在 /etc/shadow 內的第 8 欄*) SHELL=/bin/bash %*<==預設的 shell*) SKEL=/etc/skel %*<==使用者家目錄的內容資料參考目錄*)
- /etc/login.defs:預設的帳號的基本設定。
MAIL_DIR /var/spool/mail %*<==使用者預設郵件信箱放置目錄*) PASS_MAX_DAYS 99999 %*<==/etc/shadow 內的第 5 欄*) PASS_MIN_DAYS 0 %*<==/etc/shadow 內的第 4 欄*) PASS_MIN_LEN 5 %*<==密碼最短的字元長度*) PASS_WARN_AGE 7 %*<==/etc/shadow 內的第 6 欄*) UID_MIN 500 %*<==使用者最小的 UID,意即小於 500 的 UID 為系統保留*) UID_MAX 60000 %*<==使用者能夠用的最大 UID*) GID_MIN 500 %*<==使用者自訂群組的最小 GID,小於 500 為系統保留*) GID_MAX 60000 %*<==使用者自訂群組的最大 GID*) CREATE_HOME yes %*<==在不加 -M 及 -m 時,是否主動建立使用者家目錄?*)
- /etc/skel/*:使用者家目錄的參考設定 copy 至家目錄。
- /etc/default/useradd:預設的帳號的基本設定。
- passwd:設定或變更密碼。
[root@linux ~]# passwd [-lunxwS] username 參數: -l :將 username 這個帳號的密碼鎖住 (lock),在 /etc/shadow 內的密碼欄 -u :將 -l 的 lock 解開。 -n :後面接天數(數字),最短天數;亦即是 /etc/shadow 內的第四欄; -x :後面接天數(數字),最長天數;亦即是 /etc/shadow 內的第五欄; -w :後面接天數(數字),警告天數;亦即是 /etc/shadow 內的第六欄; -i :後面接天數(數字),密碼過期的恕限時間;亦即是 /etc/shadow 內的第七欄; -S :顯示目前這個 username 的相關資訊。 --stdin :經由標準輸入取得密碼,配合管線處理,可大量更改用戶密碼。 #範例: #範例一:鎖住用戶 csie1 的密碼。 [root@localhost csie]# passwd -l csie1 Locking password for user csie1. passwd: Success [root@localhost csie]# grep csie1 /etc/shadow csie1:!!$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861::99999:::: #範例二:解除鎖定用戶 csie1 的密碼。 [root@localhost csie]# passwd -u csie1 Unlocking password for user csie1. passwd: Success. [root@localhost csie]# grep csie1 /etc/shadow csie1:$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861::99999:::: #範例三:更改用戶 csie1 的密碼之最短、最長、警告及過期的恕限時間。 [root@localhost csie]# passwd -n 0 -x 60 -w 5 -i 2 csie1 Adjusting aging data for user csie1. passwd: Success [root@localhost csie]# grep csie1 /etc/shadow csie1:$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861:0:60:5:2:: [root@localhost csie]# passwd -S csie1 Password set, MD5 crypt. #範例四:密碼設定,必須經由鍵盤輸入兩次。 [root@dywOffice dywang]# passwd testing Changing password for user testing. New UNIX password: BAD PASSWORD: it is too short Retype new UNIX password: passwd: all authentication tokens updated successfully. #範例五:經由標準輸入取得密碼,配合管線處理,可大量更改用戶密碼。 [root@dywHome2 ~]# echo "lopex" | passwd --stdin dywang
- root 可進行密碼設定與變更,不需要知道舊密碼。
- 一般而言,密碼最好要符合下列要求:
- 密碼不能與帳號相同;
- 密碼盡量不要選用字典裡面會出現的字串;
- 密碼需要超過 8 個字元;
- usermod:用戶帳號相關資料微調。
[root@linux ~]# usermod [-cdegGlsuLU] username 參數: -c :後面接帳號的說明,即 /etc/passwd 第五欄的說明欄,可以加入一些帳號的說明。 -d :後面接帳號的家目錄,即修改 /etc/passwd 的第六欄; -e :後面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 內的第八個欄位資料。 -g :後面接 group name,修改 /etc/passwd 的第四個欄位,亦即是 GID 的欄位。 -G :後面接 group name,修改這個使用者能夠支援的群組,修改的是 /etc/group 第四欄。 -l :後面接帳號名稱。亦即是修改帳號名稱, /etc/passwd 的第一欄。 -s :後面接 Shell 的實際檔案,例如 /bin/bash 或 /bin/csh 等等。 -u :後面接 UID 數字。即 /etc/passwd 第三欄的資料; -L :暫時將使用者的密碼凍結,讓他無法登入。其實僅改 /etc/shadow 的密碼欄。 -U :將 /etc/shadow 密碼欄的 ! 拿掉。 [root@localhost csie]# usermod -c csie1test -d /home/testx -e 2007-12-31 csie1 [root@localhost csie]# grep csie1 /etc/passwd /etc/shadow /etc/passwd:csie1:x:500:100:csie1test:/home/testx:/bin/bash /etc/shadow:csie1:$1$P0vkC.HK$MsHV7PNiDBXHcCS4hJ.yI/:13861:0:60:5:2:13878: [root@localhost csie]# usermod -g test4 -G users -l csie1x csie1 [root@localhost csie]# grep csie1 /etc/passwd /etc/group /etc/passwd:csie1x:x:500:504:csie1test:/home/testx:/bin/bash /etc/group:users:x:100:csie,csie1x [root@localhost csie]# usermod -s /bin/csh -u 519 -l csie1 csie1x [root@localhost csie]# grep csie1 /etc/passwd /etc/group /etc/passwd:csie1:x:519:504:csie1test:/home/testx:/bin/csh /etc/group:users:x:100:csie,csie1
- userdel:刪除使用者。
[root@linux ~]# userdel [-r] username 參數: -r :連同使用者的家目錄一起刪除。 #範例: [root@dywOffice dywang]# userdel -r testing # 若帳號只是『暫時不啟用』,可將 /etc/shadow 最後倒數第二個欄位(第八欄位)設定為 0。
- userdel 相關的檔案有:
- /etc/passwd
- /etc/shadow
- /home/username
- id:查詢使用者的 UID、GID 及所擁有的群組。
[dywang@dywOffice ~]$ id uid=501(dywang) gid=100(users) groups=100(users)
不讓 apache 的資料夾內的檔案被瀏覽
[不讓 apache 的資料夾內的檔案被瀏覽]
如果資料夾下面沒有 index.html 的時候,
apache 會列出目前資料夾下面的檔案,
所以不要讓 apache 列出目前網頁資料夾下面的檔案,
第一個方法就是新增一個 index.html 到網頁的資料夾,
第二個方式是修改 httpd.conf
找到 <Directory "/home/www/htdocs">
請把 Options 裡面的 Indexes 拿掉,
然後 restart apache 就可以了。
如果資料夾下面沒有 index.html 的時候,
apache 會列出目前資料夾下面的檔案,
所以不要讓 apache 列出目前網頁資料夾下面的檔案,
第一個方法就是新增一個 index.html 到網頁的資料夾,
第二個方式是修改 httpd.conf
找到 <Directory "/home/www/htdocs">
請把 Options 裡面的 Indexes 拿掉,
然後 restart apache 就可以了。
ubuntu xamp ftp install
在ubuntu vps 使用putty ,安裝ftp:
/# apt-get update
/# apt-get install apache2
/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
/# apt-get install php5 libapache2-mod-php5 php5-mcrypt
/# apt-get install nano
/# nano /etc/apache2/mods-enabled/dir.conf
/# apt-get install phpmyadmin
/# service apache2 restart
/# apt-get install vsftpd
/# nano /etc/vsftpd.conf
/# service vsftpd restart
/# apt-get update
/# apt-get install apache2
/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
/# apt-get install php5 libapache2-mod-php5 php5-mcrypt
/# apt-get install nano
/# nano /etc/apache2/mods-enabled/dir.conf
/# apt-get install phpmyadmin
/# service apache2 restart
/# apt-get install vsftpd
/# nano /etc/vsftpd.conf
/# service vsftpd restart
VSFTPD configuration problems with 12.04
In vsftpd.conf
Make the following change : pam_service_name=ftp
Save your change and restart the ftp server.2017年6月17日 星期六
codecharge 的 panel
CodeCharge 的 Panel
我將一個 Recordset 的from 設為一個 pnl_display
再設另一個 Panel : pnl_nodisplay
在程式中去控制顯示與否
結果,原本的 records 的功能,error 等,都不見了!
將 panel 拿掉,就正常了!
原來是panel的範圍弄錯了
error 應該在panel之外
我將一個 Recordset 的from 設為一個 pnl_display
再設另一個 Panel : pnl_nodisplay
在程式中去控制顯示與否
結果,原本的 records 的功能,error 等,都不見了!
將 panel 拿掉,就正常了!
原來是panel的範圍弄錯了
error 應該在panel之外
2017年6月15日 星期四
jQuery 相加
js中,一个变量和一个数字相加,得到的是相连之后的结果。
比如,var a = “1” + 2,结果为12,比如我在 input 框中取出值,并使其加一,
var num = $(“.inputNum”).val() + 1; 结果就是相连接,加 eval 也无效。
解决方案:将字符串转为 js 内部对象 Number ,这样整型实型数都可以用。
jQuery Code:
HTML Code:
比如,var a = “1” + 2,结果为12,比如我在 input 框中取出值,并使其加一,
var num = $(“.inputNum”).val() + 1; 结果就是相连接,加 eval 也无效。
解决方案:将字符串转为 js 内部对象 Number ,这样整型实型数都可以用。
jQuery Code:
1
2
3
4
5
| $(document).ready( function () { var sum = 8; sum = sum + Number($( ".inputNum" ).val()); alert(sum); }); |
1
| < input type = "text" class = "inputNum" value = "100" /> |
訂閱:
文章 (Atom)
如何判斷現在FORM是在 insert mode? 還是 update mode?
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。
-
讓 PHP 接收 post 的 json 資料 - 8月 02, 2013 我們在串接API的時候會用到 CURL 函式 POST 資料給 JSON 接收,雖然我們是使用 POST 傳出資料。但是我們在接收的 SERVER 端使用 $_POST 卻抓不到任何資料。 原來 ...
-
分享:網站上 http://shuai.be/archives/php-undefined-index/ 平時用 $_GET[ ‘ xx ’ ] 取得參數值時,如果之前不加判斷在未傳進參數時會出現這樣的警告 : PHP Notice: undefined i...
-
Note that it's ultimately the responsibility of the server admin to ensure his system is secure. These are some basic security tips tha...