agencies

[프로젝트] 홈페이지 구축 (메인 배경화면) v0.4 본문

Ⅲ. 정보보안

[프로젝트] 홈페이지 구축 (메인 배경화면) v0.4

agencies 2024. 2. 26. 10:12

 

 

소스코드

<nav>
<ul class="menu" style="display:inline-block;">
	<li>소식ㆍ정보
		<ul class="submenu"><li>공지사항</li>
						<li><a href="//agencies.tistory.com" target="_blank">팀 블로그</a></li>
						<li></li>
		</ul>
	</li>
	<li>주요활동
		<ul class="submenu"><li>자원봉사</li>
						<li>서포터즈</li>
						<li>정보보안</li>
		</ul>
	</li>
	<li>팀 소개
		<ul class="submenu"><li>팀 리더 인사말</li>
						<li>슬로건</li>
						<li>직무</li>
		</ul>
	</li>
</ul>
</nav>






<section>
<?php
$last_upload = get_image();
function get_image() {
	$upload_dir = "./img/";
	$last_image = "";
	$images = glob($upload_dir."*.png");

	foreach($images as $image){
		if(filemtime($image) > filemtime($last_image))
			{$last_image = $image;}
	}

	return $last_image;
}



if(isset($_FILES["file"]))
{ $file = $_FILES["file"]; 


$file_name = $_FILES["file"]["name"];
$file_tmpname = $_FILES["file"]["tmp_name"];
$file_size = $_FILES["file"]["size"];
$file_ex = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);

if($file_ex ==="png")
{
	if($file_size < 10000)
	{
		$move = "./img/".$file_name;
		move_uploaded_file($file_tmpname, $move);
		echo "<script>alert('성공적으로 파일을 업로드했습니다.');window.location.href='/index.php';</script>";
	}
	else { echo "<script>alert('업로드할 수 있는 파일의 크기가 초과되었습니다.')</script>"; }
}
else { echo "<script>alert('PNG 확장자를 가진 이미지 파일만 가능합니다.')</script>"; }


}
?>

<div class="s1">
	<form action="./index.php" method="post" enctype="multipart/form-data" class="img_up">
	<label for="file">이미지 선택</label>
	<input type="file" name="file" id="file" style="display:none;">
	<button type="submit">Upload</button>
	</form>
</div>
</section>











<style>
*{margin:0; padding:0;}


/* section 1 */
.s1{width:1050px; height:600px;background-color:black; background-image:url('<?php echo $last_upload; ?>'); margin:0 auto; background-repeat:no-repeat; background-size:contain;}
.img_up{margin-top:560px; padding:10px; float:right; color:lightgreen;}
.img_up button{background-color:white; border:dotted; padding:3px;}





/* 메뉴바 */
nav{text-align:center; margin-top:5px; width:1050px;margin:0 auto; cursor:pointer;}
a{text-decoration:none;}
a:hover{text-decoration:underline; text-underline-position:under;}
a:visited{color:red;}

ul{list-style-type:none;}
.menu > li{float:left; width:350px; background-color:white; height:55px; line-height:55px; font-weight:bold; font-size:20px;}
.submenu{overflow:hidden; height:0;}
.submenu > li{background-color:#FBFBFB; height:35px; font-weight:500; font-size:13px; line-height:30px;}
.menu:hover .submenu{height:110px;}
</style>

 


 

이미지 파일을 업로드하면, 최근 업로드 된 이미지를 찾아 배경화면으로 설정합니다.

 

<?php
$last_upload = get_image();
function get_image() {
	$upload_dir = "./img/";
	$last_image = "";
	$images = glob($upload_dir."*.png");

	foreach($images as $image){
		if(filemtime($image) > filemtime($last_image))
			{$last_image = $image;}
	}

	return $last_image;
}
?>

 

get_image() 함수는 최근 이미지 파일의 경로를 반환하도록 합니다.

 

$upload_dir 변수에는 이미지 파일이 저장된 디렉토리 경로로 설정됩니다.

$last_image 변수는 최근 이미지 파일의 경로를 저장할 수 있도록 하는 변수로 설정됩니다.

 

glob() 함수를 사용해서 ./img/ 에 있는 모든 .png 확장자를 가진 파일의 목록을 가져옵니다.

foreach 루프를 사용해서 가져온 모든 이미지 파일에 대해 반복을 합니다.

파일의 수정 시간을 확인해서 최근 수정된 이미지 파일의 경로를 $last_image에 저장합니다.

 


if(isset($_FILES["file"]))
{ $file = $_FILES["file"]; 


$file_name = $_FILES["file"]["name"];
$file_tmpname = $_FILES["file"]["tmp_name"];
$file_size = $_FILES["file"]["size"];
$file_ex = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);

if($file_ex ==="png")
{
	if($file_size < 10000)
	{
		$move = "./img/".$file_name;
		move_uploaded_file($file_tmpname, $move);
		echo "<script>alert('성공적으로 파일을 업로드했습니다.');window.location.href='/index.php';</script>";
	}
	else { echo "<script>alert('업로드할 수 있는 파일의 크기가 초과되었습니다.')</script>"; }
}
else { echo "<script>alert('PNG 확장자를 가진 이미지 파일만 가능합니다.')</script>"; }


}
?>

 

만약 파일이 업로드가 된다면,

파일의 이름, 확장자, 크기(등)을 확인합니다.