看板 PHP 關於我們 聯絡資訊
※ 引述《you7 (瀉老闆)》之銘言: : 我是在網頁的第一句就寫 : if($_POST['A']== '') $A="哈哈"; : else $A=$_POST['A']; : 底下才是使用者輸入框,一開始會這樣寫. : 原本是想說網友點進來是還沒有輸入東西的,所以判斷傳值空值,預設一個內容. : 等到網友進來網頁,輸入內容,才有真正的傳值. : 以前在appsever的時候這樣寫沒報錯 可能是php版本比較舊?還是伺服器?(不確定) : 現在改xampp就會報錯.... : Notice: Undefined index: A in C:\xampp\htdocs\.............. : 我應該怎麼改正我的寫法?? 有幾個要注意的地方,所以我不用推文了。 第一個若是要說php版本比較舊。 不如說是原本的php.ini的error_reporting的設定比較寬鬆。 所以可以「忽視」沒有給予初始值的變數或是陣列索引。 後來的版本大部份針對這個設定都改成比較嚴謹的模式。 這也是為什麼很多本來用appserv寫php的人改用了wamp或是xampp之後。 發現自己寫的東西一直出error…… 其實error一直都存在,只不過之前無視他罷了。 基本上如果是在實際對外server通常會把display_errors關掉,這種情況去 無視error_reporting就無所謂。 但如果是開發環境下,除了display_errors要打開。 error_reporting一般我自己就只設定E_ALL。也就是有錯就要報。 再來你的問題就是$_POST['A']打一開始就不存在了。 直到你送出表單之後才會產生出來。 所以其實你只要一開始判斷是不是存在就行了。 不然除了你原文的推文有人提供的方法外,還有一個方法就是………… if(!isset($_POST['content'])){ $_POST['content'] = '哈哈'; } $content = $_POST['content']; ps.不管是做為練習還是正式使用,$a $b這種變數定義名稱的方式還是少用。 通常除了做為迴圈所以會用$i $j之類的,其他的變數或是dictionary索引值 都儘可能給予有意義的名稱。 (常看到有人寫陣列迭代$k => $v,我自己是一定寫$key => $value) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.204.108.111 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1447465174.A.85B.html
threeus: +1 11/14 11:02
you7: 謝謝 我變數寫A只是要貼出來給版友看 所已盡量簡化 11/14 19:53
you7: 所以本來也不是輸出"哈哈" 謝謝提醒 11/14 19:53