2017-09-30 5 views
0

私はPHPに日付を渡すために$ _GETを使用しようとしましたが、現在の日付が使用されます。私は、任意の入力に合格しなかった場合はPHPで例外をキャッチできませんでした

try { 
    $selectedDate = $_GET['date']; 
    echo 'try'; 
    echo $selectedDate; 
    } catch (Exception $e) { 
    $selectedDate = date('Y-m-d', time()); 
    echo 'catch'; 
    } 

は、それが

お知らせを示しています。未定義のインデックス:日付を私は使用のtry catchブロックを持っているので

は、なぜそれを

を試してみてくださいキャッチブロックを実行しませんか?あなたは慎重にそれをチェックすると

+0

https://stackoverflow.com/questions/18081677/php-notice-undefined-index-although-using-try-catch – KsaR

答えて

2

そのわずかの通知です。それは以下のように存在するかどうかを確認することができます:

try { 
    if(isset($_GET['date'])) 
     $selectedDate = $_GET['date']; 
     echo 'try'; 
     echo $selectedDate; 
    } catch (Exception $e) { 
    $selectedDate = date('Y-m-d', time()); 
    echo 'catch'; 
    } 

(ISSET($ _ GET [ '日付']))場合、私は、日付の有無を確認するためにを追加しました。

2

は...未定義のインデックスが設定されている日付を確認するには、この使用ISSET()を避けるために気づかない例外... か

+0

あなたは何を意味するかを示すいくつかのコードを含める必要があります。あなたが何を意味するかは完全にはっきりしていません。 – Andreas

0

PHPはE_NOTICEまたはE_WARNINGを捕まえません。

問題を解決するには、キャッチは不要です。 私が添付したコードを使用してください。

try { 
     $selectedDate = isset($_GET['date'])? $_GET['date'] : date('Y-m-d', time()); 
echo 'try'; 
echo $selectedDate; 

} catch (Exception $e) { 
echo 'catch'; 

} 
関連する問題