https://xe1.xpressengine.com/index.php?mid=download&package_id=22753768

 

위 자료 사용시 비로그인시 글 등록을 하면 잘못된 요청이 발생합니다

최고관리권한 계정으로 글 등록시는 글 등록이 잘 됩니다. 일반 계정은 아직 테스트 못했습니다.

일반계정도 잘 되네요. 로그인시는 잘 됩니다.

 

글쓰기 권한은 누구나에게 로 되어 있습니다.

 

라이믹스에서는 된다고 하셧는데 XE에서도 되게 하려면 어떻게 해야 할까요?

 

 

<?php

class contactfree extends WidgetHandler 
{
    function proc($args) {
        Context::loadLang($this->widget_path."lang");

        // default value
        if (!$args->reload) $args->reload = 'N';
        $widget_info->reload_url = $args->reload_url;
        
        Context::set('widget_info', $args);
        Context::set('rand_password', rand(10000, 99999));

        // 템플릿 컴파일
        $tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
        $tpl_file = 'contact';

        $oTemplate = &TemplateHandler::getInstance();
        return $oTemplate->compile($tpl_path, $tpl_file);
    }
}
?>

 

 

 

 

 

<load target="filter/insert.xml" />
<load target="css/default.css" />
<load target="js/contact.js" />


<section id="contact">
    <div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h2>Contact Me</h2>
                <hr class="star-primary">
            </div>
        </div>
        <div class="row">
            <div class="col-lg-8 col-lg-offset-2">
                <!-- To configure the contact form email address, go to mail/contact_me.php and update the email address in the PHP file on line 19. -->
                <!-- The form should work on most web servers, but if the form is not working you may need to configure your web server differently. -->
                <form action="/" method="post" onsubmit="return submit_request(this);">
                <filedset>
                <input type="hidden" name="mid" value="{$widget_info->target_mid}" />
                <input type="hidden" name="password" value="{$rand_password}" />
                <input type="hidden" name="nick_name" value="" />
                <input type="hidden" name="title" value="" />
                <input type="hidden" name="content" value="" />
                <input type="hidden" name="category_srl" value="0" />

                    <div class="row control-group">
                        <div class="form-group col-xs-12 floating-label-form-group controls">
                            <label for="inp_name">Name</label>
                            <input type="text" class="form-control" placeholder="Name" id="inp_name"  name="user_name" required="" data-validation-required-message="Please enter your name.">
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <div class="row control-group">
                        <div class="form-group col-xs-12 floating-label-form-group controls">
                            <label for="inp_email">Email Address</label>
                            <input type="email" class="form-control" placeholder="Email Address" id="inp_email" name="email_address" required="" data-validation-required-message="Please enter your email address.">
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <div class="row control-group">
                        <div class="form-group col-xs-12 floating-label-form-group controls">
                            <label for="inp_phone">Phone Number</label>
                            <input type="tel" class="form-control" placeholder="Phone Number" id="inp_phone" name="phone" required="" data-validation-required-message="Please enter your phone number.">
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <div class="row control-group">
                        <div class="form-group col-xs-12 floating-label-form-group controls">
                            <label for="inp_message">Message</label>
                            <textarea rows="5" class="form-control" placeholder="Message" id="inp_message" name="message" required="" data-validation-required-message="Please enter a message."></textarea>
                            <p class="help-block text-danger"></p>
                        </div>
                    </div>
                    <br>
                    <div id="success"></div>
                    <div class="row">
                        <div class="form-group col-xs-12">
                            <button type="submit" class="btn btn-success btn-lg">Send</button>
                        </div>
                    </div>
                    </filedset>
                </form>
            </div>
        </div>
    </div>
</section>

<script>
    var page_reload = '{$widget_info->reload}';
    var page_reload_url = '{$widget_info->reload_url}';
</script>

 

비로그인시 추가되는건 패스워드 일 것 같은데... 

  • ?
    저는 비로그인 때 권한에 접근 모든사용자 글작성 모든사용자 하면 등록은 잘 되는데
    위젯에 전화번호 입력 키가 먹지 않네요
  • profile
    글작성되는 곳에 권한이 쓰기권한을 모든사용자로 하셔야할거에요 저번에 저도 같은문제로 고민이였던..ㅋ;;
  • profile profile
    본문에 누구에게나 권한을 부여했다고 적어드렸어요.
  • profile profile
    해당위젯이 있는곳이 아니라 게시글이 작성되는 곳에 권한이 모든사용자로 되어야되요 mid값에 해당되는
  • profile profile
    네. 게시판 권한은 모든 사용자 입니다. 당연하죠.
  • profile profile
    접근권한도 모든사용자로하신건가요?
  • profile profile
    네. 관리권한만 관리자그룹에게 부여했습니다.
    목록 접근까지도 모두에게 권한은 부여 되어 있습니다.

    읽기는 관리자에게만 한정된 권한이 있구요.

    목록 접근은 솔직히 글 작성과는 관계는 없어보이구요.
  • profile profile
    이 자료를 사용하고 계시다면 XE 코어 버전이 어떻게 되십니까 ? 저는 최신버전입니다.
  • profile profile
    저도 1.96버전입니다

    http://www.playl.co.kr/help 여기페이지에서 사용중입니다
  • profile profile
    <img class="zbxe_widget_output" widget="contactfree" skin="default" colorset="default" target_mid="mid값" reload="Y" reload_url="help" />
    이런식으로 사용중입니다
  • profile profile
    원인을 알것 같습니다.
    이 게시판이 비회원에게는 구글리캡챠가 적용되는데 이것을 해제 하지 않아서 그럴것 같네요.
  • profile profile
    아하ㅋ 구글리캡챠도 또다른원이이군요 ㅋ
  • profile
    구글리캡챠가 적용되어있는 게시판인데
    게시판 스킨이 아닌 위젯에서 직접 글 작성을 전송하면서 구글리캡챠 없이 글 등록시도가 발생해서 잘못된요청이 뜬 것 이었습니다.

    구글리캡챠도 수작업으로 넣을 수 있으면 좋겠네요.
  • profile
    리캡챠 애드온에서
    //recaptcha 자바스크립트 삽입
    if((Context::get('document_srl') && $addon_info->apply_write != 'N' || in_array($this->act, $GLOBALS['_recaptcha_dacts'])) && Context::getResponseMethod() == 'HTML')
    {
    Context::loadFile(array('./addons/recaptcha/recaptcha.js', 'body', '', null), true);
    Context::addHtmlHeader('<script>var reCaptchaTargetAct = ["' . implode('","', $GLOBALS['_recaptcha_tacts']).'"];</script>');

    if(Context::getLangType()=='jp') $lang_code = 'ja';
    else $lang_code = Context::getLangType();

    Context::addHtmlHeader('<script src="https://www.google.com/recaptcha/api.js?hl='.$lang_code.'"></script>');
    }


    Context::get('document_srl') && <--- 요부분 지우고
    위젯페이지에도 애드온 활성화해 주니 리캡챠 작동해서 글 작성 이상없이 잘 되네요!
  • profile profile
    오대박, 저도 써먹어봐야겠네요! 감사합니다!!