作者 主題: 請教一個簡單的php問題  (閱讀 4906 次)

0 會員 與 1 訪客 正在閱讀本文。

andrea523

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
請教一個簡單的php問題
« 於: 2009-10-20 11:38 »
請問各位大大為何下面的程式碼會出現以下這行錯誤呢?
Notice: Undefined index: type in C:\wamp\www\self.php on line 11
但送出後跑出的答案是沒問題的,請問有人知道嗎?謝謝。

程式碼如下:
代碼: [選擇]
<html>
<body>
<form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;]; ?>">

<input type="text" name="type" value=""/>
<input type="submit" name="submit" value="Send" />
</form>

<?php

  
if($_POST[&#39;type&#39;]){
     
echo "input : {$_POST[&#39;type&#39;]}";
  
}

?>

</body>
</html>

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: 請教一個簡單的php問題
« 回覆 #1 於: 2009-10-20 11:49 »
請問各位大大為何下面的程式碼會出現以下這行錯誤呢?
Notice: Undefined index: type in C:\wamp\www\self.php on line 11
但送出後跑出的答案是沒問題的,請問有人知道嗎?謝謝。

程式碼如下:
代碼: [選擇]
<html>
<body>
<form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;]; ?>">

<input type="text" name="type" value=""/>
<input type="submit" name="submit" value="Send" />
</form>

<?php

 
if($_POST[&#39;type&#39;]){
  
echo "input : {$_POST[&#39;type&#39;]}";
 
}

?>

</body>
</html>

錯誤?? 沒說有錯誤啊~
只是說有東西沒定義便使用了, 如此而已~
第一次開這頁, $_POST 還沒有東西
所以下面那幾行就沒東西可印
按了 submit 送出資料後才會有東西

如果不想看到這些訊息
將 if($_POST['type']) 改成 if(isset($_POST['type'])) 試試

isset: http://tw.php.net/manual/en/function.isset.php

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
回覆: 請教一個簡單的php問題
« 回覆 #2 於: 2009-10-20 12:10 »
我覺得是單引號的問題!! 改成下面這樣試試看
代碼: [選擇]
<?php

  
if($_POST[&#39;type&#39;]){
     
echo "input : {$_POST[type]}";
  }

?>

--
TyroneYeh

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
回覆: 請教一個簡單的php問題
« 回覆 #3 於: 2009-10-20 13:07 »
我覺得是單引號的問題!! 改成下面這樣試試看
不是單引號的問題...yakama 正解

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
回覆: 請教一個簡單的php問題
« 回覆 #4 於: 2009-10-20 14:43 »
那個是要你注意
你使用了一個尚未定義的變數
並不是錯誤
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

andrea523

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
回覆: 請教一個簡單的php問題
« 回覆 #5 於: 2009-10-20 17:37 »
感謝各位大大熱情相助

正解的確是加個isset就好了

因為沒有定義變數就用...

非常謝謝大家的幫忙~ ;D

appleboy

  • 活潑的大學生
  • ***
  • 文章數: 224
    • 檢視個人資料
    • 小惡魔筆記
回覆: 請教一個簡單的php問題
« 回覆 #6 於: 2009-10-20 17:45 »
Notice 訊息可以關掉
代碼: [選擇]
<?php
  
if (!ini_get(&#39;display_errors&#39;)) 
  
{
    
ini_set(&#39;display_errors&#39;, 1);
  
}
  
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
?>


歡迎來到 CodeIgniter 繁體中文討論區
My Blog:小惡魔 - 電腦技術 - 生活日記 - 美食介紹 - AppleBOY

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: 請教一個簡單的php問題
« 回覆 #7 於: 2009-10-20 18:17 »
Notice 訊息可以關掉
代碼: [選擇]
<?php
 
if (!ini_get(&#39;display_errors&#39;)) 
 
{
  
ini_set(&#39;display_errors&#39;, 1);
 
}
 
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
?>


對於新手, 其實不建議這麼做, 我反而建議所有錯誤、警告或提示等等訊息全都打開
當程式碼有問題時, 至少可以自己根據這些訊息進行除錯, 或是提問時提供這些訊息
例如樓主一開始提供這個Notice訊息, 大家一看就知道怎麼回事, 問題也能很快解決~

之前的提問也有一些例子, 有人變數跑不出應有的東西來, 因為關閉所有錯誤或警告
訊息, 網頁上一片空白讓, 新手不知該如何是好, 上來提問也只說是網頁一片空白...
等入門後有了基礎再關閉這些訊息也不遲. 像我自己在網站開發期也都會開啟這些
訊息, 有錯誤便可立即知道問題在哪裡, 不用去翻log  :D