發表文章

目前顯示的是 6月, 2019的文章

[GCP][PHP] 在 Google Cloud Platform 架設PHP網站 <超新手教學>

Google Cloud Platform (簡稱GCP)是google雲端服務的平台,你可以把它對比 AWS,跟 AWS 一樣在平台下提供很多服務,例如: App Engine 可以提供 PHP 或 python ...等多種語言的服務、Cloud SQL 可以提供 MySQL 或 PostgreSQL 的資料庫服務,也就是說只要 App Engine + Cloud SQL 這兩個服務,基本上就可以運作一個網站。 大致步驟如下: 1. 開通並啟動 Google Cloud Platform 服務 (需輸入信用卡、一年免費、送300美金) 2. 建立專案 (專案名稱如果沒有跟其他人重覆的話,則"專案ID"就會是專案名稱,而專案ID會是專案網址的子網域 eg. http://seantestproject.appspot.com) 3. 安裝 Google Cloud SDK 安裝網址  ,如果是 MAC 也可以用下面的指令安裝: $curl https://sdk.cloud.google.com | bash 裝完後會自動在 ~/.bash_profile 增加 gcloud 指令,所以重啟 shell 更新一下 $exec -l $SHELL 現在應該就可以使用 gcloud 這個指令了,安裝完 init 設定一下,就完成了。 $gcloud init 4. 建立測試專案 (這個 git 是 google 做的 Hello world 測試專案) $git clone -b phase0-helloworld https://github.com/GoogleCloudPlatform/appengine-php-guestbook $cd appengine-php-guestbook 這邊可以看到已經有做好一個 app.yaml 檔,這是最重要的設定檔,如果要修改必需依照規範。  詳細說明 $gcloud app create 因為是第一次,所以需要同步新增一個 App Engine 服務 $gcloud app deploy 等上傳完成部屬後,就可以在專案網址看到 hello world 的字樣了,當然修改專案內的 helloworld.php 內容後,再執行一次 deploy 就可以看到更新...

[MAC][Laravel][git] Laravel 建立新專案及使用Git (超新手的起手勢)

Step 1. 在家目錄建立新專案 blog (版本:Laravel 5.5 LTS) #cd ~ #composer create-project laravel/laravel="5.5.*" blog 說明:因為 5.5 是 LTS (Long-term support),所以我們使用 composer 來指定版本建立 laravel 專案。(如果使用 Laravel Installer 似乎無法指定版本) Step 2. 檢查 .env 及 vendor #cd blog #ls -al 這邊你可以看到已經有 .env 及 vendor 資料夾,如果你是 git clone 下來的專案,可能會沒有這兩個。 如果沒有 .env 檔案,可以從 .env.example 複製產生。 #cp .env.example .env 如果沒有 vendor 資料夾,可以用 composer 指令產生,composer 會依照專案資料夾裡面的 .composer.json 的內容從網路下載對應的套件,產生 vendor 資料夾並將套件放到這個資料夾內。 #composer install Step 3. 檢查 .env 文檔中的 APP_KEY 如果 .env 是從 .env.example 複製產生,APP_KEY 就會是空白的,所以必需下指令產生一個新的 KEY。 #php artisan key:generate 如果是用 composer 指令建立的專案,在建立時就會自動產生 .env,裡面已經有產生 APP_KEY,此步驟可以省略。 Step 4. 首頁測試 使用 laravel 內建的 server 來測試專案是否已經成功建立。 #php artisan serve 然後開啟瀏覽器,在網址列輸入 127.0.0.1:8000 ,如果有看到 Laravel 的首頁畫面,就代表成功建立。 Step 5. git init 使用 composer 指令建立的專案,預設不會有 .git 檔案,所以要用 git 指令建立。 #git init 如果你沒有要使用 git,此步驟及接下來的都可以省略。 Step 6. git add & git commit 先確認目前 git 狀態 #...

[PHP] Cross Domain Ajax 跨網域抓取資料(file_get_contents) (手動加上Referer教學)

使用 JS 要跨網域抓資料,因為有同源政策的限制,所以必需使用 JSONP 或 CORS 兩種方式,可以參考下面的文章: [JavaScript][好文] Cross Domain Ajax 跨網域抓取資料(JSONP) - Javascript篇 [jQuery][好文] Cross Domain Ajax 跨網域抓取資料(JSONP) - jQuery篇 [jQuery] Cross Domain Ajax 跨網域抓取資料(CORS) 但使用 PHP 就沒有這樣的限制了,直接用 file_get_contents 就可以抓到其它網站或API的資料,但如果 API 端有限制 Referer 來源 (例如: $_SERVER['HTTP_REFERER'] 必需是允許的網址),那就無法取得資料。 不過,我們可以透過 stream_context_create 手動幫 file_get_contents 的 header 加上 Referer 來突破這個限制 (不要拿來做壞事喔),作法很簡單...

[jQuery] Cross Domain Ajax 跨網域抓取資料(CORS)

之前寫過利用 JSONP 達成跨域抓資料的文章 ( 連結在此 ),今天來介紹另一種跨域抓資料的方式 CORS,這個方式也是 W3 推薦的,使用方法很簡單...

[好文][HTML] 讓我們來談談 CSRF

讓我們來談談 CSRF

[jQuery][PHP] 使用 ajax 向後端 php 取資料 (dataType:"json"),如何檢查 php 回傳結果是否為空?

後端 php: (my.php) $arr = array(); //查詢資料的過程(略) 假設查不到任何資料 所以 $arr 仍然是一個空陣列 echo json_encode($arr, JSON_FORCE_OBJECT);  //第二個參數是強制使用JSON格式 前端 js: $.ajax({   url:"my.php",   dataType:"json",   success: function(data) {     //使用下列程式碼 檢查 data 是否為空     if (Object.keys(data).length > 0) {         //do something     }   } }); 說明: json 無法直接取到長度 (length) 來判斷內容是否為空,所以改成抓 json 的 key 長度來判斷。