25일차_PHP

서창민·2023년 4월 14일
0

HTML

목록 보기
15/18
post-thumbnail

23.04.14 금 25일차

UI구현

  • 세션을 이용한 다중 게시판 만들기
TIP !! 
: 세션 동작 실행문(session_start)은 항상 코드의 최상단에 위치해야한다
top.php
    // ip를 자동으로 불러오기
    $host = $_SERVER['HTTP_HOST'];
    $path = "http://".$host;

    // 세션을 부여한 링크로 이동
    &emsp;&emsp;&emsp;<a href="<?=$path?>/0406/list0406.php?table_name=examtbl1">1학년 성적조회</a>
    &emsp;&emsp;&emsp;<a href="<?=$path?>/0406/list0406.php?table_name=examtbl2">2학년 성적조회</a>
    &emsp;&emsp;&emsp;<a href="<?=$path?>/0406/list0406.php?table_name=examtbl3">3학년 성적조회</a>

list.php
<?
    // 세션 동작 (선택 값이 있을 때 세션과 리퀘스트 값을 가져오기)
    session_start();
    if( $_REQUEST['table_name'] != ""){
        $_SESSION['table_session'] = $_REQUEST['table_name'] ;
    }
?>
TIP !!
: PHP에서 사용시 session_start 필수로 선언해주어야한다.

​
// 세션 쿼리문 테이블 받기
$SQL = "select sNo, sName, kor, eng, math, hist from " .  
        $_SESSION['table_session'] . " order by sNo asc";
TIP !!
: 쿼리문에 변수 삽입시 쿼리문 연결부분의 가장 앞부분 띄어쓰기가 중요하다.
  • 로그인 페이지
<? include $_SERVER["DOCUMENT_ROOT"]."/include/dbconn0410.php"?>
<html>
<head>
<title> </title>
<link rel="stylesheet" href="/css/top0410.css">
</head>
<style>
    #sectionTitle{
        font-size:25px;
    }
</style>
<body>
<header> (과정평가형 정보처리기능사) 성적조회 프로그램 ver1.0 </header>
<nav>
<? include $_SERVER["DOCUMENT_ROOT"]."/include/top0410.php"?>
</nav>
<section>
<br/>
<div align=center id=sectionTitle> <b>관리자 로그인</b></div>
<div id=sectionDiv>
<br>
<form name=f1 action=/0414/login0414_ok.php>
<table border=1 align=center>
        <tr>
        <td width=80> 아이디</td><td width=80><input type=text name=id ></td> 
        <br>
        </tr>
        <tr>
        <td> 비밀번호</td><td><input type=password name=pwd ></td>
        <br>
        </tr>
        <tr>
        <td colspan=2 align=center><input type=submit value="로그인"></td>
        </tr>
    </table>
</form>
<br/>
</section>
</body>
<? include $_SERVER["DOCUMENT_ROOT"]."/include/bottom0410.php"?>

  • 로그인 동작
<?
    session_start();
    
    // 변수값 설정
    $id = $_REQUEST['id'];
    $pwd = $_REQUEST['pwd'];

// 특정 로그인 아이디&비밀번호 설정
if($id == 'admin' && $pwd == '1234'){

    // 로그인 정상(아이디 패스워드 정상)
    $_SESSION['id'] = 'admin';
    header('Location:/0406/index0406.php');
    }else {

        // 로그인 비정상(아이디 빈칸)
        $_SESSION['id'] = '';
        header('Location:/0414/login0414.php');
    }
?>
  • 로그아웃 동작
// 3가지 방법

<?
    session_start();
    
    // 로그 아웃 1. 세션 변수 값 지우기
    $_SESSION['id'] = '';

    // 로그 아웃 2. 세션이 모든 값을 삭제
    session_unset();

    // 로그아웃 3. 세션 자체를 삭제
    session_destroy();

    // 로그인 화면 이동
    header('Location:/0414/login0414.php');

?>

PHP 기본 구문

  • 변수 설정 출력 방법
// 방법 1 출력문 문자열에 변수 삽입
<?php
$txt = "PHP";
echo "I luv $txt ! ";
?>

<br>

// 방법 2 출력문에 변수 합하기
<?
$txt = "PHP";
echo "I luv " . $txt . " !";
?>
<br>
  • 문자, 숫자 출력
<?
$txt = "PHP";
$txt1 = "1";
$txt2 = "2";
echo $txt . $txt;
echo "<br>";
echo $txt1 + $txt2;
?>
  • Global scope 변수 지정 후 연산 출력
<?php
// global scope
$x = 5; 
$y = 6;
$z = 0;

function myTest() {
    global $x, $y, $z;
    $z = $x + $y;    
}

myTest();

echo "<p> is : $z </p>"; // is : 11
?>
  • 변수 설정 후 Static 반복 출력
<?php
function myTest1() {
    static $x = 0;
    echo $x;
    echo "<br>";
    $x++;
}

myTest1(); // 1
myTest1(); // 2
myTest1(); // 3
?>
  • 참, 거짓 IF문 출력
<?php

// true(참, 실수 값), false(거짓, 0)
if(-3) {

    echo "참";
}else{
    echo "거짓";
}
?>
  • 자동차 배열을 거꾸로 출력
-- 방법 1 변수 설정 후 배열 값 출력
<?php
// 배열
$cars = array("Volvo", "BMW", "Toyota", "KIA", "Hyundai");
// 현재 배열의 배열 값을 알려줌
var_dump($cars);
// 배열의 값을 거꾸로 출력(<- 순)
for($i=4; $i >= 0; $i--){
    echo $cars[$i]."&emsp;";
}

-- 방법 2 변수 설정 후 조건문설정 (값이 0이 아닐경우 쉼표 부여)
// 배열
<?
$cars = array("Volvo", "BMW", "Toyota", "KIA", "Hyundai");

for($i = count($cars)-1; $i >= 0; $i--){
    if($i != 0){
        echo $cars[$i] . ", ";
    }else{
        echo $cars[$i];
    }
}
    
?>
  • 배열 추가, 삭제
<?
// 배열
$cars = array("Volvo", "BMW", "Toyota", "KIA", "Hyundai");

// 배열 값 추가
array_push($cars, "SM"); // 맨 마지막에 추가
array_unshift($cars, "T"); // 맨 앞에 추가

echo "<br>";

// 배열 값 삭제 array_splice(변수, 위치, 길이)
array_splice($cars, 2, 1);

// 앞자리 추가 확인(0~큰수 자리수)
echo $cars[0] ."<br>";

for($i = count($cars)-1; $i >= 0; $i--){
    if($i != 0){
        echo $cars[$i] . ", ";
    }else{
        echo $cars[$i];
    }
}
?>
  • 느낀점
오늘은 PHP의 로그인에 대해서 알아보았다.
홈페이지를 작성하기 위해선 필연적으로 사용하는 로그인
계정을 통해 NAV 메뉴도 다르게 노출하는 점이 
너무 신기하고 재밌었다.
반복해서 꼭 기억하고 손에 익혀두도록 해야겠다.
profile
Back-end Developer Preparation Students

0개의 댓글