일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ospf
- rinux
- 네트워크관리사
- jsp연결
- html
- 버추얼머신
- 원형그래프
- NCS
- javaee
- w3school
- autoset
- 이것이 자바다
- php
- Oracle
- cisco packet
- 정처기필기
- 라우터
- 데이터베이스
- 네트워크
- 리눅스
- VLAN
- Cisco
- jsp
- 정보처리기사
- 자바
- 오라클
- sql
- 참조타입
- Java
- ciscopacket
- Today
- Total
기록해! 정리해!
HTML -- 페이지 나누기 , 로그인 로그아웃 본문
파일 4개 0627에 넣어놓깅
0628
autoset - server - conf - httpd.conf 를 비주얼스튜디오로 켜보자
index의 우선순위
새 파일 index.php와 index.html를 만들어서 확인해보면 index.html이 우선순위가 더 높아서 보여진다
html에 php가 없다면 몰라도 굳이 html로 만들 필요없음...
1. index.php
<html>
<head>
<style>
header{
background-color:blue;
height:65px;
line-height:65px;
color:#ffffff;
font-size:30px;
text-align:center;
}
nav{
background-color:#00aaff;
height:30px;
line-height:30px;
color:#ffffff;
font-size:13px;
}
section{
background-color:#cccccc;
min-height:530px;
}
footer{
background-color:#0000ff;
height:40px;
line-height:40px;
color:#ffffff;
font-size:16px;
text-align:center;
}
#body{
width:90%;
margin:auto;
}
a:link, a:visited
{
color: #ffffff;
text-decoration: none;
}
a:hover, a:active{
color:#000000;
text-decoration-line: underline;
}
</style>
</head>
<body>
<div id= "body">
<header>
학생 성적 처리 프로그램 Ver.1.11
</header>
<nav>
   
<a href="#">학생등록</a>
<a href="#">학생목록/수정</a>  
<a href="#">빅데이터추가</a>
<a href="#">페이지나누기1</a>
<a href="#">페이지나누기2</a>  
<a href="#">로그인</a>
<a href="#">로그아웃</a>  
<a href="#">홈으로</a>
</nav>
<section>
<br><br>
<div align=center><font size=4>
<b>고등학교 성적처리 프로그램</b>
</font></div>
<div>
<br>
  1. 학생 성적 정보 테이블을 생성한다. <br>
  2. 학생 성적 테이블에 샘플데이터를 SQL문을 이용하여 추가한다. <br>
  3. 주어진 화면 디자인을 이용하여 화면을 디자인한다. <br>
  4. 업무 여건에 따라 프로그램을 작성한다. <br>
</div>
<br>
</section>
<footer>
HRDKOREA Copyrightⓒ2018 ALL rights reserved. Human Resources Development Services of Korea
</footer>
</div>
</body>
</html>
2. section 위로는 top.php
section 밑으로는 bottom.php
3. 새폴더 A_school / B_big / C_admin 생성
4. top.php에 링크 걸어주기
<a href="/A_school/form.php">학생등록</a>
5. 폴더들이랑 연결해주기(절대경로 설정)
<?
$host = $_SERVER['HTTP_HOST'];
$path = "http://".$host;
$_SERVER["DOCUMENT_ROOT"]
?>
.
.
<a href="<?=$path?>/A_school/form.php">학생등록</a>
6. top.php와 bottom.php를 새폴더 D_include를 생성해 넣어준다
7. index.php에서 include하기
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/top.php"?>
8. 폴더들에 파일 생성하고 index.php 붙혀넣고 수정하기
9. 오토셋
서버 문자셋: UTF-8 Unicode (utf8)
PHP 확장: mysqli
Create table board0628 {
idx int not null auto_increment primary key,
name varchar(10) not null,
age varchar(50) not null,
title varchar(100),
etc varchar(200)
);
10. insert.php에 데이터 커넥션 - SQL문 작성 - 실행 --항상 이 순서를 잘 기억!
<?php
for ($i ; $i <= 11; $i++ ){
$conn = new mysqli("localhost","root","autoset","korea");
$SQL = " insert into board0628 (name, age, title, etc)
values ('$name', '$age', '$title', '$etc' ) " ;
$conn -> query($SQL);
$conn -> close();
}
?>
11. 난수만들기
$name_rand=mt_rand(0,9);
$name_array=array('하나','둘','셋','넷','다섯','여섯','일곱','여덟','아홉','열') ;
$name=$name_array[$name_rand];
$age=mt_rand(11,25);
$title_rand=mt_rand(0,4);
$title_array=array('asp 중급','자바 초급','웹프로그램 고급','전산 실무', '데이터베이스 튜닝');
$title=$title_array[$title_rand];
$etc_rand=mt_rand(0,1);
$etc_array=array('전공학생', '비전공학생');
$etc=$etc_array[$etc_rand];
12. list1.php에 데이터 커넥션 - SQL문 작성 - 실행
<?
$conn = new mysqli("localhost","root","autoset","korea");
$SQL = " select idx, name, age, title, etc from boar0628
order by idx desc " ;
$result = $conn -> query($SQL);
?>
.
.
<?
while( $rs = $result -> fetch_assoc() ) {
echo $rs['idx'] . "<br>" ;
?>
13. 테이블 만들기
<table border=1 width=500px>
<tr> <td>번호</td> <td>이름</td> <td>나이</td> <td>제목</td> <td>특이사항</td>
<?
while( $rs = $result -> fetch_assoc() ) {
?>
<tr>
<td> <?=$rs['idx']?> </td>
<td> <?=$rs['name']?>
<td> <?=$rs['age']?>
<td> <?=$rs['title']?>
<td> <?=$rs['etc']?>
</tr>
<? }?>
</table>
하고 limit 0, 9 하기
14. 이름과 제목으로 서치 만들기
1) 검색창부터 만들기
<form>
<select name=ch1>
<option value=name>이름</option>
<option value=title>제목</option>
</select>
<input type=text name=ch2>
<input type=submit value="검색하기">
</form>
2) ch1, ch2 받아오기
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
3) 쿼리문 쓰기
<?
$conn = new mysqli("localhost","root","autoset","korea");
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
$SQL1 = " select idx, name, age, title, etc from boar0628 ";
$SQL2 = " order by idx desc limit 0, 9 " ;
if ($ch1 == ""){
$SQL = $SQL1 . $SQL2 ;
}else if($ch1 == "name"){
$SQL = $SQL1 ." where name like '%$ch2%' " . $SQL2;
}else if($ch1 == "title"){
$SQL = $SQL1 ." where title like '%$ch2%' " . $SQL2;
}
$result = $conn -> query($SQL);
?>
15. 전체 레코드 수 찍기
$SQL_tc1 = " select count(*)tc from boar0628 " ;
$SQL_tc = $SQL_tc1 ;
$SQL_tc = $SQL_tc1 . " where name like '%$ch2%' " ;
$SQL_tc = $SQL_tc1 . " where title like '%$ch2%' " ;
$result_tc = $conn -> query($SQL_tc);
$rs_tc = $result_tc -> fetch_assoc();
$tc=$rs_tc['tc'];
16. 10으로 맞추고 순번 적기
limit 0, 10
.
.
<?
$i = 1 ;
while( $rs = $result -> fetch_assoc() ) {
?>
<tr>
<td align=center> <?=$i?> </td>
<td> <?=$rs['idx']?> </td>
<td> <?=$rs['name']?>
<td> <?=$rs['age']?>
<td> <?=$rs['title']?>
<td> <?=$rs['etc']?>
</tr>
<?
$i ++ ;
}?>
17.페이지 사이즈 나타내기, 다음 이전 버튼
전체레코드:<?=$tc?>   현재페이지: <?=$now_page?> / 전체페이지: <?=$total_page?>
$page_size = 10;
if($_GET['idx']==""){
$idx=0;
}else{
$idx=$_GET['idx'];
}
$SQL2 = " order by idx desc limit $idx, $page_size " ;
$total_page = ceil ($tc / $page_size) ;
$now_page = $idx / $page_size + 1 ;
<a href=list1.php?idx=0&ch1=<?=$ch1?>&ch2=<?=$ch2?>>처음으로</a>
<a href=list1.php?idx=<?=$idx-$page_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>이전</a>
<a href=list1.php?idx=<?=$idx+$page_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>다음</a>
18. 첫페이지의 이전 막기
<? if($idx == 0){ ?>
이전
<? }else{ ?>
<a href=list1.php?idx=<?=$idx-$page_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>이전</a>
<? } ?>
19. 마지막페이지의 다음 막기
<? if($total_page != $now_page){ ?>
<a href=list1.php?idx=<?=$idx+$page_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>다음</a>
<? }else{ ?>
다음
<? } ?>
20. 마지막으로
<? $endPage = ($total_page-1)*$page_size ;?>
<a href=list1.php?idx=<?=$endPage?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>마지막으로</a>
21. 특이사항에 링크 걸어서 레코드 삭제하기
<td>
<a href=delete.php?delidx=<?=$rs['idx']?>
&ch1=<?=$ch1?>&ch2=<?=$ch2?>&idx=<?=$_GET['idx']?>><?=$rs['etc']?></a></td>
delete.php 생성
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/top.php"?>
<?
$delidx = $_GET['delidx'];
$idx = $_GET['idx'];
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
$conn = new mysqli("localhost","root","autoset","korea");
$SQL ="delete from board0628 where idx ='$delidx' " ;
$conn -> query($SQL);
$conn -> close();
?>
<script>
location.href="list1.php?idx=<?=$idx?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>"
</script>
22. list2.php 생성
//1.페이지 사이즈
$page_size = 10;
//2. 페이지 List 사이즈
$page_List_size = 10;
if($_GET['idx']==""){
$idx=0;
}else{
$idx=$_GET['idx'];
}
$SQL1 = " select idx, name, age, title, etc from board0628 ";
$SQL2 = " order by idx desc limit $idx, $page_size " ;
//전체레코드 수
$SQL_tc1 = " select count(*)tc from board0628 " ;
if ($ch1 == ""){
$SQL = $SQL1 . $SQL2 ;
$SQL_tc = $SQL_tc1 ;
}else if($ch1 == "name"){
$SQL = $SQL1 ." where name like '%$ch2%' " . $SQL2;
//조건에 맞는 전체 레코드 수
$SQL_tc = $SQL_tc1 . " where name like '%$ch2%' " ;
}else if($ch1 == "title"){
$SQL = $SQL1 ." where title like '%$ch2%' " . $SQL2;
$SQL_tc = $SQL_tc1 . " where title like '%$ch2%' " ;
}
$result_tc = $conn -> query($SQL_tc);
$rs_tc = $result_tc -> fetch_assoc();
//3. 전체레코드 수
$tc=$rs_tc['tc'];
//4. 총 페이지 수
$total_page = ceil ($tc / $page_size) ;
//5. 현재 레코드
$now_record = $idx + 1 ;
//6. 현재 페이지
$now_page = ceil($now_record / $page_size) ;
$result = $conn -> query($SQL);
//7. 하단가로 시작
$start_page = floor(($now_page-1)/$page_List_size)*$page_List_size + 1 ;
//8. 하단가로 마지막
$end_page = $start_page + $page_List_size - 1 ;
?>
<section>
<br><br>
<div align=center><font size=4><b>목록보기 (페이지나누기2)</b></font></div>
<div align=center>
<br>
1.페이지 사이즈 <?=$page_size?>
2.페이지List사이즈 <?=$page_List_size?>
3.전체레코드수 <?=$tc?>
4.총 페이지 수 <?=$total_page?> <br>
5.현재 레코드 <?$now_record?>
6.현재 페이지 <?=$now_page?>
7.하단가로시작 <?=$start_page?>
8.하단가로마지막 <?=$end_page?>
23. 밑에 1~10 하단가로 만들기
<?
for ($i = $start_page; $i <= $end_page ; $i ++ ){
if($i <= $total_page){
?>
<a href=list2.php?idx=<?=($i-1)*$page_size?>><?=$i?></a>
<?
}
}
?>
24. 다음 누르면 10 페이지씩 넘어가는 걸로 수정하기
<? if($end_page < $total_page){ ?>
<a href=list2.php?idx=<?=$end_page*$page_List_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>다음<?=$page_List_size?>페이지</a>
<? }else{ ?>
다음
<? } ?>
25. 이전 누르면 10페이지씩 넘어가기
<? if($start_page == 1){ ?>
이전
<? }else{ ?>
<a href=list2.php?idx=<?=($start_page-2)*$page_List_size?>&ch1=<?=$ch1?>&ch2=<?=$ch2?>>이전<?=$page_List_size?>페이지</a>
<? } ?>
º 세션
: 한번 변수에 값을 발생시키면 브라우저를 닫거나 세션을 종료시킬 때까지 값을 유지한다
또는 세션 유지의 디폴트 시간을 잡을 수도 있다
<?
session_start();
?>
세션변수에 값만 넣어주면 됨
1. login.php
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/top.php"?>
<section>
<br><br>
<div align=center><font size=4>
<b>로그인</b>
</font></div>
<div>
<br>
<form action=login_ok.php>
<table border=1 width=300 height=150 align=center>
<tr><td>아이디</td> <td><input type=text name=id></td>
<tr><td>암호</td> <td><input type=text name=pwd></td>
<tr><td colspan=2 align=center><input type=submit value="로그인"></td>
</table>
</form>
</div>
<br>
</section>
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/bottom.php"?>
2. login_ok.php
<?
session_start();
$id = $_GET['id'];
$pwd = $_GET['pwd'];
if($id == "admin"){
if($pwd == "1234" ){
?>
<script> alert('로그인 성공'); </script>
<?
$_SESSION["id"] == "admin";
header('Location:http://127.0.0.1/index.php');
exit;
}else {
?>
<script> alert('로그인 실패');
location.href="login.php";</script>
<?
}
} else {
?>
<script> alert('로그인 실패');
location.href="login.php";</script>
<?
}
?>
3. 스크립트 안쓰고 로그인 실패했을 때 로그인 링크 누르면 다시 로그인창 뜨게하기
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/top.php"?>
<section>
<br><br>
<div align=center>
<?
session_start();
$id = $_GET['id'];
$pwd = $_GET['pwd'];
if($id == "admin"){
if($pwd == "1234" ){
?>
<script> alert('로그인 성공'); </script>
<?
$_SESSION["id"] = "admin";
header('Location:http://127.0.0.1/index.php');
exit;
}else {
?>
<script> alert('로그인 실패');
location.href="login.php";</script>
<?
}
} else {
?>
<h1>로그인 실패</h1>
<a href="<?=$path?>/C_admin/login.php">로그인</a>
<?
}
?>
<br>
</div>
</section>
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/bottom.php"?>
4. 관리자 로그인 한 사람만 페이지 나누기 보게 하기
<? if($_SESSION["id"] = "admin") { ?>
<a href="<?=$path?>/B_big/insert.php">빅데이터추가</a>
<a href="<?=$path?>/B_big/list1.php">페이지나누기1</a>
<a href="<?=$path?>/B_big/list2.php">페이지나누기2</a>  
<?} ?>
5. 로그인 한 사람한테 로그아웃 버튼만 보이게하기
<? if($_SESSION["id"] != "admin") { ?>
<a href="<?=$path?>/C_admin/login.php">로그인</a>
<? }else{ ?>
<a href="<?=$path?>/C_admin/logout.php">로그아웃</a>  
<? } ?>
6. logout.php
<? session_start(); ?>
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/top.php" ?>
<section>
<br><br>
<div align=center> <font size=4> <b> 로그아웃 </b></font> </div>
<div align=center>
<br><br><br><br><br>
<h1> 로그아웃 완료 !!! </h1>
<?
$_SESSION["id"] =" "; // 값을 공백으로 변경
session_unset(); // 세션 비우기
session_destroy(); // 세션 제거하기
header('Location:http://127.0.0.1/index.php');
exit;
?>
</div>
<br>
</section>
<? include $_SERVER["DOCUMENT_ROOT"]."/D_include/bottom.php" ?>
7. top.php
<? session_start(); ?>
<html>
<head>
<style>
header{
background-color:blue;
height:65px;
line-height:65px;
color:#ffffff;
font-size:30px;
text-align:center;
}
nav{
background-color:#00aaff;
height:30px;
line-height:30px;
color:#ffffff;
font-size:13px;
}
section{
background-color:#cccccc;
min-height:530px;
}
footer{
background-color:#0000ff;
height:40px;
line-height:40px;
color:#ffffff;
font-size:16px;
text-align:center;
}
#body{
width:90%;
margin:auto;
}
a:link, a:visited
{
color: #ffffff;
text-decoration: none;
}
a:hover, a:active{
color:#000000;
text-decoration-line: underline;
}
</style>
</head>
<?
$host = $_SERVER['HTTP_HOST'];
$path = "http://".$host;
$rootPath = $_SERVER["DOCUMENT_ROOT"];
?>
<body>
<div id= "body">
<header>
학생 성적 처리 프로그램 Ver.1.11
</header>
<nav>    
<a href="<?=$path?>/A_school/form.php">학생등록</a>
<a href="<?=$path?>/A_school/list.php">학생목록/수정</a>  
<? if ($_SESSION["id"] == "admin" ) { ?>
<a href="<?=$path?>/B_big/insert.php">빅데이터추가</a>
<a href="<?=$path?>/B_big/list1.php">페이지나누기1</a>
<a href="<?=$path?>/B_big/list2.php">페이지나누기2</a>   
<? } ?>
<? if ($_SESSION["id"] != "admin" ) { ?>
<a href="<?=$path?>/C_admin/login.php">로그인</a>
<? } else { ?>
<a href="<?=$path?>/C_admin/logout.php">로그아웃</a>   
<? } ?>
<a href="<?=$path?>/index.php">홈으로</a>
</nav>
'Visual studio (PHP)' 카테고리의 다른 글
HTML -- 그래프 (0) | 2022.06.29 |
---|---|
HTML --페이지 나누기,로그인,로그아웃 코드정리 (0) | 2022.06.29 |
HTML -- 성적조회프로그램 Ver1.0 (4) 코드정리 (0) | 2022.06.28 |
HTML -- 성적조회프로그램 Ver1.0 (4) (0) | 2022.06.23 |
HTML --성적조회 프로그램Ver 1.0 (3 , 빅데이터) 코드정리 (0) | 2022.06.22 |