2014-03-28 17 views
0

我不明白這個錯誤,我也從來沒有用過「INPUT_GET,'wk',FILTER_SANITIZE_STRING」之前有人可以解釋這個或幫助解決這個謝謝。php錯誤filter_input

錯誤 注意:使用未定義的常量的€~wk’ - 在/Applications/MAMP/htdocs/Calendar/test1.php假設 'A€~wk’' 上線172

代碼

if(!filter_input(INPUT_GET, ‘wk’, FILTER_SANITIZE_STRING)) 
    { 
    $week = $weekOfToday; 
    } 
     else 
     { 
     $week = filter_input(INPUT_GET, ‘wk’, FILTER_SANITIZE_STRING); 
     } 

回答

1

我會使用此代碼:

if(filter_has_var(INPUT_GET, 'wk')) 
    $week=filter_input(INPUT_GET, 'wk', FILTER_SANITIZE_STRING); 
if(empty($week)) $week=$weekOfToday; 

它看起來像你的代碼的問題是實際只是wk引號雖然。使用常規的單引號。

我覺得很奇怪的是,$ week被過濾爲一個字符串。周通常作爲數字來處理。就像從一年開始的那幾週一樣。如果是這樣的話,那麼這是更好的代碼:

if(filter_has_var(INPUT_GET, 'wk')) 
    $week=filter_input(INPUT_GET, 'wk', FILTER_SANITIZE_NUMBER_INT); 
if(empty($week)||$week<1||$week>53) $week=$weekOfToday; 

或類似的東西。處理週數的問題在於確定一年的第一週有幾個不同的系統。有時它是第一個太陽的周,有時是第一個星期,但是usually it is the week with the first Thur。你將需要弄清楚你正在使用哪個系統。因爲很難甚至向客戶解釋這一點,所以我建議您以這樣的方式製作程序,以便在他們改變主意時想要使用它,這對您來說是一個簡單的修復。

+0

@PieterdeVries我已經添加了一些關於此的更多細節。 – krowe