[ 24일차 ] 자료실 만들기 1
**오토셋 오류나서 재 설치하고 korea에 examtbl 테이블 만들때 이름 examtbl2 로변경해서 만들어서
코드에 테이블명 examtbl2로 다 변경함 ! **
22.06.21
세가지 기본적인 웹 프로그래밍: php jsp asp
파일을 첨부하는 것은 type을 file로 잡아준다
<tr><td> 사 진 </td><td><input type=file name=img></td></td>
값을 넘기는 것은 form 안에 있어야한다 & 액션이 필요하다
<form action=member_ok.php method=post
enctype="multipart/form-data">
</form>
※요즘엔 method를 post를 많이 쓴다 get의 단점을 보완한 것이기 때문에
get은 소량의 데이터 보낼 수 있음/ post는 파일, 대량의 데이터 전송가능, 보안성이 있다
get으로 보내면 url의 값이 노출이 되지만 post로 보내면 url의 값이 보이지 않음
member.php
<? include "top.php"?>
<style>
table{
width:350px;
height:250px;
}
td{
text-align:center;
}
</style>
<script>
function ck1(){
if(f1.sno.value==""){
alert("학번을 입력해주세요");
f1.sno.focus();
return false;
} else{
alert("학생 성적이 정상적으로 입력되었습니다");
}
}
</script>
<section>
<br><br><div id=section1><b>학생 정보 입력</b></div>
<br>
<div align=center>
<form name="f1" action="member_ok.php" onSubmit="return ck1()"
method="post"
enctype="multipart/form-data">
<table border=1>
<tr><td >학번</td><td><input type=text name=sno></td></tr>
<tr><td>주소</td><td><input type=text name=addr></td></tr>
<tr><td>사진</td><td><input type=file name=img></td></tr>
<tr><td colspan=2 align=center><input type=submit value="저장하기">
</table>
</form>
</div>
</section>
<? include "bottom.php"?>
-member_ok.php 파일 만들기
<?
$sno=$_POST['sno'];
$addr=$_POST['addr'];
$img=$_FILES['img']; // files 로 받아오면 array (배열) 로 받아온다
echo $sno. ":" .$addr. ":" .$img;
?>
member_ok.php
<?
include "DBConn.php"
?>
<?
$sno=$_POST['sno'];
$addr=$_POST['addr'];
$mfile=$_FILES['img']['name']; //실제 파일명이 넘어옴(고양.png)
$tmp=$_FILES['img']['tmp_name'];
echo $sno. ":" .$addr .":".$mfile ;
if($mfile==""){
echo "빈파일";
$mfile='space.png';
}else{
if(file_exists("./img/$mfile")){ //파일 중복에 대한 것
$f_fname = basename($mfile,strrchr($mfile,'.')); //basename에 파일변수만 넣으면 파일명가져오고 뒤에 '.png'써주면 확장자명 제거된다
//strrchr 은 파일에서 .이하의 모든 것(중복이 있는경우에 제일 마지막에있는 . 이하)을 반환해주는 옵션
$time = date("His",time()); //시간 나타내기 (시분초)
$ext=strrchr($mfile,'.'); //확장자 나타내기
echo "<br>". $f_fname ."_".$time.$ext; //고양_111608.PNG 으로 나타난다
}else{
echo $mfile;
move_uploaded_file($tmp,"./img/$mfile");
}
move_uploaded_file($tmp,"./img/$mfile"); //첨부된 파일 img파일에 저장하기
}
-------------------------------------------------------
if문 부분 아래거로 수정
if($mfile==""){
echo "빈파일";
$mfile='space.png';
}else{
if(file_exists("./img/$mfile")){ //파일 중복에 대한 것
$f_fname = basename($mfile,strrchr($mfile,'.'));
$time = date("His",time()); //시간 나타내기 (시분초)
$ext=strrchr($mfile,'.'); //확장자 나타내기
$mfile= $f_fname."_".$time.$ext;
move_uploaded_file($tmp,"./img/$mfile");
}else{
move_uploaded_file($tmp,"./img/$mfile");
}
}
$SQL= "insert into member(sno,addr,img) values ('$sno','$addr','$mfile')"; //데이터베이스 연동되서 들어감
$conn->query($SQL);
echo $SQL;
?>
?>
*mysql은 insert 할때 설정값보다 큰값은 오류가 나는게 아니고 짤려서 들어간다
-성적조회목록에서 삭제하기
member_delete.php
<?
include "DBConn.php"
?>
<?
$sno= $_GET['sno'];
$SQL= "select * from member where sno='$sno'";
$result= $conn-> query($SQL);
$row=$result->fetch_assoc();
$img= $row['img'];
if($img !='space.png'){
unlink("./img/$img"); //삭제하기
}
$SQL = "delete from member where sno ='$sno'";
$conn-> query($SQL);
?>
<script>
location.href="member_list.php";
</script>
list 파일에 <td><a href=member_delete.php?sno=<?=$row['sno']?>><?=$row['addr']?></td> </a>
주소에 링크 걸고 member_delete.php 파일 만들어서 위 내용 넣고 링크 누르면 삭제 된다
-회원조회 페이지에서 주소 누르면 학생정보 수정하기 창 뜨게 설정하기
멤버 파일 복사해서 멤버 에디트 파일 만들기
리스트파일에 <td><a href=member_edit.php?sno=<?=$row['sno']?>><?=$row['addr']?></td> </a> 수정하고
member_edit.php
<? include "top.php"?>
<? include "DBConn.php"?>
<?
$sno=$_GET['sno']; //sno값 받아오고
$SQL= "select * from member where sno='$sno'";
$result= $conn-> query($SQL);
$row=$result->fetch_assoc();
$sno= $row['sno'];
$addr= $row['addr']; //3개 값 받아오기
$img= $row['img'];
?>
<style>
table{
width:350px;
height:250px;
}
td{
text-align:center;
}
</style>
<script>
function ck1(){
if(f1.sno.value==""){
alert("학번을 입력해주세요");
f1.sno.focus();
return false;
} else{
alert("학생 성적이 정상적으로 입력되었습니다");
}
}
</script>
<section>
<br><br><div id=section1><b>학생 정보 수정하기</b></div>//이름 변경
<br>
<div align=center>
<form name="f1" action="member_update.php" onSubmit="return ck1()" //액션부분 member_update.php로 바꾸기
method="post"
enctype="multipart/form-data">
<table border=1>
<tr><td colspan=2 align=center width=400 height=150><img src=./img/<?=$img?>></td></tr> //이미지 부분 추가하기
<tr><td width=100>학번</td><td><input type=text name=sno value="<?=$sno?>"></td></tr> //value 값넣기
<tr><td>주소</td><td><input type=text name=addr value="<?=$addr?>"></td></tr> //value 값넣기
<tr><td>사진</td><td><input type=file name=img></td></tr> //이미지는 value값 넣어도 딱히 반영없음
<tr><td colspan=2 align=center><input type=submit value="수정하기"> //이름 변경
</table>
</form>
</div>
<br>
</section>
<? include "bottom.php"?>