2014-06-25 5 views
2
list(,,,,,,,,,$user, $pass) = explode("\t", $line); 
if(trim($user) == $_POST['username'] && trim($pass) == $_POST['password']) 

메시지가 정의되지 않은 오프셋 10, 메시지가 정의되지 않은 오프셋 9입니다. 9와 10은 $ user와 $ pass입니다. 오류를 어떻게 수정합니까? 정의되지 않은 오프셋은 선언되지 않았 음을 의미합니까? 그리고 theres 가치가 있기 때문에 theres 가치가 있기 때문에 나는이 PHP에 대한 필요가 없다.PHP에서 정의되지 않은 오프셋()

답변

4

undefined offset이 문맥에서 list에 대한 호출에서 배열에있는 것보다 더 많은 매개 변수가 필요하다는 것을 의미한다. 방정식의 오른손

길이가 10이고 0보다 작은 배열을 반환하는 explode("\t", $line)이있는 배열이 필요합니다.

오른쪽으로 탭으로 구분 된 값이 $line인지 확인하거나 explode의 출력을 array_pad으로 채 웁니다.

list(,,,,,,,,,$user, $pass) = array_pad(explode("\t", $line), 10, null); 

$line 경우 다음 $user$pass이 값 null 걸릴 것만큼 탭으로 구분 된 값을 포함하지 않았다

다음은 반드시 배열 (10)의 길이를 가지고 있는지 확인하기 위해 array_pad를 사용하는 예입니다.

+0

감사합니다. array_pad는 매력처럼 작동합니다. – user3649899

관련 문제