2025年1月10日 星期五

跟著書做~~PHP8MYSQL 網頁程式設計聖經

 推薦這本書,從本機建立環境,到之後的操作都有詳細的說明,感恩。



P5-29,有成功更改貼上收件者來寄信。尚未測試gmail與 BCC。

P5-29,若要CC給其他人,要加在後面的郵件表頭,每個都要獨立的一行,用點(.)連結起來。
$mailHeader = "Bcc: aa@gmail.com\r\n";
$mailHeader .= "Bcc: bb@gmail.com\r\n";
郵件內容編碼問題,$mailHeader = "Content-type:text/html;charset=big5";
郵件主旨編碼,要被 "=?UTF-8?B?" 以及"?=" 包起來,再用 php函式 base64_encode處理。$mSubject = "=?UTF-8?B?".base64_encode("主旨")."?=" ;
PHP檔案,存檔的時候也要用utf8。(VSC與DW建立的檔案,用txt開啟,另存時就可以看到是否為utf8嗎???

P5-27,在<php.ini> 設定SMTP,就可以用 mail()函式寄信。
if ( mail ( "david@gmail.com" , " 主旨" , " 內容" [, 郵件表頭] )  ) {  echo '寄出成功' ; }else{ echo '失敗'; }

P5-24,亂數函式,rand(0,5); // 產生0~5的亂數。
  srand(  (double)microtime() * 1000000 ) // 利用時間百萬分之一秒 在乘上 一百萬。

P5-15,遞迴函式 (效能比 迴圈 差,但邏輯好? 程式碼較少)

P5-14,檢查是否可以呼叫函式,if (function_exists( $變數函式) ) { $變數函式(); }

P5-13,呼叫函式,假設 function fun1() {}
這時可以 $變數函式  = "fun1";  //呼叫函式
 $變數函式 ();     //執行函式

P5-12,函式內修改全域變數,將變數放入 $GLOBALS['全域變數'] ,即可修改。

P5-9,取得函式的變數資訊。
個數,func_num_args();
第N個,func_get_arg(n-1);
轉成陣列,func_get_args(); 

P5-8,$變數的傳址呼叫,在前面加個 & (&$變數),這時不管在函式內、外修改,都會改變$變數。
function  showA( &$a ) { $a += 2; }

P5-3,自訂函式,PHP3以前,函式要先寫才能呼叫。還是先寫函式在呼叫。
function  函式名稱 ($變數1 , $變數2='預設值' , ...) { 執行;  [也可以  return 回傳值 ; ] }

P4-11,迴圈,while、do ... while、for、 foreach 四種。搭配 break、continue、goto。
while ($i < 10 ){ 執行;  $i++; }
do { 執行;  $i++; }while( $i<10) 
for ( $i=0; $i<=10;  $i++) { 執行; }
foreach ($_POST['items']  as $v ) { echo $v."<br>";   }

P4-2,條件控制,if 與 switch,兩種,搭配 break、continue、goto。
if (條件1) { 條件1成立就執行 }elseif (條件2) { 條件2成立就執行} else { 都沒符合條件就執行}。 
switch ("值") { case   "值1" :  執行1 ; break;
    case   "值2" : 執行2; break;    case  "值3" : 執行3; break;   default:  值都不符合才執行; }

P3-43,include_once、require_once,可以避免重複include、require。例如資料庫連線,且建議將引入檔案都用php較安全。

P3-41,include與 require差別。
重要的跑require,因為錯誤中斷程式 (不能回傳值)。
include會繼續跑下去,在迴圈中,建議使用 include,因為可以回傳值。

P3-39,select 可以用陣列傳送, select name='items[]' ,中括號。
接收,用foreach迴圈,foreach ($_POST['items']  as $v ) { echo $v."<br>";   }

P3-34,傳送(POST可以改成GET),form 裡面要放1、2個東西, 內容要放3、4個東西。
1. method="POST" 或"GET",2. action="某個php"
3. input的 name  , 4. input 的 type='submit'。這樣就可以傳送到某個php。
接收(POST可以改成GET),某個php裡面可以用 $_POST[' input的name'];

P3-32,執行shell指令。因為使用WIN10,所以還要調整顯示編碼。
$Phinet = `ping 168.95.1.1`;
echo iconv('big5', 'utf-8', nl2br($Phinet));
iconv() 將big5轉成 utf8。
nl2br (是NL,不是N1)可將傳回的結果自動分行顯示。

P3-10,常數的說明,不能放在雙引號裡面使用,只能用點 (.) 連結常數。
const eHappy = 'https://google.com'
echo "網址是" .eHappy.",請點選";

P3-6,變數的說明,前面加$字號。可以放在雙引號中使用,也可知道使用者的IP ($_SERVER['REMOTE_ADDR'] )。

P2-14,說明VSCODE的設定。

P-2-3,說明XAMPP的設定。

2025年1月9日 星期四

WINDOWS的一些功能



指定登入帳號,regedit,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,【新增】→【字串值】,「DefaultUserName」更改要的帳號。「DefaultPassword」項目。「AutoAdminLogon」內的Value data的值設為1。

隱藏帳號,感謝Andy分享,但因為留下來的是USER或是GUEST,無法用net啟動管理者。所以還是使用輸入密碼錯誤比較合適。

看主機資訊,感謝夜神模擬器分享,cmd → msinfo32,某台VMWARE竟然噴錯。

資安密碼原則,六個月換密碼,感謝新竹女中分享,先去電腦管理(win + x + g)將密碼取消永久有效,再去群組原則(gpedit.msc) →電腦設定→windows設定→安全性設定→帳戶原則→密碼原則。

限制密碼輸入錯誤幾次感謝電腦王阿達分享,gpedit.msc → 「電腦設定 >> Windows 設定」,雙擊 「安全性設定」。→「帳戶原則」,再雙擊「帳戶鎖定原則」。感謝老貓測3C分享,家用版的也可以啟用。
企業版24H2竟然沒有開,家用版的24H2有自動開啟說@@

有天用USER帳號去我的電腦→右鍵→管理,就可以看到這台電腦有哪些帳號@@當我點選ADMIN右鍵修改密碼時,全身抖了一下,所幸最後確認時,出現權限不足。
所以想說要關閉這個"電腦管理",避免他人知道我用哪個帳號@@其實好像USER登出後,就會顯示@@呵呵呵,且LINUX也可以看到有哪些使用者@@爬了一下,只有旭日和風有分享gpedit.msc可以關閉控制台(連ADMIN也都關閉),但好像有印象去哪個圖書館的公用電腦上就全都鎖住,只能用chrome。
或許微軟應該考慮一下開立一個帳號只能"使用軟體"跟"我的電腦"(開啟檔案)就好@@其他系統都無法碰觸。

查看本機的相關資訊,win鍵後,輸入 system,就會出現系統資訊
其中,系統摘要→虛擬化型安全性,可以看是否有開啟TPM2
在記憶體→那邊也可以看到"信賴平台模組2.0"是否OK
或是直接在開始→執行,輸入tpm.msc
但最重要的是,為什麼會因為驅動程式導致"核心隔離"被關閉。找到一篇微軟的文章,在解決這個問題耶~~win+R執行gpedit.msc,電腦設定>系統管理範本>系統>Device Guard,打開 開啟虛擬化行安全。還有下載intel驅動程式。
4tit也有分享一篇文章,在刪除舊的驅動程式(沒有用到的)就...請斟酌使用@@。


微軟的KIOSK模式







最近想要買PC、筆電與螢幕、HP彩色雷射印表機及周邊商品

ITHome 介紹asus有TPU(就不用CUDA顯卡嗎?)的迷你主機NUC 15 Pro及NUC 14 ProNvidia的迷你主機Digits,3000美金。

 T客邦推薦一台ACER P4、P6(可以當平板),可拆解的筆電,感謝Lion獅子說書分享

感覺迷你電腦 i7 也不錯喔,DDR4_32G($2050),看來i7+1TB_64G比較划算。AMD出了一款外接開關的迷你主機

外接CUDA顯卡Thunderbolt™ 3.0外接顯卡盒沒有含顯卡(PCHOME),凌華科技有含顯卡(機器人王國)

巴哈姆特有人提供筆電改裝(提到egpuTesla p40),3050顯卡

2025年1月8日 星期三

win11的問題


工作排程 訪客好像無法使用,在管理員那邊有新增"使用者登入後執行"的排程,但去訪客那邊沒有看到此工作排程,且管理者也跑不起來(是USB_KILLER的啟動bat)。
最後只好修改看看bat裡面要啟動的EXE有哪些,去修改權限給那個訪客,並放入shell:startup就OK。
感謝保哥分享,所有使用者的啟動資料夾路徑,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp。
目前使用者的啟動資料夾路徑:%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

WIN11_24H2確認是否可以安裝,直接用ISO執行就可以知道是否可以安裝了。

安裝時,出現找不到任何磁碟機華碩給安裝ISRT的方法,或是直接將RAID改成AHCI (OK)。有人嘗試安裝ISRT與關閉VDM還是不行安裝

安裝一台NUC,USB裝到一半突然跳出找不到驅動程式,感謝茶包射手日誌分享,先關閉有問題的畫面到最初的安裝畫面後,將USB拔出在插入,就可以了@@

忘記密碼自己紀錄的一篇
都要先shift重開機,進入安全模式
感謝wanda分享用regedit載入登錄區,但到config就因為沒有密碼無法進入。
感謝Louis分享新增帳號,但不是最高管理者就無法新增。

win11 支援 intel 的代數。有一台 intel 三代,一開始( 2023年 22H2 ) 還可以安裝win11,到了2024年的 23H2就不能更新,微軟WIN11的版本歐飛先生說八代CPU才正式支援

 win11至少要16G,home可以支援到128G。的23H2至少要16G(感謝XFASTEST分享),其實就是一條RAM(以前DDR2最大4G,一般2G。現在DDR4好的32G,一般16G)。感謝度估筆記本分享Hyper-V吃掉這麼多記憶體。

home版可以支援128G(感謝Emily分享)

安裝WIN11 不用微軟帳號

2025年1月6日 星期一

ansible 的問題



感謝Tsung分享刪除檔案的某一行。我是想刪除 /etc/fstab的最後兩行。
sed -i '$d;$d' filename # 刪除最後兩行的內容。在ansible的 ad_hoc ( 寫在sh ),改成 sed -i '\$d;\$d' filename。
但測試後只能刪一行,所以搭配for迴圈
成功了,sed -i /\/dev/d filename,就可以刪除 /dev 開頭的行(但要小心)

感謝RedHat分享 ansible 官方文件,想說有沒有可以查詢yml語法 (block, rescue, always )。 

感謝鳥哥分享 ansible 快速部屬

感謝微軟分享,在LINUX 用 ansible 安裝MSSQL


2025年1月5日 星期日

未完成~跟著書做~用實務案例學會Linux

台科大的學生好幸福喔,有這本書可以學習,寫得不錯喔 ~作業也是個好的練習,下面是學習遇到的問題做個紀錄。





P138,FTP,安裝FTP也無法操作???

P137,traceroute --help,路由器追蹤。rocky要dnf安裝。

P136,ifconfig網卡設定,ifconfig enpos3  down ( 或 up ),
也可以重新修改IP,ifconfig enpos3 inet  X.X.X.X(ip address) 

P136,nslookup 查詢DNS,可以先用 set q=a (a也可以改成mx、ns),接著輸入google.com,就可以查詢google.com相關資訊。

P131,crontab,分  時  日  月  週  程式。-l 列出,-r 刪除,-e 編輯。

P130,kill,-9 停止程序,-15 軟體終止。

P126,ps 看當前的程序,-u 使用者,-aux 全部。-l 若是有Z表示是zombie。

P124,du 看硬碟空間大小。du  /var/spool

P122,find 找尋檔案。find  ./  -name "d*",找出d開頭的檔案。
            find ./  -size +10,檔案大於10 block (一個block = 512 bytes)
            find  ./  -name  abc  -exec rm {} \; ,找到abc並刪除,這裡要小心,之前練習忘了打-name ,所以底下的資料全刪@@
            find ./  -name  abc  -exec  mv {}  def \;,修改檔名

P118,tar (tape archive),是只硬碟與磁帶互傳耶!不是打包的意思(但有打包的功用)。
-t 可以顯示裡面檔案、 -c  新增、 -x 解開,最後一定要加 -f 。

P116,主機連線要注意的有 /etc/hosts (有)、/etc/hosts.equiv (無)、使用者家目錄下的 .rhosts (無)
上面三個檔案裡面寫的是主機名,另外要檢查DNS是要先讀取 hosts喔。(cat /etc/nsswitch.conf  | grep dns )

(copilot)查看系統是64位元或32位元,uname -m ,x86_64表示是64位元,i686、i386表示32位元。

P112關機、重開機。reboot、poweroff。
指定時間關機,shutdown -h +5; (過五分鐘後關機),shutdown -h 15:22 (指定時間關機)
查看  重開機資訊,last  -x  reboot。
查看  關機資訊,last  -x  shutdown。

P109,不用useradd新增帳號,五個步驟
1. 編輯 /etc/passwd,將要新增的帳號寫進去
2. 執行  pwconv,同步更新/etc/passwd 到 /etc/shadow。
3. passwd  使用者,新增密碼
4. 建立目錄與權限。 cd /home/users/; mkdir frank/ ; chown frank  frank/ ;  chgrp frank frank/
5. cp /etc/skel/*   /home/users/frank/ ;  chown  frank   /home/users/frank/*  ;
    cp /etc/skel/.*   /home/users/frank/ ;  chown  frank   /home/users/frank/.* ;


P108建立帳號,useradd  -d /home/users/frank  -s  /bin/csh   frank。(d 換目錄、s 改 shell )
P110,  -s  /bin/false |  /bin/nologin ,帳號就無法登入。 

P104看帳號狀況,passwd -S moon。

P94,作業。 ( 1.)  cal 8 2018,顯示八月 2018年。
( 2. ) vim f1 要另存時,可以 : w  f2,接著關閉檔案有兩個選項,一個是q! (這樣f1保持舊的。 wq 則 f1 變成跟 f2 一樣)
( 3. ) 刪除檔案中某個字(sed),sed  -i 's/LS/LSS/g' ls.out
( 4. ) cat、ls、mv、mkdir、touch、gzip、vim、rm、pwd、more、
( 5. ) 階層式架構。/etc 放系統結構檔且可執行。/var 放很多的變數。
( 6. ) ab -c 200 -n 500 -t 60 http://localhost/
( 7. ) stat 看檔案,Inode 代表被多少連結。
( 8. ) chmod 444 file1
( 9. ) 沒有x就不能進入目錄。沒有r 就不能複製檔案。
        建立的檔案都是 -rwxr-xr-x,用 umask 011會變成-rw-rw-rw-。無效。
(10.) chmod g+s u+rwx g+rx o+rx file1
(11.) grep,-v 不包含,-i 不分大小寫。
        egrep,egrep 'root | haproxy' /etc/passwd,可以同時找到兩個
        fgrep,可以先建立一個字典,然後依照字典去搜尋。
            fgrep  -i  -f 字典  /etc/passwd
(12.) /sbin/init。rc0.d 關機,rc1.d 單人,rc2.d 多人無NFS,rc3.d 多人,rc4.d 未定義,rc5.d X視窗,rc6.d 重開機。這些都在init.d/ 目錄中。
(13.) cp -r、rm -r (recursive) 複製或刪除目錄下的東西。
(14.) ping xxx.yyy.edu -c15

P93,gzip壓縮檔案成 GZ檔 (不能壓縮目錄),解壓縮用 gzip -d  ooxx.gz。

P92,複製目錄時(cp -r ),裡面還有檔案時(不管是目錄或檔案),都要加 -r。

P86,次目錄,/var/spool/mail 、 /var/spool/cron (crontab工作排程)。
                          /var/log/wtmp (所有登入登出紀錄),用 last 觀看。
                          /var/log/syslog 或 /var/log/messages (系統核心資訊)。
                          /var/www/  網站的位置。

P84,主目錄,/etc 是 "etcetera 等等" 的意思

P81,sort 排序。可以用sort將原始檔排序,sort -n -t : -k3 /etc/passwd
將大於900的帳號排序出來,awk -F ':' '$3>900 { print $1, $3}' /etc/passwd | sort -k2 -n

P78,重導方向,cat < out.html > abc.txt,印象中要先看右邊的指令,所以第一步是 > abc.txt寫入到abc.txt。第二步是 cat < out.html 列出out.html內容。最後組合 (第二步→第一步)

P76,fgrep功能,可以先寫一個類似字典的檔案,然後 fgrep -in -f 字典檔  要搜的檔,這樣就可以顯示字典檔的字出現在"要搜的檔"的第幾行。

P64,ab 測試網站效能,ab -c 1000 -n 1000 http://localhost/
        最後的斜線不可以少(我就是忘記給斜線,測好久才發現)。

2025年1月3日 星期五

天氣熱,買個冰絲被來蓋,冰絲/ 西裝褲來穿。天氣冷,買個軟殼褲。

 話說老婆要台灣製的@@所以找了一些冰絲被(3M吸濕排汗60支天絲涼被減少蟎菌沾附)

褲子就沒看到喜歡的~~只好去西裝店買,上次買了一條黑色的,也是很舒服,且有幫忙剪裁,還有ZENO的褲子也很好穿。

順便買個單人蚊帳給小朋友用,夏天到了最討厭蚊子了@@之前是買雙人的蚊帳,還不錯用~~

登山褲yahoo軟殼褲,pchome有賣德國軟殼褲

2025年1月2日 星期四

VPN 的問題

 

華碩的AP有可能可以設定為VPN server喔 (要看機型)。

感謝upsangel分享DIY搭建VPN路由器,還是需要有實體才能試試看@@

google 的問題

 


google也可以搜尋PDF內容只要 PDF 檔案內容是未受密碼保護或未經加密的各種字元編碼 (不限語言),Google 就能為檔案中的文字內容建立索引。

google doc的標題可以折疊,感謝YT的Ruth分享設定。檔案→頁面設定→不分頁,就完成了。

20240620,google文件不要自動打開word檔。因為版面會整個都跑掉了,感謝電腦玩物分享修改網址就可以讓檔案直接下載

原本的連結是https://docs.google.com/document/d/11EQHvDFvExIRmaEoQkrK1hPn1o/edit
改成https://docs.google.com/document/d/11EQHvDFvExIRmaEoQkrK1hPn1o/export?format=docx
export?format= 這個是固定的,後面接著原本檔案的副檔名就可以囉。(好像不支援pptx)



2025年1月1日 星期三

影片的問題

 

分割影片,話說同學錄的影片,因為太晚錄,所以就一錄到天亮@@使用win11的編輯影片,轉進來就很久時間(應該是當機),剛好有看到仲佑老師分享用ffmpeg來合併影片,所以就想說是否也可以分割影片呢???感謝周宇翔分享多個切割影片的軟體,感謝保哥分享操作說明實作部分(家WIN11)要下載WINportable版,搭配保哥的方法,成功。(發現ADATA 64G那隻速度還蠻快的,貼入80多MB,移出有100多MB,當然移出的時候還要看對方硬碟的速度。)
.\ffmpeg -to '00:51:38' -i '原本的影片.mp4' -c copy '新產生的影片.mp4'

若要切前面的影片 -ss 有問題??? 解決辦法是,當使用 -ss 時,就不要用 -c copy,讓程式重新編碼一次,花比較多時間,更。