2016-06-15 1 views
0

의 형태에서 숨겨진 입력 필드를 읽고 난 형태로 다음과 같은 숨겨진 입력이 있습니다다른 PHP 사이트

<input type="hidden" name="token" value="<?php echo $token; ?>"> 

내가 그러나 양식을 통해 처리를 위해 다른 PHP 페이지에이 입력 값을 게시 오전, $_POST["token"]을 사용하여 입력 필드의 값을 읽으려고하면 빈 상태가됩니다. 나는 인터넷을 통해 해결책을 찾았지만, 내가 찾은 유일한 것은 모든 것을 한 페이지 (처리 코드와 함께 양식)에 두는 것이다. 하지만 처리 코드가 별도의 페이지에 있어야합니다.

<form id="registerform" name="registerform" method="post"> 
    First name:<br> 
    <input type="text" name="firstname"><br> 
    Last name:<br> 
    <input type="text" name="lastname"> 
    <input type="hidden" name="token" value="<?php echo $token; ?>"> 
</form> 

여기서 문제는 내가 첫 번째 이름과 마지막 이름의 값을 읽을 수 있다는 것입니다 :

는 마크 업입니다. 숨겨진 입력 값에 액세스 할 수는 없습니다.

+1

양식에 ''필드가 있습니까? 아니면 XHR/Ajax로 제출 하시겠습니까? 이 마크 업/코드를 공유 할 수 있습니까? DevTools에서 네트워크 콘솔을 확인 했습니까? 거기에서 토큰 값이 올바르게 제출되었는지 확인할 수 있습니다. –

+0

아니요 DevTools에서 네트워크 콘솔을 확인하지 않았습니다.이 비트가 누락되었습니다. 하지만 지금 당장 할 것입니다 –

+0

예, 거기서 볼 수는 있지만 여전히 읽을 수는 없습니다 –

답변

3

귀하의 접근 방법이 맞습니다. 이런 식으로 작동하지 않으면 오타 또는 실수로 코드를 디버깅해야 할 수 있습니다. 이를 수행하는 한 가지 방법이 있습니다. 값 $token 올바르게 <input>로 렌더링되는 경우

  1. 확인합니다. PHP 스크립트에 값이 있습니까? 아니면 이미 비어 있습니까? PHP 스크립트에서 비어 있지 않으면 (그 값을보기 위해 echo을 출력 할 수 있습니다.) 렌더링 된 HTML을 확인해야합니다. 실수가 있습니까? view-source 탭을 열어서 PHP가 실제로 렌더링하는 것을 확인하는 것이 가장 좋습니다. 렌더링 된 HTML의 어떤 곳에서 PHP 스크립트와 같은 값으로 설정된 숨겨진 입력 필드가 있어야합니다. 구문도 확인하십시오.
  2. 1가 아직 문제를 해결하지 못했다면 양식을 보내고 브라우저의 DevTools에서 요청을 관찰 할 수 있습니다 (Firefox 또는 Chrome을 사용하는 것이 가장 좋습니다). 요청을 보려면 DevTools를 열고 (F12을 누름) 네트워크 탭으로 전환해야합니다. 페이지 전환시 로그를 유지하려면 Preserve log을 누르십시오. 데이터를 전송해야하는 페이지의 행을 클릭하십시오. 세부 정보 맨 아래에 매개 변수가 표시됩니다. 숨겨진 매개 변수가 있어야하고 그렇지 않으면 PHP 스크립트로 올바르게 보내지 않습니다. → 위로 가기 1 단계로 돌아 가기
  3. 오류가 여전히 계속되는 경우 양식을 전송할 PHP 페이지 (action 양식에있는 페이지) 상단에 다음 줄을 입력하십시오 (<?php print_r($_POST); ?>). 이렇게하면 POST를 통해 PHP 스크립트가받은 모든 데이터가 인쇄됩니다 (GET 데이터가 필요한 경우 $_GET으로 변경). 양식을 제출하십시오. 다음 페이지에 token 키가 있으면 (예 : [token] => "123"이 출력에 포함됨) 확실히 $_POST['token']을 통해 액세스 할 수 있습니다.
+0

도움을 주셔서 감사합니다. –