폴더 구조

[HTML]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <form id="form01" name="form01" enctype='multipart/form-data' action='test.php' method="post">
      <input type="hidden" id="img_count" name="img_count">
      <input type="file" class="file-btn" id="file-btn-0">
      <div class="swiper-wrapper"></div>
    </form>
    <button type="button" id='sendButton'>send</button>
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>
 
 

[javascript]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$(document).ready(function(){
    // 첨부 파일 개수 변수
    var index = 0;
    // 첨부 파일
    $(document).on('change','.file-btn'function(){
        console.log("감지");
        var target = $(this)[0];
        
        if(target != null){
            //------------------이미지 확장자 검사 시작--------------------------------//
            var fileNM = $(this).val();
 
            var ext = fileNM.slice(fileNM.lastIndexOf("."+ 1).toLowerCase();
 
            if (!(ext == "gif" || ext == "jpg" || ext == "png")) {
                alert("이미지파일(.jpg, .png, .gif)만 업로드 가능합니다.");
                return false;
            }
            //------------------이미지 확장자 검사 종료--------------------------------//
        
            var fileList = target.files ;
        
            // 파일리더기 생성
            var reader = new FileReader();
            
            // 파일 위치 읽기
            reader.readAsDataURL(fileList [0]);
            
            //로드 한 후 이미지 요소 설정(스타일,url)
            reader.onload = function  (e) {
                // 이미지 미리보기
                
                var img_result = '<input type="hidden" id="file'+index+'" name="file'+index+'" value="'+e.target.result+'">';
                $('.swiper-wrapper').append(img_result);
                
                
            };
            // 이미지 파일 첨부 버튼 추가 하기
            // 새로운 div 생성
            var div = document.createElement('div');
 
            index++;
            $("#img_count").val(index);
        }
    });
 
    $('#sendButton').on('click',function(){
        $('#form01').submit();
    });
})
 

[php]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
error_reporting(E_ALL);
ini_set('display_errors''1');
$i = 1;     // 업로드해야할 이미지 파일이 여러개이면 while문으로 돌려야 함..
$upload_dir = "../test01/image/";
$file_name = "image";
 
if (preg_match('/^data:image\/(\w+);base64,/'$_POST['file'.$i], $type)) {
    $data = substr($_POST['file'.$i], strpos($_POST['file'.$i], ','+ 1);
    $type = strtolower($type[1]); // jpg, png, gif
    
    
    $data = base64_decode($data);
 
    if ($data === false) {
        throw new Exception('base64_decode failed');
    }
    
    $image = imagecreatefromstring($data);
 
    // 이미지의 가로 세로 구하기
    $size = getimagesize($_POST['file'.$i]);
 
    // 이미지 회전 방법
    if($size[0> $size[1]){        // 이미지 가로크기가 세로보다 크다면 270도 만큼 회전
        $image = imagerotate($image2700);
    }
    
    // header('Content-type:image/jpeg');
    // 이미지 저장 이름 및 저장 경로
    $directory = $upload_dir."".$file_name.".{$type}";
    if($type == 'jpeg'){ 
        $saveImage = imagejpeg($image$directory); 
    }else if($type == 'png'){
        $saveImage = imagepng($image$directory); 
    }else if($type == 'gif'){
        $saveImage = imagegif($image$directory); 
    }
    
    imagedestroy($image);
 
    if($saveImage){
        echo "success";
    }else{
        echo "fail";
    }
    
    
else {
    throw new Exception('did not match data URI with image data');
}
?>
 
 

'WAMP > php' 카테고리의 다른 글

file_put_contents( )함수를 이용한 파일 저장  (0) 2019.09.18
php에서 mail 보내기  (0) 2019.08.30
php에서 curl 사용하기  (0) 2019.08.30
로그 파일 생성  (0) 2019.08.28
wamp [회원 정보 수정] 기능만들기  (0) 2019.05.30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (preg_match('/^data:image\/(\w+);base64,/', $_POST['file_'.$i], $type)) {
    $data = substr($_POST['file_'.$i], strpos($_POST['file_'.$i], ','+ 1);
    $type = strtolower($type[1]); // jpg, png, gif
 
    $data = base64_decode($data);
 
    if ($data === false) {
        throw new \Exception('base64_decode failed');
    }
else {
    throw new \Exception('did not match data URI with image data');
}
 
$date = date("Ymd");
$file_name = $date."02".$i;                                // 파일명
$upload_dir = $image_dir.'/images/member/'.$userID.'/';    // 저장 경로
 
file_put_contents($upload_dir."".$file_name.".{$type}", $data);
 

 

'WAMP > php' 카테고리의 다른 글

이미지 회전 후 저장[html, javascript(jQuery), php]  (0) 2019.11.14
php에서 mail 보내기  (0) 2019.08.30
php에서 curl 사용하기  (0) 2019.08.30
로그 파일 생성  (0) 2019.08.28
wamp [회원 정보 수정] 기능만들기  (0) 2019.05.30

mail()함수

 = 첫번째 인자: 받는 사람

 = 두번쨰 인자: 제목

 = 세번째 인자: 내용

 = 네번째 인자: 헤더내용(보통 보내는 사람을 넣는다.)

 

29번째 줄에 mail()함수 시작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
    error_reporting(E_ALL);
    ini_set('display_errors''1');
    
    include "../include/_config.php";
 
    // 신청하는 회원 번호와 신청하고자 하는 업체 번호
    $companyID = $_POST['companyID'];
 
    // 신청하는 회원 정보
    $user_name = $_POST['user_name'];                               // 회원 이름
    $user_phone = $_POST['user_phone'];                             // 회원 연락처
    $user_email = $_POST['user_email']."@".$_POST['email_address']; // 회원 이메일
    $i_explanation = $_POST['i_explanation'];                       // 문의 사항 내용
 
    // 해당 업체를 찾아서 회원의 정보를 메일로 발송
    $sql="SELECT * FROM cooperation_complete WHERE idx = $companyID";
    $result = $dbs->query($sql);
    $row = $result->fetch_assoc();
 
    $to = $row['email'];        // 받는 사람 이메일
    $title = "디비공장에서 대신 전달해 드립니다. ".$user_name." 님께서 도움을 요청하였습니다.";
    $content = "회원 이름 : ".$user_name."\n"."회원 이메일 : ".$user_email."\n"."회원 연락처 : ".$user_phone."\n"."본문 내용 : ".$i_explanation;
 
    // 보내는 사람 이메일
    $from = "From:".$user_email."\r\n";
 
    // mail()함수 첫번째 인자: 받는 사람, 두번쨰 인자: 제목, 세번째 인자: 내용, 네번째 인자: 헤더내용(보통 보내는 사람을 넣는다.)
    if(mail($to,$title,$content,$from)){
        echo "success";
    }else{
        echo "메일 전송 실패 : 관리자에게 문의 하세요.";
    }
    mysqli_close($dbs);
?>
 
 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
    header("Content-Type: text/html; charset=UTF-8");
    //get the default response headers 
    header("Access-Control-Allow-Origin: *");
 
    $apikey = "B3cwQGSaQMxbw6bP6GTmp%2B66H85SvE%2FlBf4Kf5PC2%2B7AEpOCLZY02sacI4C0xBEezV0v2uICHQMq%2Bk8aNnSM1w%3D%3D";
 
    $url = "http://apis.data.go.kr/B553077/api/open/sdsc/storeZoneInAdmi?divId=ctprvnCd&key=$code&ServiceKey=$apikey&type=json";
    
    $ch = curl_init();
 
    // curl 옵션 설정
    curl_setopt($ch, CURLOPT_URL, $url);                // url 주소
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        // 리턴 결과값을 문자열로 반환
    curl_setopt($ch, CURLOPT_HEADER, false);            // 헤더값 가져오는 여부
    
    //Execute request 
    $response = curl_exec($ch);
    
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
    if($status_code == 200) {
        echo $response;
    } else {
        echo "Error 내용:".$response;
    }
 
    //close connection 
    curl_close($ch);
    flush();
?>
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function updateLog($userType$userID){
    
    $base_dir = $_SERVER['DOCUMENT_ROOT'];              //웹서버 설치 경로
    $date = date("Ymd");                                // 현재 날짜 구하는 함수
    $is_dir = $base_dir.'/signUpLog/'.$date.'/';        // 저장 경로가 존재하는지 판별
    if(!is_dir($is_dir)){       // 디렉토리가 존재하지 않는다면 새로 생성 0777은 권한 설정
        mkdir($is_dir0777);
    }
    $fileName = "0".$userType.$userType.".txt";         // 생성할 파일 이름과 확장자
   
    $text = "USERTYPE : ".$userType." | "."UID : ".$userID;         // 생성할 파일에 들어갈 텍스트
    $logFile = fopen($is_dir."/".$fileName,"a");                // 생성한 파일 열기
    if(fwrite($logFile$text."\r\n")){                         // 생성한 파일에 텍스트 입력하기
        fclose($logFile);                                       // 닫기
        return true;
    }else{
        return false;
    }
}
?>
 
 

1. 생성할 파일을 저장 할 경로가 있는지 판별한다. (경로가 존재하지 않는다면 경로 생성);

   is_dir() 함수는 경로 판별 함수이다.

 

2. 생성할 파일의 이름과 확장자 지정 (phpdptj '.' 기호는 문자열 붙이는 기능);

  $파일 이름 변수 = "당신이 원하는 파일이름".".txt";

 

3. fopen( 열고자 하는 파일 경로, "a");

4. fwrite( 입력하고자하는 파일, 들어갈 내용 );  // 입력하고자하는 파일은 반드시 fopen()함수로 열어주어야 한다.

5. fclose( 닫고자하는 파일); 

로그인 후 '회원정보 수정'버튼 클릭

1
2
3
<a class="btn btn-outline-primary" href="/test/Board/write">글쓰기</a>
<a class="btn btn-outline-primary" href="/test/LogIn/logout">로그아웃</a>
<a class="btn btn-outline-primary" href="/test/UpdateAccount/InputPassword">회원정보 수정</a>
 

회원정보 수정을 하기위해 2차 본인 확인차 비번 입력 기능 추가

입력한 비번이 틀리면

입력한 비번이 맞으면 '회원 정보 수정' 페이지로 이동

[InputPassword.php]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
    session_start();    //session 가져오기
    //session에 데이터가 없다면 로그인 화면으로 GO
    if (!isset($_SESSION['userID'])) {
        header('Location : http://wamp서버ip주소:80/test/LogIn/login');
    }
?>
<!DOCTYPE html>
<html>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="/test/js/bootstrap.js"></script>
    <head>
        <meta charset = "utf=8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>본인 확인</title>
        <link rel ="stylesheet" href="/test/css/bootstrap.css">
        <link rel="stylesheet" href="/test/css/login.css">
        <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script" rel="stylesheet">
    </head>
    <style>
    #check_password{
        font-size: 1.3em;
        width: 50%;
        display: inline-block;
    }
    </style>
    <script>
    $(document).ready(function(){
        $('#check_password').submit(function(e){
            e.preventDefault();
            if($('#PWD').val()==""){
                alert("비밀번호를 입력해 주세요.")
            }else{
                $.ajax({
                    type : 'POST',
                    url : 'http://wamp서버ip주소:80/test/UpdateAccount/CheckPassword',
                    data : $('#check_password').serialize(),
                    success : function(result){
                        if(result=="success"){
                            location.replace('http://wamp서버ip주소:80/test/UpdateAccount/update_account')
                        }else if(result=="Fail:Password"){
                            alert("해당 비밀번호가 틀렸습니다.");
                        }else if(result=="Fail:No Data"){
                            alert("비밀번호가 틀렸습니다. 다시 시도해 주세요.");
                        }
                    },
                    error : function(xtr,status,error){
                        alert(xtr +":"+status+":"+error);
                    }
                });
            }
        });
    });
    </script>
    <body>
        <div id="loginer">
            <form id = "check_password" method="POST">
                <fieldset>
                    <legend>Ckeck Your Password</legend>
                    PASSWORD : <input type="text" id ="PWD" name ="PWD" placeholder="Enter Your Password">
                    <br><br>
                    <input type="submit" value="본인 확인!">
                    <br>
                </fieldset>
            </form>
        </div>
    </body>
</html>
 
 

[CheckPassword.php]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
    include "../connect_db.php";
 
    session_start();    //session 가져오기
    //session에 데이터가 없다면 로그인 화면으로 GO
    if (!isset($_SESSION['userID'])) {
        header('Location : http://wamp서버ip주소:80/test/LogIn/login');
    }
    
    $pass = $_POST['PWD'];
 
    $id = $_SESSION['userID'];
    $name = $_SESSION['userNAME'];
 
    $sql = "SELECT userPWD FROM member WHERE userID ='$id' AND userPWD = '$pass'";
    $result = $db->query($sql);
 
    if($result->num_rows==1){
        $row=$result->fetch_array(MYSQLI_ASSOC);
        if($pass == $row['userPWD']){
            echo "success";
        }
    }else{
        echo "Fail:No Data";
    }
?>
 
 

비밀 번호 또는 전화 번호만 입력하면 입력하지 않은 정보를 입력하고 출력

비번과 전화번호를 둘다 입력 하고 변경 버튼을 누르면 성공 메시지 출력

smith@naver.com에서 smith111로

010-1111-1111에서 111-1111-1111로 바뀌었다.

[update_account.php]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
    session_start();    //session 가져오기
    //session에 데이터가 없다면 로그인 화면으로 GO
    if (!isset($_SESSION['userID'])) {
        header('Location : http://wamp서버ip주소:80/test/LogIn/login');
    }
?>
<!DOCTYPE html>
<html>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="/test/js/bootstrap.js"></script>
    <head>
        <meta charset = "utf=8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>회원 정보 수정</title>
        <link rel ="stylesheet" href="/test/css/bootstrap.css">
        <link rel="stylesheet" href="/test/css/login.css">
        <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script" rel="stylesheet">
    </head>
    <style>
    #update_form{
        font-size: 1.3em;
        width: 50%;
        display: inline-block;
    }
    </style>
    <script>
    $(document).ready(function(){
        $('#update_form').submit(function(e){
            e.preventDefault();
            if($('#PWD').val()==""){
                alert("비밀번호를 입력해 주세요.");
            }else if($('#phone').val()==""){
                alert("전화번호를 입력해 주세요.");
            }else{
                $.ajax({
                    type : 'POST',
                    url : 'http://wamp서버ip주소:80/test/UpdateAccount/update',
                    data : $('#update_form').serialize(),
                    success : function(result){
                        if(result=="success"){
                            alert("성공적으로 변경하였습니다.");
                            location.replace('http://wamp서버ip주소:80/test/main')
                        }else if(result=="Fail:Save"){
                            alert("변경 실패 다시 시도해주세요.");
                        }
                    },
                    error : function(xtr,status,error){
                        alert(xtr +":"+status+":"+error);
                    }
                });
            }
        });
    });
    </script>
    <body>
        <div id="loginer">
            <form id = "update_form" method="POST">
                <fieldset>
                    <legend>회원 정보 수정</legend>
                    비밀번호 : <input type="text" id ="PWD" name ="PWD" placeholder="Enter Your Password">
                    <br><br>
                    전화번호 : <input type="text" id ="phone" name ="phone" placeholder="Enter Your phone">
                    <br><br>
                    <input type="submit" value="변경!">
                    <br>
                </fieldset>
            </form>
        </div>
    </body>
</html>
 
 

 

[update.php]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    include "../connect_db.php";
 
    session_start();    //session 가져오기
    //session에 데이터가 없다면 로그인 화면으로 GO
    if (!isset($_SESSION['userID'])) {
        header('Location : http://wamp서버ip주소:80/test/LogIn/login');
    }
    
    $pwd = $_POST['PWD'];
    $phone = $_POST['phone'];
 
    $id = $_SESSION['userID'];
 
    $sql = "UPDATE member SET userPWD ='$pwd' , userPHONE ='$phone' WHERE userID='$id'";
 
    $result = $db->query($sql);
 
    if($result){
        echo "success";
    }else{
        echo "Fail:Save";
    }
?>
 
 

+ Recent posts