PHP

介紹 PHP 常見魔術方法

PHP 常見魔術方法簡介

這裡針對一些比較常見的魔術方法進行說明:

__construct

首先,提到兩個魔術大家都會常用到: __construct CVT2HUGO: 與 __destruct CVT2HUGO: 會在物件被實例化時觸發,__destruct

Continue Reading

Laravel - 取得最後查詢SQL語法

Laravel 取得最後查詢SQL方式如下: <?php //啟用Query Log DB::enableQueryLog(); //取得所有Query Log $queries = DB::getQueryLog(); //取得最後一筆Query $last_query = end($queries); return $last_query;

Continue Reading

Laravel 5.5 OAuth2

這裡,分別會用OAuth Server,以及 OAuth Client 兩個角度來說明 OAuth2 運作機制 一、建立 OAuth Server 安裝laravel composer create-project --prefer-dist laravel/laravel laravel_oauth cd laravel_oauth 設定資料庫 建立資料庫 ex. laravel_oauth 複製 .env.example 並命名為 .env 加入資料庫連線設定 生成 app key 產生 APP_KEY

Continue Reading

在 Windows 架設 nginx + php

安裝 nginx

前往 nginx 官網,下載nginx/windows 的檔案

這裡下載的版本是 Stable version - nginx/Windows-1.12.2

在 C 槽新增一個 nginx_php/ 資料夾

將下載的nginx 壓縮檔解壓縮後放入

Continue Reading

Laravel 測試 .env.testing 設置檔

Laravel 測試 .env.testing 設置檔 在 Laravel 執行測試,主要會以 phpunit.xml 設定檔案來定義環境變數。 預設的內容為 <php> <server name="APP_ENV" value="testing"/> <server name="BCRYPT_ROUNDS" value="4"/> <server name="CACHE_DRIVER" value="array"/> <server name="MAIL_DRIVER" value="array"/> <server name="QUEUE_CONNECTION" value="sync"/> <server name="SESSION_DRIVER" value="array"/> </php> 預設的 session 及 cache 都是以 Array driver 方式處理,表示在測試過程不會真的產生 session 或 cache 資料。

Continue Reading

PHP - 目前網址取得方式技巧

這裡紀錄如何透過PHP來取得目前網址的相關方式

假設目前有一個網址: http(s)://www .example.com/site/contact.php?uid=123456&class=3

PHP 取得目前網址相關方式

在 PHP 取得網址相關的方式有以下幾個:

<?php
$_SERVER['HTTP_HOST']; // www.exampe.com
$_SERVER['REQUEST_URI']; // /site/contact.php?uid=123456&class=3
$_SERVER['PHP_SELF'];// site/contact.php
$_SERVER['QUERY_STRING'];// uid=123456&class=3

Continue Reading

[解決] PHP Notice: Undefined index和Undefined variable的解决方法

在安裝新的PHP,或者升級PHP版本時,可能會遇到下列錯誤:

PHP Notice: Undefined variable:

遇到這類問題時,可以嘗試以下解法

Continue Reading

現代PHP password_hash 雜湊加密採用隨機SALT 使用方式

Md5 已經公認為危險的加密方式, 而SHA-512也能以每秒4600萬次計算進行破解, 儘管被破解的速度較慢,但是仍有安全上的疑慮。

通常駭客如果取得了大量的加密字串,需要先猜測出你使用的是哪一種SALT, 如果所有的密碼都採用相同的SALT,那麼一但破解第一組,代表其他密碼也就能順而進行破解

現在,PHP提供的 password_hash 可以達到隨機生成處理 SALT, 因此就連開發者也不會知道每次加密會使用甚麼SALT, 這樣當駭客想要進行破解,成本就當然會更高

Continue Reading

PHP 雜湊加密演算 sha256、sha224、sha512....

過時的 MD5 以及 SHA1

早期,常使用 md5, sha1 雜湊(hash)來進行加密,

但是md5已經能成功破解,及sha1 (, sha0) 都有理論的破解方式,因此還是推薦使用其他可替換的加密演算法。

Continue Reading

PHP - 內建 web server localhost -S -t 啟用方式

這裡簡單介紹如何直接透過PHP 內建 web server,預覽網站的方式

但是還是建議透過 apache, nginx…等 web server 比較好

PHP 啟用內建 web server 使用方式:

直接啟動

> php -S localhost:8000

PHP 7.2.3 Development Server started at Sat Mar 31 08:39:18 2018
Listening on http://localhost:8010
Document root is C:\site
Press Ctrl-C to quit.

從指定的根目錄啟動

Continue Reading

PHP 取得字串前、中、後部分字串長度

透過PHP的 substr 可以取得字串中的部分字元,並且可以指定長度 語法格式如下: <?php //string substr( string $string , int $start [, int $length ] ) substr('原始字串' , 開始位置 ,要取得的長度 ); 下方紀錄一些用法 從前面取得字串 <?php echo substr('abcdef', 1); // bcdef echo substr('abcdef', 1, 3); // bcd echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', 0, 8); // abcdef 從後面取得字串 從最後方開始取得字串的方式,可以把 start 的參數設定為負值即可

Continue Reading

PHP Socket - simple case tutorial

Open PHP Socket Extension

First, make sure php.ini php_socket extension is opened remove ; and restart http server php.ini

...
extension=php_sockets.dll
...

Socket Server Side

Writing your servier side code as fellowing: php_socket_server.php

Continue Reading

全球900萬用戶恐受PHP Mailer漏洞影響,讓攻擊者能在遠程執行任意代碼!

PHP Mailer是其中一個最受歡迎的郵件程式庫,普遍被應用在各種流行框架 WordPress,Drupal,1CRM,SugarCRM,Yii,Joomla!…等。 卻在日前,由 Dawid Golunski 發現在 v 5.2.18 版本存在一個高度危險漏洞,能允許攻擊者在遠端執行程式代碼。漏洞編號為 CVE-2016-10033

Continue Reading

[教學] 在 windows locahlost 透過 Gmail SMTP server 寄信 ( 使用 phpmailer )

通常在租用主機環境,都會處理好mail server所需的相關設定,

如果在開發過程中,可以在local端就能測試寄發email效果,對開發者而言,一定會更加方便

因此,本文主要說明在 windows 本地 localhost( 127.0.0.1)

如何使用 phpmailer 來透過 GMAIL SMTP server 寄信

How to using phpmailer to sending gmail smtp e-mail in windows localhost

Continue Reading

在 Windows 環境安裝 composer 教學

##下載 Composer安裝檔

前往官網下載 Composer-Setup.exe

安裝檔會自動選擇最新的版本,

在安裝過程直接按確定或下一步,直到完成安裝

Continue Reading

slim 2 教學 (含composer 簡易教學)

Slim : 適合前後端分家,後端只用來寫 RESTful API 的 framework。 http://www.9lessons.info/2012/05/create-restful-services-api-in-php.html http://www.9lessons.info/2014/12/create-restful-services-using-slim-php.html http://asika.windspeaker.co/post/3495-php-slim-framework-twig ##其他API參考 http://www.html5rocks.com/en/tutorials/cors/ 現在越來越多人認可這種“一次開發,處處運行”的非原生APP開發了,我們在平時開發中常用的兩套技術棧:1、CoreThink + dcloud + framework7 + cors;2、Ionic+Cordova +CoreThink,全都是開源技術,上手無壓力,之前我們也在OSC上分享過: 非原生App開發的基本步驟(移動端:ionic、cordova,後端:CoreThink)歡迎交流,非原生APP上架蘋果APP store http://www.dcloud.io/index.html 官方教學手冊 可以事情況決定安裝哪個版本 3.0 http://www.slimframework.com/docs/ Slim 3 requires PHP 5.

Continue Reading