이메일 주소 직접 입력과 특정 도메인을 선택해서 입력 - 게시판스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

게시판스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

이메일 주소 직접 입력과 특정 도메인을 선택해서 입력

관리자 18-08-20 11:19

이메일 주소를 입력할 때 직접입력과 특정 이메일 도메인을 선택해서 입력할 수 있게 분리하는 방법입니다.


그누보드 5.3 기본 스킨 기준입니다.

예제는 여분필드 wr_1 을 사용했습니다.



1. 수정파일 : write.skin.php


1-1.
파일 상단 if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

여기 아래쯤에 추가.


$wr_1 = explode("@",$write['wr_1']); // 이메일주소
$email1 = $wr_1[0];
$email2 = $wr_1[1];



1-2.
적당한 위치에 이메일 주소 입력 폼 추가.


<div class="write_div">
    <input type="text" name="email1" id="email1" value="<?php echo $email1;?>" class="frm_input"> @
    <input type="text" name="email2" id="email2" value="<?php echo $email2;?>" class="frm_input">
    <select name="emaildomain" class="frm_input" onChange="email_change(this.form);">
        <option value="">직접입력</option>
        <option value="naver.com"<?php echo ($email2 == "naver.com") ? " selected" : "";?>>naver.com</option>
        <option value="gmail.com"<?php echo ($email2 == "gmail.com") ? " selected" : "";?>>gmail.com</option>
        <option value="daum.net"<?php echo ($email2 == "daum.net") ? " selected" : "";?>>daum.net</option>
        <option value="hanmail.net"<?php echo ($email2 == "hanmail.net") ? " selected" : "";?>>hanmail.net</option>
        <option value="nate.com"<?php echo ($email2 == "nate.com") ? " selected" : "";?>>nate.com</option>
    </select>
</div>



1-3.
하단 스크립트에 추가.


function email_change(form) {
    var value = form.emaildomain[form.emaildomain.selectedIndex].value;
    if (value != "") {
        form.email2.disabled = true;
        form.email2.value = value;
    } else {
        form.email2.disabled = false;
    }

    form.email2.value = value;
    form.email2.focus();
    return;
}



1-4. 

하단 스크립트에서 아래 내용을 찾은 후

function fwrite_submit(f)
{

여기 바로 아래에 추가.

$('#email2').removeAttr('disabled');



2. write_update.skin.php 파일 추가


같은 스킨 폴더 안에 write_update.skin.php 파일을 추가하고 내용은 이렇게..


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (trim($_POST['email1']) && trim($_POST['email2'])) {
    $wr_1 = "$email1@$email2";
    sql_query(" update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ");
}
?>



## 참고사항


예제는 wr_1 여분필드를 사용했는데 게시판 기본 이메일 입력 필드인 wr_email 필드에 적용하려면

기존에 있던 이메일 입력 부분은 삭제 후 위 내용을 똑같이 적용하고 아래 항목만 수정.


1-1. 은 이렇게 변경


$wr_email = explode("@",$write['wr_email']); // 이메일주소
$email1 = $wr_email[0];
$email2 = $wr_email[1];


2. write_update.skin.php 파일 내용 중 wr_1은 wr_email로 변경


$wr_email = "$email1@$email2";
sql_query(" update $write_table set wr_email = '$wr_email' where wr_id = '$wr_id' ");




입력 받은 이메일 주소를 list 나 view 페이지에 출력하기


list 페이지 : list.skin.php

<?php echo $list[$i]['wr_1'] ?>


view 페이지 : view.skin.php

<?php echo $view['wr_1'] ?>


wr_email 필드를 사용했으면 wr_1 대신에 wr_email 로 수정

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright © GNUSTUDY. All rights reserved.