Benmr's blog

分類 · 技術筆記

首頁

關於

文章列表

PHP 指定日期格式、加減運算(天/月/年)

前言最近常常遇到須要指定日期格式 並對該日期做加減運算 像是加一天、減一天、加一個月、減一個月之類的 下面就來紀錄一下 PHP 原生的寫法 好用又不需要載入額外的東西 實作給目前時間加一天、一小时<?php echo "今天:",date('Y-m-d H:i:s'),"<br>"; echo "明天:",date('Y-m-d H:i:s',strtotime('+1 day')); ?> 同理,加一年、一個月、一小時、一分鐘…<?php echo "明天:",date('Y-m-d H:i:s',strtotime('+1..

更多
loading..

第三方 Cookie SameSite = Lax 對應 PHP 調整方式

前言因應最近第三方 Cookie 的規則 PHP 在 setcookie func 也要有相對應的修正 這篇文章寫的相當詳細 值得好好拜讀一波 以下就介紹自己遇到的問題和對應調整 問題原始解法解法在上面這篇文章裡其實都有寫到 而這篇文章也有提到 PHP 7.3 前後差別的寫法 同時官方文件 也有提用 options 的寫法 所以我們就使用了官方文件底下好心人的解法 <?php $arr_cookie_options = array ( 'expires' => time() + 60*60*24*30, 'path' => '/', 'do..

更多

實作網站阻止多重登入

前言網紅啾啾鞋日前在他的 youtube 上放了個影片 [embed]https://www.youtube.com/watch?v=bXCZSx60NXk\[/embed\] 說明他在 hahow 的線上課程在蝦皮上被盜賣的事情 其中影片的最後甚至實際測試了一波 發現 hahow 在網站上並無做多重登入的阻擋 也就是說 某A 和 某B 是可以同時登入同一個帳號來觀看線上課程 進而影響到內容創作者的權益 其實我覺得這種事是見人見智啦 就像是我買了一本書後 我也可以把這本書借給其他人讀 或是開個讀書會 大家一起讀 不過不管怎樣樣 多重登入就是不對 現在像是 Netflix、KKbox、PPT 等都有做多重登入的阻擋 就讓我們來看看怎麼阻擋多重登入吧 粗流以下說明一下大致的流程 [step]1[/st..

更多
loading..

使用 SSH 遠端連線 GCP Bitnami Wordpress 操作 PhpMyAdmin

前言繼上篇文章後 想必大家已經知道如果免費在 GCP 上架一個 Wordpress 網站 但為了進階活用 Wordpress 各位可能會須要進資料庫操作、使用 FTP 管理檔案 因此我們必須要使用 SSH 來遠端連線在 GCP 上打造的 Bitnami Wordpress 範本 進而更流暢地管理我們的 Wordpress 執行步驟一、於本機 local 端產生 SSH (public/private) key以下以 MacOs 為例 [step]1[/step] 打開 terminal 並鍵入以下指令 ssh-keygen -t rsa -C "bitnami@SERVER-IP" 上面的 SERVER-IP 要換成自己的喔 可以在 GCP 裡的 VM 執行個體 裡..

更多
loading..

使用 Laradock 跑多個 Laravel 專案

前言Laradock 是一個用 Docker 打造完成的 PHP 開發環境 就像是在官網所說的 先會用 Docker,至於 Docker 是什麼就晚點再說吧! 所以就讓我們照以下步驟 迅速使用 Docker 開發 Laravel 吧! 實作步驟環境設置 裝好 Git 裝好 Docker 實際安裝Follow 官網 說明直接操作下去就完成啦! 因為官網說明已經滿完整了 所以以下就是針對我自己遇到的坑做一些小提醒 小提醒由於我們想使用同一個 Docker 來跑多個 Laravel 專案 以下就以 B) Setup for Multiple Projects: 為例 資料夾結構 為了同一個 Docker 跑多個專案 所以資料夾結構會是 * laradock * project-1 * project-2 ..

更多

藍新金流 openssl_encrypt(): Unknown cipher algorithm

藍新金流 openssl_encrypt(): Unknown cipher algorithm前言最近因應網站 PHP 版本升級 結果一堆原來的 function 壞掉不能使用 下面就記一個坑 實例比如說 串藍新金流 API 時所需的 mcrypt_decrypt() 就被 PHP 從 7.2.0 之後拿掉 找了一下新的文件發現有一個新 function => (openssl_decrypt() (文件參考: https://www.spgateway.com/WebSiteData/document/5.pdf) 欸~很高興直接拿來用一波 結果發現竟然報錯 openssl_encrypt(): Unknown cipher algorithm 走訪了估狗大神 試了各種方法 才發現是因..

更多
loading..

現代前端渲染機制: SSR vs. CSR

前言雖然是在當後端工程師 但不知怎的還是一直碰到前端渲染的東西…… 不過沒關係 多學多健康 就讓我們來看看所謂 SSR (Server Side Render 後端渲染) 以及 CSR (Client Side Render 前端渲染) 兩者到底有什麼不同、優劣勢在哪,以及分別會被應用在什麼地方吧! 渲染機制 SSR: 渲染結果於 Server 產生 意即 browser 在接到 server 傳來的資料時 收到的就是完整的、渲染過後的HTML CSR: 渲染結果於 Browser 產生 意即 browser 在接受到 server 傳來的資料時 收到的是 data (通常是json格式) 以及 template 須要透過 JS 才會渲染成 HTML 圖解 影響SEO SSR: 有利 由於 bro..

更多
loading..

初探 Docker: 從 Dockerfile、Docker Compose 說起

前言最近在研究公司的 dockerfile、docker-compose和相關 config 檔 順手筆記一下,希望在加深印象之餘 也可以讓有同樣初學者有一個大概的藍圖 關係圖 從上圖可以看到 Dockerfile 會生成 Docker Image 所謂的 Image,就是生產 Container 的模版 而 Container 則是透過 Image 產生隔離的執行環境 是一組利用 Linux 核心提供的技術來達到把程式或軟體「包裹」在一個可隔離且獨立執行環境的工具 (以下也會把 Container 提供的服務描述為 service) 而 Docker 就是用來管理這些 Container 的工具 Docker-compose可以想像是一個腳本 作用在於當我們的 project 想要一次運作多個 servi..

更多
loading..

關聯式資料庫建置練習 - 從發票開始

前言最近工作上需要 得把一張發票上的資料建好放在資料庫裡備存 所以就來把過程給紀錄下來如下 發票假設發票長這個樣子 讓我們要怎麼把它給建出來呢? 以下就以我的步驟說明之 步驟第一步: 將所有需要的欄位列出來 可以看到是相當長且不易讀 所以我們必須要照資料庫正規化的流程來規劃 細結這邊就不說 只講我的作法 第二步: 建立ER Model為了要讓各 table 之間的關係明確 所以我們可以畫一下 ER Model 來釐清各 table 間的關係 其中 1 <---> 1 : 代表一對一的關係 1 <---> 多 : 代一對多的關係 多 <---> 多 :代表多對多的關係,因此必須要多加一個 mapping table 圖中是以 product_order 為名產生mapp..

更多

jQuery 操作 DOM 並 scrollTop 跳轉至指定位置

前言有時候我們在點連結並跳轉到下個頁面後 會想要同時做兩件事 分別是 更變指定DOM的狀態: 如換色 移動頁面到指定的位置 上述兩件事 若分開處理都不困難 以第2項來說 只要在 URL 後面加#就可以了 比如說 下面這個頁面 https://lol.gamepedia.com/Kobbe 若我們要看 Kobbe 這位仁兄的戰果 只要在 URL 後面加上 #Tournament Results 如下 https://lol.gamepedia.com/Kobbe#Tournament_Results 就可以達成了 但若我們以上兩件都要完成 而且只能用 URL 來傳遞指定要變更的DOM及位置所需要之參數的話呢? 下面就來說說我的作法 作法一、HTML在 html 標籤裡塞兩個 Hash 並用 & 來..

更多
1234