使用CLI定時自動執行程式時,出現了一段錯誤訊息:
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>
原來 Input.php 裡面語法是這樣子的
$this->ip_address = $_SERVER[‘REMOTE_ADDR’];
因為是本機呼叫,所以哪來的 REMOTE_ADDR 可以取的值?
底下列出幾種改法:
方法一:
// 讓他返回 false $this->server('REMOTE_ADDR');
方法二:
//讓他返回 0.0.0.0 if(isset($_SERVER['REMOTE_ADDR'])){ $this->ip_address = $_SERVER['REMOTE_ADDR']; }else{ $this->ip_address = '0.0.0.0'; }
方法三:
// 整個 function 改掉 function ip_address() { if ($this->ip_address !== FALSE) { return $this->ip_address; } if (config_item('proxy_ips') != '' && $this->server('HTTP_X_FORWARDED_FOR') && $this->server('REMOTE_ADDR')) { $proxies = preg_split('/[\s,]/', config_item('proxy_ips'), -1, PREG_SPLIT_NO_EMPTY); $proxies = is_array($proxies) ? $proxies : array($proxies); $this->ip_address = in_array($_SERVER['REMOTE_ADDR'], $proxies) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; } elseif ($this->server('REMOTE_ADDR') AND $this->server('HTTP_CLIENT_IP')) { $this->ip_address = $_SERVER['HTTP_CLIENT_IP']; } elseif ($this->server('REMOTE_ADDR')) { $this->ip_address = $_SERVER['REMOTE_ADDR']; } elseif ($this->server('HTTP_CLIENT_IP')) { $this->ip_address = $_SERVER['HTTP_CLIENT_IP']; } elseif ($this->server('HTTP_X_FORWARDED_FOR')) { $this->ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } if ($this->ip_address === FALSE) { $this->ip_address = '0.0.0.0'; return $this->ip_address; } if (strpos($this->ip_address, ',') !== FALSE) { $x = explode(',', $this->ip_address); $this->ip_address = trim(end($x)); } if ( ! $this->valid_ip($this->ip_address)) { $this->ip_address = '0.0.0.0'; } return $this->ip_address; }
你或許會想要看:
- Codeigniter 使用 mysqli 無法備份資料庫
- VPS 主機,在Centos7上安裝 Linux+Nginx+MySQL+PHP 環境安裝
- DigitalOcean 主機,安裝 HHVM、Nginx、Mysql 在 Ubuntu 14.04 上
- 單一個wordpress網站使用多個網址
- [wordpress] 製作像 bootstrap 樣式的導航條、工具列
- [wordpress] register_taxonomy 自定新的分類
- [CodeIgniter] 取得 mysql 欄位資訊的編碼(Collation)、權限(Privileges)、註解(Comment)的欄位
- [PHP] 將 pdf 多頁轉換成合併成單一圖檔(jpg,png)
- [codeigniter] 修改因為使用 redirect 網址卻跑出 index.php
- [CodeIgniter] 錯誤訊息 No Input File Specified.
搶先發佈留言