Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요.

기존의 로그인 화면과 동시에

레이아웃에 이러한 스타일의 로그인을 추가로 넣어주었습니다.

xedition의 기본 스킨에서 코드를 가져와서 그대로 이식한거라 잘작동할 것이라 생각했지만

 

로그인은 잘됩니다.

근데 한 가지 문제점이 있습니다.

 

로그인을 실패했을 때 암호가 틀렸습니다라던지 아이디가 일치하지 않습니다라던지의 경고가 뜨지 않습니다.

 

혹시 빠진 부분이 있을까요?

제 사이트만 그런게 아니라 xe.conory.com의 외부로그인도 마찬가지 증상인 것같네요.

 

제 오래된 사이트에 설치된 외부로그인 위젯의 경우 얼럿창으로

아이디 또는 비밀번호가 일치하지 않는다고 경고창이 잘 뜨는데

 

무엇이 문제인지 궁금합니다.

 

        <form action="{getUrl('', 'act', 'procMemberLogin')}" method="post" autocomplete="off">
            <input type="hidden" name="act" value="procMemberLogin" />
            <input type="hidden" name="success_return_url" value="{getCurrentPageUrl()}" />
            <input type="hidden" name="xe_validator_id" value="layouts/레이아웃이름/layout/" />
            <div class="input-container">
                <input class="popup_login_style" autocomplete="off" type="<!--@if($member_config->identifier != 'email_address')-->text<!--@else-->email<!--@end-->" name="user_id" placeholder="<!--@if($member_config->identifier != 'email_address')-->ID<!--@else-->E-mail<!--@end-->" required="required" />
            </div>
            <div class="input-container">
                <input class="popup_login_style" type="password" name="password" placeholder="Password" required="required" />
            </div>
            <div class="check_wrap">
                <input type="checkbox" id="check_btn" name="keep_signed" id="keepid" class="inputCheck" value="Y" onclick="jQuery('#warning')[(jQuery('#keepid:checked').size()&gt;0?'addClass':'removeClass')]('open');" />
                <label for="check_btn">
                    <span>{$lang->keep_signed}</span>
                </label>
            </div>
            <button type="submit">{$lang->cmd_login}</button>
            <div class="links">
                <a href="{getUrl(['mid' => $mid, 'act' => 'dispMemberSignUpForm'])}">{$lang->cmd_signup}</a>
                <span>|</span>
                <a href="{getUrl(['mid' => $mid, 'act' => 'dispMemberFindAccount'])}">{$lang->cmd_find_member_account}</a>
            </div>
        </form>

 

 

정말 신기하게도 게시판에 글쓰기 버튼을 눌러서 권한이 없을때 나오는 로그인 페이지는 또 그 알림  아이디 또는 비밀번호가 일치하지 않습니다. 메시지가 붉은색으로 잘뜨네요.

이런식으로요.

<div class="message error">
            <p>아이디 또는 비밀번호가 일치하지 않습니다.</p>
</div>

 

근데 modules/member/skins/스킨명

에서 지정한 로그인 페이지에서는 또 저 권한관련 알림이 뜨질 않네요.

 

혹시 추가해 줘야하는 코드가 있을런지요?

 

감사합니다.

 

 

 

 

<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/member/skins'" class="rx_member-notice {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>

이래저래 잘작동하는 코드와 비교중인데
대충 위 코드가 필요한 것으로 보여지네요.

 

++++++++++++++++++++++++ 

 

/member/skins/은 위코드로 해결하였는데

레이아웃은 아닌것 같네요. 조금 더 찾아보겠습니다.

 

++++++++++++++++++++++++

 

                    <div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/message/skins/스킨명/system_message/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
                        <p>{$XE_VALIDATOR_MESSAGE}</p>
                    </div>

 

이코드가 맞는데 Form 안에 넣어주어야하고

 

저 같은경우는 레이어팝업으로 로그인이 뜨게 하였는데

로그인이 실패하면서 새로고침이 되어서 레이어 팝업이 닫혀버려서

다시 로그인 버튼을 누르면 레이어팝업이 뜨면서 그 로그인 실패 사유가 적혀있네요

 

혹시 Ajax 등으로 새로고침을 막는방법은 없을까요?

  • profile
    XETOWN같은경우 레이어 팝업이면서 로그인이 실패한 경우에는 레이어 팝업이 닫히지 않네요
    이건 제이쿼리등으로 설정하였을까요?
  • profile
    얼럿창은 새로고침이 이루어지지 않고 뜨는걸로 보여지는데
    경고 알림을 얼럿창으로 바꾸는 방법이 있을까요?
  • profile

    레이아웃에서도 rx_ajax가 될지 모르겠네요.
    https://github.com/rhymix/rhymix/issues/2055
    https://github.com/rhymix/rhymix/commit/6c309ad3b04e061660c57c84ca30573ca8bccb0b

     

    form 태그의 class 속성에 rx_ajax를 넣으면 페이지 이동 전에 유효성 검사를 하고 실패시 alert 창을 띄워주는 것으로 알고 있어요.

  • profile profile
    정말 단 한방에 해결 되었습니다!!! 감사합니다.