PowerWeb 虛擬主機
客服中心 首頁 > 常見問題資料庫 > Linux 虛擬主機設定問題

常見問題類別     
 
   虛擬主機租用、繳費問題
   虛擬主機使用管理問題
   虛擬主機使用規定及違規處理方式
   虛擬主機郵件信箱設定及使用方式
   虛擬主機MySQL資料庫設定上傳方式
   網域名稱申請/使用問題
   Windows 虛擬主機設定問題
   Linux 虛擬主機設定問題
 
 

 

PHP 5.3 以上不支援 register_globals 的解決方案!

PHP 5.3 以上基於安全因素不支援  register_globals ,建議依照官方建議移除或更新有問題的 PHP 程式碼,如臨時無法移除或過渡時期暫無法立即更新時,可使用 自訂 register_globals() 函式的解決方案,將有需要的內容解析並設定為 Global 參數:

完整程式碼範例如:

  1. <?php
  2. /**
  3. * function to emulate the register_globals setting in PHP
  4. * for all of those diehard fans of possibly harmful PHP settings :-)
  5. * @author Ruquay K Calloway
  6. * @param string $order order in which to register the globals, e.g. 'egpcs' for default
  7. */
  8. function register_globals($order 'egpcs')
  9. {
  10.     // define a subroutine
  11.     if(!function_exists('register_global_array'))
  12.     {
  13.         function register_global_array(array $superglobal)
  14.         {
  15.             foreach($superglobal as $varname => $value)
  16.             {
  17.                 global $$varname;
  18.                 $$varname $value;
  19.             }
  20.         }
  21.     }
  22.     
  23.     $order explode("\r\n"trim(chunk_split($order1)));
  24.     foreach($order as $k)
  25.     {
  26.         switch(strtolower($k))
  27.         {
  28.             case 'e':    register_global_array($_ENV);        break;
  29.             case 'g':    register_global_array($_GET);        break;
  30.             case 'p':    register_global_array($_POST);        break;
  31.             case 'c':    register_global_array($_COOKIE);    break;
  32.             case 's':    register_global_array($_SERVER);    break;
  33.         }
  34.     }
  35. }
  36. ?>

 

該程式碼運作方式為將 $_ENV、$_GET、$_POST、$_COOKIE、$_SERVER 等內容全部讀入 register_global_array() 將內容參數設定為 Global,如此就可暫時替代 register_globals 的效果。

記得程式碼要生效運作時,需在 PHP 程式運作前載入 register_globals() 的自訂函式,如:

<?php register_globals(); ?>

 

資料參考來源:http://php.net/manual/en/security.globals.php

 

 

   回上一頁   
 
PowerWeb 虛擬主機 / 網域名稱服務中心
 





POWERWEB 虛擬主機網頁空間 © 2004~2017 KangYu Inc. All Rights Reserved. 諮詢專線 0809-058-688 服務時間 週一~週五 09:00 ~ 18:00‧ 傳真電話 (02) 3322-9019
線上信用卡授權