2012-04-03 2 views
1

이것은 정말 이상한 문제로 해결할 수없는 것 같습니다. WordPress 사이트에는 여러 양식 (로그인, 등록 및 기타)이 짧은 코드를 통해 사이트에 출력되었습니다. 양식이 제출되면 데이터는 $ _POST 데이터를 수신하는 "init"후크를 통해 처리됩니다.IE 9는 양식 필드를 지 웁니다.

참고로이 사이트는 WordPress를 실행 중이지만 WordPress 문제가 아닌 것으로 간주되어 여기에 게시됩니다.

IE 9에서 양식을 제출하면 제출을 클릭 할 때 모든 필드의 값이 지워집니다. 예를 들어 이름이 "username"인 입력 필드가 있고 필드 값이 "johndoe"로 설정되어 있다고 가정 해 보겠습니다. 게다가 IE 9 브라우저를 통해 양식 제출시 (7, 8 등)에서, 데이터는 다음과 같이 온다 :

$_POST['username'] = 'johndoe'

예상대로 정확히. 양식이 IE9와 함께 제출하면

그러나,이처럼 제공 :

$_POST['username'] = ''

는 지금까지 내가 말할 수있는, 그것은 사이트의 모든 양식 발생합니다.

내가 예를 들어, 구축 한 사용자 정의 로그인 양식은 다음과 같습니다 : 여분의 재미있는 것들의

<form id="re_login_form" class="re_login_form" action="" method="post"> 
    <fieldset> 
      <label for="re_user_Login"><?php _e('Username', 're'); ?></label> 
      <input name="re_user_login" id="re_user_login" class="required" type="text" title="<?php _e('Username', 're'); ?>"/> 
    </fieldset> 
    <fieldset> 
      <label for="re_user_pass"><?php _e('Password', 're'); ?></label> 
      <input name="re_user_pass" id="re_user_pass" class="password required" type="password"/> 
    </fieldset> 
    <fieldset class="form-action"> 
      <input type="hidden" name="refalf_redirect" value="<?php echo $redirect; ?>"/> 
      <input type="hidden" name="re_login_nonce" value="<?php echo wp_create_nonce('re-login-nonce'); ?>"/> 
      <input id="re_login_submit" type="submit" class="button re_submit" value="<?php _e('Log In', 're'); ?>"/> 
      <p class="forgot-password"><a href="<?php echo wp_lostpassword_url(get_permalink()); ?>" title="<?php _e('Lost Password', 're'); ?>"><?php _e('Lost Password?', 're'); ?></a></p> 
    </fieldset> 
</form> 

하나는 IE9에 제출 클릭하면 필드가 눈에 띄게 그 값의 삭제된다는 것입니다 . 또한 제출 버튼이 필드를 지우는 IE9에서 트리거하는 것처럼 보입니다.

누구든지 아이디어가 있습니까? 당신은 혼자있어

+0

보안 기능이 아닙니까? 페이 스북에 로그인 한 다음 로그 아웃한다고 가정 해 봅시다. 암호를 상자에 저장하면 PC를 사용하는 다음 사람이 실제 암호를 얻기 위해 (주소 표시 줄에 간단하게 암호를 입력하여) 자바 스크립트를 주입합니다 (일반 텍스트)? 나는 대부분의 최신 브라우저가 양식 데이터를 더 이상 저장하지 않는다고 확신한다. (내 FF 3.6.3도 아니다) – Ozzy

+0

보안과는 아무런 관련이 없다. 제출하기 전에 모든 양식 필드가 삭제되었으므로 필드에 입력 된 데이터가 제출되지 않았습니다. – Pippin

답변

3

에서 나는 각 입력 필드를 자리 표시 자 속성을 제공함으로써이 문제를 해결 할 수 있었다이다. 나는 그것이 그것이 작동하게 만든 이유를 여전히 모르지만, 자리 표시자가 존재하면 모든 것이 잘 동작합니다.

+0

자리 표시 자 속성의 예를 들려 줄 수 있습니까? 나는 비슷한 문제가있을 수 있다고 생각합니다 ... – gutch

+1

Pippin

+0

Ahh ... HTML5! 내 편견은 HTML5를 지원하는 IE를 생각조차하지 못했다는 것을 의미했습니다 ... – gutch

0

나는 약간 비슷한 경우를 경험했다 : IE9는 부분적으로 만 양식을 게시했다. 제출시 일부 값이 삭제되었습니다. 나는 IE9, IE10, IE11, Chrome36, FF31 등으로 양식을 제출하는 것을 시험했다. IE9를 제외하고는 다른 모든 것이 잘 동작했다.

그래서 마크 업을 확인했는데 실제로 입력 필드가 없거나 일부 자동화 된 템플릿/편집기 소프트웨어에 의해 만들어진 제출 버튼이없는 기본 양식 페이지 안에 다른 양식이 중첩되어있었습니다.

추가 양식 노드를 제거한 후 IE9가 모든 필드를 제출하기 시작했습니다. ASP.NET 4.5 MVC4에서 일했습니다.

관련 문제