<!doctype html>
<html>
<body>
<form action="form.php" method="post">
<p><input type="text" name="title" placeholder="Title"></p>
<p><textarea name="description"></textarea></p>
<p><input type="submit"></p>
</form>
</body>
</html>
// form.php
<?php
file_put_contents('data/'.$_POST['title'], $_POST['description']);
?>
메인 html에서 해당 input에 name을 이렇게 지정해주면
<input type="text" name="number" size = 10>
<select name="unit">
php파일에서 밑에와 같이 값을 가져올 수 있다.
$number = $_POST["number"];
$unit = $_POST["unit"];
위와 같은 방식으로 READ를 했다면 만약 무언가를 추가하려면 file_put_contents로 CREATE하는 것이다. 여기서 첫 번째 매개변수는 제목, 두번째는 내용을 말한다. 이 후 사용자가 바로 그곳을 볼 수 있도록 header로 위치 표시 까지 해준다
<?php
file_put_contents('data/'.$_POST['title'], $_POST['description']);
header('Location: /index.php?id='.$_POST['title']);
?>
//MAIN
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?=$_GET['id']?>">update</a>
<?php } ?>
//UPDATE.PHP
<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 } ?>
<h2>
<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>
//UPDATE_PROCESS.PHP
<?php
rename('data/'.$_POST['old_title'], 'data/'.$_POST['title']);
file_put_contents('data/'.$_POST['title'], $_POST['description']);
header('Location: /index.php?id='.$_POST['title']);
?>
//MAIN.PHP
<form action="delete_process.php" method="post">
<input type="hidden" name="id" value="<?=$_GET['id']?>">
<input type="submit" value="delete">
</form>
// DELETE PROCESS
<?php
unlink('data/'.$_POST['id']);
header('Location: /index.php');
?>
require('lib/print.php')
현재 배운 PHP를 그대로 사용하면 보안상 문제가 크다 (기본적인 제작 방법을 배운거기에)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>XSS</title>
</head>
<body>
<h1>Cross site scripting</h1>
<?php
echo htmlspecialchars('<script>alert("babo");</script>');
?>
</body>
</html>
function print_description(){
if(isset($_GET['id'])){
$basename = basename($_GET['id']);
echo htmlspecialchars(file_get_contents("data/".$basename));
} else {
echo "Hello, PHP";
}
}
시각적으로 보이는 것은 모두 UI이다