Benmr's blog

分類 · tech-note

首頁

關於

文章列表

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..

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

前言最近工作上需要 得把一張發票上的資料建好放在資料庫裡備存 所以就來把過程給紀錄下來如下 發票假設發票長這個樣子 讓我們要怎麼把它給建出來呢? 以下就以我的步驟說明之 步驟第一步: 將所有需要的欄位列出來 可以看到是相當長且不易讀 所以我們必須要照資料庫正規化的流程來規劃 細結這邊就不說 只講我的作法 第二步: 建立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 並用 & 來..

更多
loading..

PHP + Laravel 雞排聯盟API實作: 串接歐付寶金流API

前言在前面的幾篇文章中 我們陸續完成了雞排聯盟API的雛型 那麼 如果我們要新增訂單並以第三方金流結帳的話 要怎麼處理呢? 以下就以歐付寶的API為範例 介紹如何串接歐付寶的信用卡支付API 達成結帳的效果 流程簡介根據歐付寶官網介紹 https://developers.opay.tw/AioCreditCard/CreateOrder 信用卡金流服務流程如下 而我的文章的大略流程如下: clone 歐付寶SDK (什麼SDK? 參考文章) 並複製到專案資料夾底下 建立 Controller 並複製 SDK 內的 example 以串接歐付寶API 建立 Orders table 紀錄交易資料 建立前台畫面輸入訂單 實際建立訂單以確認流程ok 實作1. clone 歐付寶SDK,並複製到專案資料夾底..

更多
loading..

使用 Python Pandas 來抓取台股每日資訊

前言在 上一篇文章 裡,我們介紹了Python Pandas厲害的地方 本篇文章則是要分享 如何使用 Python Pandas 來抓取在 【台灣證券交易所】 揭示的每日股價資訊 並在使用 Pandas 存成 Dataframe 後 存到 SQLite3 這個資料庫內,以利後續分析 結構主要可以分成 第一洞: 找到資料來源這邊會以 【台灣證券交易所】 為例 第二洞: 將資料抓下來並解析成 Pandas 可讀的格式Pandas 是啥? 請見下個段落 第三洞: 使用 Pandas 存成 Dataframe存了之後試試看可否做簡單的資料篩選 第四洞: 將資料分存入 SQLite3 內這樣子之後我們就可以使用存在SQLite3 裡面的資料來做下一步處理了 預備知識在實作前有些名詞須要先了解一下 所以簡單列一下會用到..

更多
123