之前的問題是 比如輸入框裡面什麼都不輸入直接點擊提交 應該列印的出來的是“你還沒有輸入” 可是My Code列印出來的是“沒有” 我聽別人說把isset改成trim就好了 我試了一下 空提交時確實可以列印出來“你還沒有輸入” 但是問題是每次一開啟這個頁面時都會報錯 Notice: Undefined index: num in D:wampwwwtest.php on line 13 為什麼會這樣?
後來試了一下 改成empty也不對 那麼應該怎麼辦呢?而且我想要的效果是每次一開啟這個頁面時什麼提示都沒有 不顯示“沒有”或“你還沒有輸入” 謝謝
prepare("select * from aaa where num=?");$stmt->execute(array($_POST['num']));$res=$stmt->fetchall(PDO::FETCH_ASSOC);if($res){ foreach($res as $v){ echo $v['name']; } }else{ echo "沒有"; }}else{ echo "你還沒有輸入";}?>
回複內容:
之前的問題是 比如輸入框裡面什麼都不輸入直接點擊提交 應該列印的出來的是“你還沒有輸入” 可是My Code列印出來的是“沒有” 我聽別人說把isset改成trim就好了 我試了一下 空提交時確實可以列印出來“你還沒有輸入” 但是問題是每次一開啟這個頁面時都會報錯 Notice: Undefined index: num in D:wampwwwtest.php on line 13 為什麼會這樣?
後來試了一下 改成empty也不對 那麼應該怎麼辦呢?而且我想要的效果是每次一開啟這個頁面時什麼提示都沒有 不顯示“沒有”或“你還沒有輸入” 謝謝
prepare("select * from aaa where num=?");$stmt->execute(array($_POST['num']));$res=$stmt->fetchall(PDO::FETCH_ASSOC);if($res){ foreach($res as $v){ echo $v['name']; } }else{ echo "沒有"; }}else{ echo "你還沒有輸入";}?>
因為在你沒有提交前,POST資料是沒有的,所以$_POST[‘num‘]不存在報錯。在前面加個@就好了,或者先定義POST為空白。
PHP版本不同造成的報錯層級不同,可以在頂部入口隱藏掉notice層級的錯誤:
error_reporting( error_reporting() & ~E_NOTICE )
看不下去了
if(empty($_POST['num'])){ echo '未輸入num';}