7 月 282020
 

Source: php session阻塞頁面分析及優化(session_write_close session_commit使用)

這個問題很多做php開發朋友應該都有遇到過,一個啟用了session_start 頁面,由於執行時間過長。導致通一個用戶訪問,另外一個很簡單的啟用session_start頁面一直阻塞著。直到第一個頁面執行完了。第二個頁面就可以讀取。這個就是,我們常說的,session阻塞機制。

Continue reading »
7 月 282020
 

Source: PHP session lock (頁面阻塞)

使用session時,若頁面尚未執行完畢,預設session會被鎖住。此時,若另外開一個也有使用session的頁面,則須等前一個頁面執行完畢,才能再執行。也就是有執行 session_start() 的頁面,若前一個頁面尚未執行完畢,繼續執行的其他頁面會被阻塞住。

Continue reading »
2 月 202018
 

Source: Get the full URL in PHP

Have a look at $_SERVER['REQUEST_URI'], i.e.

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

(Note that the double quoted string syntax is perfectly correct)

If you want to support both HTTP and HTTPS, you can use

$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

Editor’s note: using this code has security implications. The client can set HTTP_HOST and REQUEST_URI to any arbitrary value it wants.

Continue reading »

8 月 312017
 

Source: PHP: ereg 、 eregi 函式的替代方案

在 PHP 5.3 以後,使用 ereg 、 eregi 函式會出現這個函式即將被廢棄的提示。

而 PHP 官網也告知: eregi() is deprecated as of PHP 5.3.0. preg_match() with the i (PCRE_CASELESS) modifier is the suggested alternative. 建議用 preg_match 函式來取代 eregi 函式的使用。

那麼如果想使用 ereg 、 eregi 函式,又不想在新版 PHP 上修改已寫好的程式,有什麼方法呢?

Continue reading »

10 月 042016
 

Source: 解決register_globals在PHP 5.4之後移除的方案

當遇到專案非常龐大,有時候改版須要一個一個檢查又沒有時間,
你需要使用原來的register_globals功能來應急一下

PHP下面的版有網友寫出一個function可供網友貼到你的全域文件。
這樣在php 5.4 以後就可以照常運作了(等同register_globals = On)。
轉自 http://www.php.net/manual/en/security.globals.php

Continue reading »

2 月 282016
 

Source: 自動移除檔案的 utf8 bom

檔案若有 unicode bom (utf-8 bom) 的時候,往往會產生不預期的結果,例如:

Warning: session_start(): Cannot send session cache limiter – headers already sent (output started at /home/pork/public_html/shop/admin/categories.php:1) in/home/pork/public_html/shop/admin/includes/functions/sessions.php on line 67

Warning: Cannot modify header information – headers already sent by (output started at /home/pork/public_html/shop/admin/categories.php:1) in/home/pork/public_html/shop/admin/includes/functions/general.php on line 90

因為一個PHP的檔案<?的前方有隱藏的 utf-8 bom字元存在,而且是看不見的,所以再使用 session_start()時,php就會出警告訊息。

Continue reading »