Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- php
- C
- 따라하면서 배우는 C언어
- Cleancode
- 정수론
- String
- sorting
- programmers
- BFS
- 따라하며 배우는 C언어
- Python
- BASIC
- Algorithm
- 따배씨
- Algospot
- graph
- udemy
- 종만북
- Math
- 백준
- JavaScript
- web
- dfs
- DP
- C언어
- 생활코딩
- greedy
- server
- 인프런
- BOJ
Archives
- Today
- Total
몽상실현개발주의
[생활코딩] 15.4~5 데이터를 HTML 에 표현하기 - 2 ~ 3 본문
생활코딩 php 강좌
15. PHP와 MYSQL의 연동
15.4 데이터를 HTML 에 표현하기 2
<?php
echo '<a href="#">test</a>';
echo htmlspecialchars('<a href="#">test</a>');
echo '<br/>';
?>
// test (link)
// <a href="#">test</a>
- echo 로 html tag 를 출력하면 tag 가 동작하여 출력
- htmlspecialchars() 를 사용하면 입력된 html tag 를 작성된 문자열 그대로 출력
- 사용자가 html tag 입력을 이용한 공격을 방지
- 의도 되지 않은 script 동작을 방지
- 입력에 의한 공격을 방어 : Filtering
- 출력에 의한 공격을 방어 : Escaping
15.5 데이터를 HTML 에 표현하기 3
- Link 에 해당하는 특정 정보를 본문에 출력 하기
- Data 에 대한 식별자인 id 값을 전달
- Link 에 해당하는 id 값이 url 에 추가되어, 사용자가 열람하고자 하는 Data 를 화면에 출력
- url : ~/list.php?id=idNum
<?php
$mysql = mysqli_connect(hostname, username, password);
mysqli_select_db($mysql, 'opentutorials');
$list_result = mysqli_query($mysql, 'SELECT * FROM topic');
if(!empty($_GET['id'])) {
$topic_result = mysqli_query($mysql, 'SELECT * FROM topic WHERE id = '.mysqli_real_escape_string($mysql, $_GET['id']));
$topic = mysqli_fetch_array($topic_result);
}?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
...
</style>
</head>
<body id="body">
<div>
<nav>
<ul>
<?php
while($row = mysqli_fetch_array($list_result)) {
echo "<li><a href=\"?id={$row['id']}\">".htmlspecialchars($row['title'])."</a></li>";
}
?>
</ul>
<ul>
<li><a href="input.php">추가</a></li>
</ul>
</nav>
<article>
<?php
if(!empty($topic)){
?>
<h2><?=htmlspecialchars($topic['title'])?></h2>
<div class="description">
<?=htmlspecialchars($topic['description'])?>
</div>
<div>
<a href="modify.php?id=<?=$topic['id']?>">수정</a>
<form method="POST" action="process.php?mode=delete">
<input type="hidden" name="id" value="<?=$topic['id']?>" />
<input type="submit" value="삭제" />
</form>
</div>
<?php
}
?>
</article>
</div>
</body>
</html>
if(!empty($_GET['id'])) {
$topic_result = mysqli_query($mysql, 'SELECT * FROM topic WHERE id = '.mysqli_real_escape_string($mysql, $_GET['id']));
$topic = mysqli_fetch_array($topic_result);
- 전달된 인자에 'id' 값이 존재하면 (empty() == false), $topic 에 해당하는 Data를 저장
- url 을 통해 id 값을 받아옴
- 전체 Data 중 특정 Data 를 조회 할때, id 값을 이용하여 page 상에 보여주기 위함
- mysqli_fetch_array($topic_result)
- mysqli_fetch_array() 는 한번 실행 될 때, 하나의 Data를 Array type으로 return 하고 제거
- data 가 없다면, False 를 return
...
<body>
...
<article>
<?php
if(!empty($topic)){
?>
<h2><?=htmlspecialchars($topic['title'])?></h2>
<div class="description">
<?=htmlspecialchars($topic['description'])?>
</div>
<div>
<a href="modify.php?id=<?=$topic['id']?>">수정</a>
<form method="POST" action="process.php?mode=delete">
<input type="hidden" name="id" value="<?=$topic['id']?>" />
<input type="submit" value="삭제" />
</form>
</div>
<?php
}
?>
</article>
...
</body>
- $topic 에 Data 가 존재한다면 (empty($topic) == false), 해당 정보를 표기
- $topic = mysqli_fetch_array($topic_result)
- mysqli_fetch_array() 는 값이 없을 경우, false 를 return 하는 것을 이용
- empty(false) == true / empty(true) == false
- $topic = mysqli_fetch_array($topic_result)
- 특정 Data 를 선택 하였을 때, 'id' 값을 GET 으로 전달받아 $topic 에 저장한 후 page 상에 출력
이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.
'Language > php' 카테고리의 다른 글
[생활코딩] 15.7 토픽 삭제 (0) | 2021.05.21 |
---|---|
[생활코딩] 15.6 데이터 수정하기 (0) | 2021.05.21 |
[생활코딩] 15.3 데이터를 HTML에 표현하기 -1 (0) | 2021.05.21 |
[생활코딩] 15.1 사용자의 정보 서버로 전송하기 ~ 15.2 데이터 추가하기 (0) | 2021.05.20 |
[생활코딩] 15.0 강의 미리보기 (0) | 2021.05.20 |
Comments