2011-07-05 3 views
2

이름, 위치, URL, 전자 메일 주소 등을 포함하는 사용자 정보를 수집하는 양식이 있으며 회사 로고와 관련된 관련 범주 ($ _POST의 확인란 배열 사용) .

그런 다음 PHP 페이지에 링크 된 '승인'버튼을 사용하여 MySQL에 저장하기 전에 데이터가 표시 될 페이지 미리보기를 표시합니다 ($ _SESSION 및 숨겨진 양식 필드를 사용하여 $ _POST 데이터 보유). MySQL INSERT 쿼리가 있습니다. 내가 '정의되지 않은 인덱스'를 얻을

$_SESSION['clogo'] = $_POST['clogo']; 
$_SESSION['cat[]'] = $_POST['cat[]']; 

오류 :

제가하는 데 문제는 데이터베이스에 항목 및 제출 사이에서 미리보기 페이지는 로고 입력 및 체크 박스 배열 입력에 문제가된다 그러나 내가 미리 보려고 할 때, 다른 모든 표준 입력은 괜찮으며, 사용자 승인을 위해 mysql 삽입 쿼리에 전달된다. 또한 '미리보기 페이지'를 건너 뛰고 원본 양식의 PHP 파일을 삽입하면 문제가 발생하지 않으며 모든 데이터가 데이터베이스에 올바르게 입력됩니다.

사람은

+0

mysql 태그가 제거되었습니다. 나중에 데이터로 무엇을 할 것인지는 중요하지 않습니다. – evan

답변

2

나는 $_POST['cat']이 자체적으로 배열 인 것으로 추측하고 있습니다. (예를 들어, [] 다음에 cat이 있기 때문에 추측하고 있습니다.)이 경우, 예에서 $_SESSION['cat[]']은 존재하지 않는 변수 이름과 동일하게 설정합니다. $_SESSION['cat']$_POST['cat']과 동일하게 설정하십시오.

+0

당신은 이미지를 업로드 할 수 있습니까? 그렇다면 임시 디렉토리에있는 파일로 작업해야합니다. '$ _FILES' 배열을'tmp_name'을위한'POST' 다음에보세요. 'move_uploaded_file'을 사용하여 파일을 옮겨야합니다. http://us.php.net/manual/en/function.move-uploaded-file.php –

+0

글쎄 그게 배열에 대한 오류 메시지를 정렬했지만 지금은 배열에서 선택한 항목을 저장하지 않습니다 (거기에 6 개의 체크 박스)를 데이터베이스에 저장하면 모든 것을 저장합니다! 어떤 아이디어?session 변수에 값을 설정하기 전에'print_r ($ _ POST [ 'cat'])' – Dan

+0

. 양식이 올바르게 게시되었는지 확인하십시오. –

1

start_session 기능을 사용하여 세션을 시작하는 것을 잊지 도움이 될 수 있습니다. 그렇지 않으면 아무 것도 세션에 저장되지 않습니다.

타사 응용 프로그램을 사용할 때 모든 세션 변수가 제거 될 수 있다는 점에 유의해야합니다. 자료 Wordpress 좋은 예입니다.

+0

안녕 @Ancide, 잘 나는 session_start()를 사용하고 있는데, 다른 필드들 중 어떤 것에도 문제가 없다. 미리보기 나 승인시 데이터베이스에 추가하기 만하면 업로드 된 이미지와 체크 박스 배열이된다. 공이 없다. 감사합니다 – Dan

1

$ _POST [] 배열은 미리보기 페이지에 게시하고 PHP 삽입 스크립트 페이지로 다시 초기화해야합니다 ... PHP 스크립트 페이지로 직접 이동하면 POST에 변수가 생깁니다. 그것은 잘 작동해야합니다.

+0

OP는 "$ _POST 데이터를 보유하는 숨겨진 양식 필드를 말합니다. ". –

3

이 원하지 않는 :

$_SESSION['cat[]'] = $_POST['cat[]']; 

하지만를이 : 즉, '고양이'는 _POST 배열의 인덱스, 그리고 그것을 참조하는 요소가

$_SESSION['cat'] = $_POST['cat']; 

다른입니다 정렬.

0

'cat []'은 색인이 아닙니다. 인덱스는 배열이어야하는 'cat'입니다.

관련 문제