글생성
create.php 파일을 만들어 준다
<?php
function print_title(){
if(isset($_GET['id'])){
echo $_GET['id'];
} else{
echo "Welcome";
}
}
function print_description(){
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello, PHP";
}
}
function print_list(){
$list = scandir('./data');
$i = 0;
while($i < count($list)){
if($list[$i] != '.'){
if($list[$i] != '..') {
echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>\n";
}
}
$i = $i + 1;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
<?php
print_title();
?>
</title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?php
print_list();
?>
</ol>
<a href="create.php">create</a>
<form action="create_process.php" method="post">
<p>
<input type="text" name="title" placeholder="Title">
</p>
<p>
<textarea name="description"
placeholder="Description"></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>
create에서 제출버튼을 누르면 create_process.php로 링크가 옮겨지고 post방식으로 전송한다
이제 create_process.php 파일을 만들어보자
<?php
file_put_contents('data/'.$_POST['title'], $_POST['description']);
header('Location: /index.php?id='.$_POST['title']);
?>
파일을 입력받은 제목 본문으로 만들어주고
만들게되면 주소를 그 파일의 제목값으로 보내버린다
글수정
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?php echo $_GET['id']; ?>">update</a>
<?php } ?>
업데이트는 어떤 자료를 클릭했을 때 나와야 하므로 if문으로 id값이 존재할 때 띄우도록 하였다
이제 업데이트 버튼을 누르면 update.php?id=id값으로 이동할 것이다
<?php
function print_title(){
if(isset($_GET['id'])){
echo $_GET['id'];
} else{
echo "Welcome";
}
}
function print_description(){
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello, PHP";
}
}
function print_list(){
$list = scandir('./data');
$i = 0;
while($i < count($list)){
if($list[$i] != '.'){
if($list[$i] != '..') {
echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>\n";
}
}
$i = $i + 1;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
<?php
print_title();
?>
</title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?php
print_list();
?>
</ol>
<a href="create.php">create</a>
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?= $_GET['id']; ?>">update</a>
<?php } ?>
<form action="update_process.php" method="post">
<input type="hidden" name="old_title" value="<?=$_GET['id']?>">
<p>
<input type="text" name="title" placeholder="Title" value="<?php print_title(); ?>">
</p>
<p>
<textarea name="description"
placeholder="Description"><?php print_description(); ?></textarea>
</p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>
update를 누를 시
제목과 본문이 그대로 수정할 수 있게 값이 입력되어져 있을 것이다
그리고 rename을 위해서 hidden타입으로 옛 제목을 만들어주고
짧은태그로 <?= 를 사용해주었다 이는 <?php echo 와 같은 뜻이다
update_process를 보자
<?php
rename('data/'.$_POST['old_title'], 'data/'.$_POST['title']);
file_put_contents('data/'.$_POST['title'], $_POST['description']);
header('Location: /index.php?id='.$_POST['title']);
?>
rename을 통해서 이름을 바꾸어주고
파일을 만들어주고
그 아이디에 맞는 주소로 이동하게 된다