닉네임으로 id값 가져오는 방법 질문

2024-07-26 (금) 03:48:30 5,499

포인트 보내기 팝업창에서 아이디는 너무 번거로워서 닉네임으로 보낼 수 있게 하려고 하는데 잘 안되어서 질문드립니다.

point_gift.php

Copy
<?php

include_once('./_common.php');

if ($is_guest)

    alert_close('회원만 이용하실 수 있습니다.');

$g5['title'] = "포인트 선물";

$point_gift_action_url = G5_HTTPS_BBS_URL."/point_gift_update.php";

?>

<div id="point_gift" class="new_win">

    <div style="text-align: center;" class="local_desc1">? 포인트선물</div>

    <div class="local_desc02 local_desc" style="text-align: center;">

        <p><strong style="display: block;">《 수수료 안내 》</strong><br>최소 100 포인트부터 선물할 수 있음<br>보낼 포인트의 10%는 수수료</p>

    </div>

    <div class="new_win_con">

        <form name="fgiftform" action="<?php echo $point_gift_action_url ?>" onsubmit="return fgiftform_submit(this);" method="post" autocomplete="off" style="text-align:center">

            <div>

                <input type="text" name="me_recv_mb_id" id="me_recv_mb_id" required class="frm_input full_input required" size="20" placeholder="상대방 닉네임" style="text-align:center"><br>

                <input type="text" name="point" id="point" required class="frm_input full_input required" size="20" placeholder="최소 100부터 가능" style="text-align:center">

            </div>

            <div class="win_btn">

                <button type="submit" id="btn_submit" class="btn_submit cta">

                    <span class="span">보내기</span>

                </button>

            </div>

        </form>

    </div>

</div>

point_gift_update.php

Copy
<?php

include_once('./_common.php');

 

if ($is_guest)

    alert('회원만 이용하실 수 있습니다.');

 

// 회원여부

$mb = get_member($me_recv_mb_id);

 

// 포인트 설정값

$max_point = 1000000;

$min_point = 100;

 

// 알람

if (!$mb['mb_id'])

    alert('존재하지 않는 회원입니다.');

 

if ($mb['mb_id'] == $member['mb_id'])

    alert('자신한테는 선물할 수 없습니다.');

 

if ($point > $max_point)

    alert('최대 선물 포인트는 '.number_format($max_point).'포인트 입니다.');

 

// 고정 수수료 비율 10%

$fee_rate = 0.1;

 

// 수수료 계산

$fee = $point * $fee_rate;

 

// 발송인의 포인트가 충분한지 확인

if ($member['mb_point'] < ($point + $fee))

    alert('포인트가 부족합니다.');

 

// 발송인의 포인트 차감 (선물 포인트 + 수수료)

insert_point($member['mb_id'], "-".($point + $fee), $mb['mb_nick']."님에게 ".number_format($point)."포인트를 선물했습니다. [수수료: ".number_format($fee)."포인트]", '@passive', $member['mb_id'], $member['mb_id']  .'-'.uniqid(''));

 

// 수령인에게 전체 포인트 추가

insert_point($mb['mb_id'], "+".$point, $member['mb_nick']."님한테서 ".number_format($point)."포인트를 선물받았습니다.", '@passive', $mb['mb_id'], $mb['mb_id'].'-'.uniqid(''));

 

// 'wadmin' 계정에 수수료 적립

insert_point('wadmin', "+".$fee, "발송인 ".$member['mb_id']."로부터 수수료 적립: ".number_format($fee)."포인트", '@passive', 'wadmin', 'wadmin-'.uniqid(''));

 

// 로그 파일을 읽고 마지막 순번을 결정

$filename = "./Point_log.txt";

if (file_exists($filename)) {

    $lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    $last_line = end($lines);

    preg_match("/^\[(\d+)\]/", $last_line, $matches);

    $sequence = isset($matches[1]) ? (int)$matches[1] + 1 : 1;

} else {

    $sequence = 1; // 파일이 없으면 첫 번째 순번부터 시작

}

 

// 현재 시간

$current_time = date("Y-m-d H:i:s");

 

// 로그 메시지 작성

$log_message = "[{$sequence}] 발송인: {$member['mb_id']}, 발송 포인트: ".number_format($point).", 수령인: {$mb['mb_id']}, 수수료: ".number_format($fee).", 시간: {$current_time}\n";

 

// 로그 파일에 작성

$file = fopen($filename, "a") or die("파일을 열 수 없습니다.");

fwrite($file, $log_message);

fclose($file);

 

alert_close('포인트를 정상적으로 선물했습니다.');

?>

답변 2개

다음처럼 수정 하세요

<input type="text" name="me_recv_mb_id" ==> <input type="text" name="mb_nick"

// 회원여부

$mb = get_member($me_recv_mb_id); ==>

$mb_nick= trim($mb_nick);

$mb=sql_fetch("select mb_id,mb_nick from {$g5['member_table']} where mb_nick='$mb_nick' ");

2024-07-26 (금) 07:11:12

mb_id 를 mb_nick 으로 변경하시면 가능합니다만

코드가 일부 수정을 더하셔야 합니다.

아래 링크를 참조 하시길 바랍니다.

https://www.happyjung.com/lecture/2896

해당 사용자가 닉 변경도 고려하셔야 할 것 같습니다

답변을 작성하려면 로그인이 필요합니다.