반응형

 

 

이번엔 쿠폰발행을 함수로 해보자. 보통 이런 경우 함수를 많이 사용하니 함수를 사용해 보는 걸 해보겠다. 소스를 보자.

 

/member/signup_ok.php

 

<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/dbcon.php";

$userid=$_POST["userid"];
$username=$_POST["username"];
$email=$_POST["email"];
$passwd=$_POST["passwd"];
$passwd=hash('sha512',$passwd);

$sql="INSERT INTO members
        (userid, email, username, passwd)
        VALUES('".$userid."', '".$email."', '".$username."', '".$passwd."')";
$result=$mysqli->query($sql) or die($mysqli->error);


if($result){
    user_coupon($userid, 1, "회원가입");
    echo "<script>alert('가입을 환영합니다. 10% 할인 쿠폰을 발행해 드렸습니다.');location.href='/index.php';</script>";
    exit;
}else{
    echo "<script>alert('회원가입에 실패했습니다.');history.back();</script>";
    exit;
}

function user_coupon($userid, $cid, $reason){
    global $mysqli;
    $query="select * from coupons where cid=".$cid;
    $result2 = $mysqli->query($query) or die("query error => ".$mysqli->error);
    $rs2 = $result2->fetch_object();

    $last_date = date("Y-m-d 23:59:59", strtotime("+30 days")); //30일이 지나면 못쓴다.
    $sql="INSERT INTO user_coupons
    (couponid, userid, status, use_max_date, regdate, reason)
    VALUES(".$rs2->cid.", '".$userid."', 1, '".$last_date."', now(), '".$reason."')";
    $ins=$mysqli->query($sql) or die($mysqli->error);
}


?>

이런식으로 user_coupon이라는 함수를 만들었다.

 

매개변수는 3가지로 등록할 아이디, 등록할 쿠폰, 그리고 쿠폰 발급사유이다.

 

어떤 값을 어떻게 쓰는가는 개발자 본인이 선택할 문제다.

 

이렇게 function을 만들다 보면 나중에는 함수들을 한곳에 모으고 싶어진다. 또 그렇게 모으다보면 Class가 필요해지기도 한다. 그런것들은 나중에 해보자.

 

소스 중에 global $mysqli라는게 있는데 이 부분이 빠지면 오류난다. 함수안에서는 글로벌 변수를 부르기 위해서 반드시 선언해주어야 한다.

 

반응형

+ Recent posts