2011-08-30 69 views
0

我得到一個PHP錯誤似乎只在IE中發生PHP的錯誤...只會發生在IE

我得到的錯誤是:

Notice: Undefined offset: 1 in absentAddGen.php on line 6 

5號線,6 ,7和8是:

5:$studentname = $_POST['nameQ']; 
6:list($lastname, $firstname) = explode(',',$studentname); 
7:$firstname = trim($firstname); 
8:$lastname = trim($lastname); 

此錯誤不會在Chrome或Firefox發生......在什麼可能會導致它的主意?

讓服務器端代碼在其他瀏覽器上失敗對我來說沒有意義。

+1

看起來像$ studentname在IE示例中沒有逗號:-)你如何將它傳遞給服務器? – jmans

+2

$ _POST ['nameQ']的期望值是多少?$ _POST ['nameQ']的實際值是多少? – dododedodonl

+0

這不是一個錯誤,它是一個通知。最有可能'$ _POST ['nameQ']'不包含'name,surname',但只包含'name'。 – Shef

回答

3

$studentname不包含,

list($lastname, $firstname) = explode(',',$studentname); 

相當於:

$tmp = explode(',', $studentname); 
$lastname = $tmp[0]; 
$firstname = $tmp[1]; 

如果在$studentname沒有逗號,explode()返回只有一個元素的數組。當試圖獲得第二個元素(偏移1)時,PHP顯示一條通知。

Undefined offset: 1錯誤表示您試圖讀取偏移量爲1的元素的偏移量爲1

確保您在$_POST['nameQ']

+0

$ studentname中總是會有一個「,」 – adamzwakk

+0

顯然不是。嘗試回顯'$ studentname'來驗證。 – arnaud576875

+0

@adamzwakk這個答案是正確的,而你只是在IE中得到這個事實表明你有一個JS驗證器,它不工作/做你期望的IE,但在其他地方工作。檢查您的客戶端腳本與您的表單上的「nameQ」字段相關。 – DaveRandom

0

發送正確的價值上的一個快速谷歌搜索「PHP錯誤未定義,偏移」把我帶到這個鏈接:

http://www.webmasterworld.com/php/3793272.htm

,我不得不懷疑是否類似的事情發生在你的列表中,它在列表的末尾運行,而不是數組的末尾。我懷疑你的逗號不會被用來以某種方式分隔名字。