2009-04-09 2 views
0

나는 $ _POST에서 몇 가지 정보를 꺼냅니다 배열 ($ 양식)이 있습니다PHP : 이상한 배열 문제 - 내 가치는 어디 있습니까?

$form = $_POST['game']; 

이 지금은이 배열의 값을 작업 할,하지만 어떻게 든 실패합니다.

디버깅을 위해 나는 (inbetween 별도의 라인으로, 동일한 순서대로) 다음 명령을 사용 :

print_r($form); 
echo '#' . $form['System_ID'] . "#"; 

반환 출력으로 내가 얻을 :

Array 
(
    ['Title'] => Empire: Total War - Special Forces 
    ['Genre_ID'] => 1 
    ['Type'] => Spiel 
    ['System_ID'] => 1 
) 
## 

모든 아이디어를 어디에서 내 SYSTEM_ID 갔어? print_r에는 있지만 echo의 다음 줄에는 없습니까?!?

답변

7

좋아, 나 자신은 해결책을 발견

나는 추가 분석을 위해 다른

var_dump($form); 

을 추가하고이 내가 가진 것입니다 :

array(4) { 
    ["'Title'"]=> 
    string(34) "Empire: Total War - Special Forces" 
    ["'Genre_ID'"]=> 
    string(1) "1" 
    ["'Type'"]=> 
    string(5) "Spiel" 
    ["'System_ID'"]=> 
    string(1) "1" 
} 

공지 사항 큰 따옴표 안의 작은 따옴표? 당신이 HTML 폼에 작은 따옴표를 사용하도록 허용하지 않을 또는이 배열의 키에 포함됩니다 것처럼

가 보이는 :

Wrong: <input type="text" name="game['Title']" /> 
Correct: <input type="text" name="game[Title]" /> 
+0

아 당신의 print_r의 출력이 키 주위에 따옴표를 가지고 왜 궁금하고 광산은 Firephp을 위해 ... :)하지 – Alnitak

-1

그것은 나를 위해 작동 :

<? 
    $form['System_ID'] = 1; 
    print_r($form); 
    echo '#' . $form['System_ID'] . '#'; 
?> 

출력 :

% php foo.php 
Array 
(
    [System_ID] => 1 
) 
#1# 

PHP 5.2.6, 페도라 코어 10

편집에 - 여기 진짜 원인에 대한 힌트가 있음에 유의 . 내 코드에서 print_r 출력 (올바르게)에는 작은 따옴표가없는 배열 키가 표시됩니다. 원래의 포스터의 키 의 결과로 print_r 출력에서 ​​따옴표를 사용하여 실제 키에 인용 부호가 포함되어 있음을 보여줍니다. (! 일명 디부 오)

3

인 print_r() 키를 따옴표를 넣어하지 않습니다 - 디버깅 나는 print_r을 모두 버리는 것이 좋습니다. var_export 또는 var_dump가 더 좋습니다.

: firephp을 사용하십시오. 그것은 헤더를 통해 디버그 정보를 전송하므로 출력을 엉망으로 만들지 않으므로 ajax에서도 사용할 수 있습니다. 출력은 데이터 구조에 대한 구문 색상 지정을 포함하는 방화 광구로 멋지게 표시됩니다.

하고 사용도 쉽다 : 단지 fb($myvar);

+0

일을했다 - 나는 몰랐다 그것에 대해! – Alnitak

+0

Yapp, FirePHP는 좋습니다. 나는 대부분의 시간을 포함 시키기에는 너무 게으 르다. – BlaM