PHP cURL POST 전송을 위한 함수를 생성합니다.

function post($url, $fields)

{

    $post_field_string = http_build_query($fields, '', '&');

    $ch = curl_init();                                                            // curl 초기화

    curl_setopt($ch, CURLOPT_URL, $url);                                 // url 지정하기

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);              // 요청결과를 문자열로 반환

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);               // connection timeout : 10초

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);                 // 원격 서버의 인증서가 유효한지 검사 여부

    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_field_string);      // POST DATA

    curl_setopt($ch, CURLOPT_POST, true);                               // POST 전송 여부

    $response = curl_exec($ch);

    curl_close ($ch);

    return $response;

}

 

 

POST 전송을 위한 데이터 (예제)

$DATA = array(

    'MY_EMAIL'=>$MY_EMAIL, 

    'MY_KEY'=>$MY_KEY, 

    'MY_NAME'=>$MY_NAME

);

 

 

POST 전송을 위한 함수 호출

$result = post('https://www.도메인.com/submit.php', $DATA);

 

 

전송 받은 데이터 처리를 위한 submit.php 

$MY_EMAIL = trim($_POST['MY_EMAIL']);   

$MY_KEY = trim($_POST['MY_KEY']);   

$MY_NAME = trim($_POST['MY_NAME']);

...

echo 'success';                                      // 처리 성공시 리턴 값

 

 

post 함수에서 리턴값 확인

$result 변수에는 전송 및 처리 성공시 'success' 값이 리턴됩니다.

echo $result;   ->   success 출력

 

 

 

 

 

 

 

https://www.kiwisoft.kr 

 

키위소프트

 

www.kiwisoft.kr

 




PHP에서 회원 로그인 기능을 구현할 때 비밀번호 암호화 처리 과정을 살펴봅니다.

bcrypt를 이용하여 비밀번호를 암호화합니다. PHP 5.3.7 버전 이상에서 사용할 수 있습니다. PHP 5.5 버전 이상에서는 내장함수로 포함하고 있습니다. 추천하는 암호화 기법입니다.



1. 비밀번호를 암호화 하여 회원 DB Table에 기록하는 방법입니다.


<?

$id = "test";

$password = "1234567";  // 회원 가입시 입력받은 회원 비밀번호 


include "./password.php"; // 본 글 아래 첨부파일을 다운 받아 사용하세요. 

$hash = password_hash($password, PASSWORD_DEFAULT);  // 비밀번호 암호화 


// 회원가입시에는 비밀번호를 위의 암호화 과정을 거쳐 $hash 변수 값을 회원 DB Table에 저장합니다. 

$sql = "INSERT INTO member (num,id,password) VALUES ('$num', '$id', '$hash')"; 

if ($conn->query($sql) == TRUE) {

    echo "success";

} else {

    echo "Error";

}

$conn->close(); 

?>



2. 회원 로그인시 비밀번호를 비교하여 일치하면 로그인 세션을 생성합니다.


<?

$password = "1234567"; // 회원 로그인시 입력받은 비밀번호


// 회원 DB에서 회원 정보를 가져옵니다.

$result = mysql_query("SELECT * FROM  member WHERE id = '$id' LIMIT 1"); 

$array = mysql_fetch_array($result);

$hash_password  = $array['password'];


include "./password.php"; // 본 글 아래 첨부파일을 다운 받아 사용하세요. 

if (password_verify($password, $hash_password)) { // 비밀번호가 일치하는지 비교합니다. 

echo "비밀번호 일치 !!!";  // 비밀번호가 일치할 경우 로그인 세션을 생성합니다.

} else { 

echo "비밀번호 불일치 !!!";

}

?>



* 비밀번호 암호화 방법 중 오래전 부터 사용하던 md5() 암호화는 보안에 취약하기 때문에 사용하지 마세요.


password.php 파일을 아래 첨부합니다. 다운받아서 사용하시면 됩니다.


password.zip






PHP 파일업로드 기능 기본 소스 코드 및 변수 예제입니다.

홈페이지 제작시 수정하여 사용하시면 됩니다.


특징: 

1. 업로드 되는 파일명을 자동 변경하여 한글파일명, 특수기호가 들어간 파일명 등을 DB에 저장 또는 파일 다운로드 구현시 오류가 나지 않도록 해줍니다.

2. 업로드 전의 실제 파일명을 별도 변수에 담아 DB에 저장할 수 있어 파일 다운로드 구현시 실제 파일명으로 다운로드 받을 수 있습니다.

3. 파일 확장자를 체크하여 특정 파일의 업로드 금지를 지정할 수 있습니다.



파일업로드 HTML 코드


예제 파일명: file_upload.html (파일첨부를 할 수 있는 웹페이지입니다.)

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>

<form method="post" enctype="multipart/form-data" action="./upload.php">

<input type="file" name="upload_file"> 

<input type="submit" value="업로드">

</form>

</body>

</html>


예제 파일명: upload.php (첨부된 파일을 파일 변수에 지정하고 서버로 업로드합니다.)

<?

$file_name = $_FILES['upload_file']['name'];                // 업로드한 파일명

$file_tmp_name = $_FILES['upload_file']['tmp_name'];   // 임시 디렉토리에 저장된 파일명

$file_size = $_FILES['upload_file']['size'];                 // 업로드한 파일의 크기

$mimeType = $_FILES['upload_file']['type'];                 // 업로드한 파일의 MIME Type


// 첨부 파일이 저장될 서버 디렉토리 지정(원하는 경로에 맞게 수정하세요)

$save_dir = './upload/file/';


// 업로드 파일 확장자 검사 (필요시 확장자 추가)

   if($mimeType=="html" || 

   $mimeType=="htm" || 

   $mimeType=="php" || 

   $mimeType=="php3" || 

   $mimeType=="inc" || 

   $mimeType=="pl" || 

   $mimeType=="cgi" || 

   $mimeType=="txt" || 

   $mimeType=="TXT" || 

   $mimeType=="asp" || 

   $mimeType=="jsp" || 

   $mimeType=="phtml" || 

   $mimeType=="js" || 

   $mimeType=="") { 

echo("<script> 

alert('업로드를 할 수 없는 파일형식입니다.'); 

document.location.href = './file_upload.html';    

</script>"); 

exit;

   } 

   

   // 파일명 변경 (업로드되는 파일명을 별도로 생성하고 원래 파일명을 별도의 변수에 지정하여 DB에 기록할 수 있습니다.)

$real_name = $file_name;     // 원래 파일명(업로드 하기 전 실제 파일명) 

$arr = explode(".", $real_name); // 원래 파일의 확장자명을 가져와서 그대로 적용 $file_exe

$arr1 = $arr[0];

$arr2 = $arr[1];

$arr3 = $arr[2];

$arr4 = $arr[3];

if($arr4) { 

$file_exe = $arr4;

} else if($arr3 && !$arr4) { 

$file_exe = $arr3;

} else if($arr2 && !$arr3) { 

$file_exe = $arr2;

}

$file_time = time(); 

$file_Name = "file_".$file_time.".".$file_exe; // 실제 업로드 될 파일명 생성 (본인이 원하는 파일명 지정 가능)  

$change_file_name = $file_Name;  // 변경된 파일명을 변수에 지정 

$real_name = addslashes($real_name); // 업로드 되는 원래 파일명(업로드 하기 전 실제 파일명

$real_size = $file_size;                         // 업로드 되는 파일 크기 (byte)


 

//파일을 저장할 디렉토리 및 파일명 전체 경로

   $dest_url = $save_dir . $change_file_name;

 

//파일을 지정한 디렉토리에 업로드

   if(!move_uploaded_file($file_tmp_name, $dest_url))

   {

      die("파일을 지정한 디렉토리에 업로드하는데 실패했습니다.");

   }



// DB에 기록할 파일 변수 (DB에 저장이 필요한 경우 아래 변수명을 기록하시면 됩니다.)

/*

$change_file_name : 실제 서버에 업로드 된 파일명. 예: file_145736478766.gif

$real_name : 원래 파일명. 예: 풍경사진.gif 

$real_size : 파일 크기(byte)

*/

?>


PHP 파일업로드 기능의 가장 기본적인 소스 코드입니다.

홈페이지 제작시 적절히 수정하여 사용하시면 됩니다.







'프로그래밍 > PHP' 카테고리의 다른 글

PHP cURL POST 전송 사용법 예제  (0) 2020.11.26
[PHP] 로그인 비밀번호 암호화 처리  (8) 2016.01.11

+ Recent posts