LoginSignup
5
4

More than 5 years have passed since last update.

簡易メモ帳 (db不要)

Last updated at Posted at 2016-06-22

session_id固定ネタを見て感動したので。

memo.png

memo.php
<?php
session_id("memo-".md5($_SERVER["QUERY_STRING"]));
session_start();
if (!empty($_POST["memo"])) {
        $_SESSION["memo"] = $_POST["memo"];
}
?><meta charset="utf-8">
<form method="post">
        <textarea name="memo" style="height:80%; width:90%;"><?php echo $_SESSION["memo"]; ?></textarea>
        <input type="submit" value="save" style="width:80%; margin: 1em;" />
</form>

データは以下に保存

  • /var/lib/php/session/ (php -i | grep session)
    • sess_memo-
    • sess_memo-0c09c125348bcbb25da8438711c68234
  • OS再起動しても残る。

メモを増やしたい場合

QUERY_STRINGを変更すれば良い。

  • memo.php
  • memo.php?page=1
  • memo.php?page=2
  • memo.php?page=3
  • memo.php?page=4
  • memo.php?page=5

セッションについてもっと詳しくなるには

gz圧縮保存

  • セッションのサイズは数KBしかないので圧縮するとよいかな。
memo.php
<?php
session_id("memo-".md5($_SERVER["QUERY_STRING"]));
session_start();
$memo = null;
if (!empty($_POST["memo"])) {
        $_SESSION["memo"] = gzcompress($_POST["memo"]);
}
if (!empty($_SESSION["memo"])) {
    $memo = gzuncompress($_SESSION["memo"]);
}
?><meta charset="utf-8">
<form method="post">
        <textarea name="memo" style="height:80%; width:90%;"><?php echo $memo; ?></textarea>
        <input type="submit" value="save" style="width:80%; margin: 1em;" />
</form>

ファイルに保存する場合

memo.php
<?php
$file_name = "memo-".md5($_SERVER["QUERY_STRING"]);
if (!empty($_POST["memo"])) {
        file_put_contents($file_name, gzcompress($_POST["memo"]));
}
$memo = gzuncompress(file_get_contents($file_name));
?><meta charset="utf-8">
<form method="post">
        <textarea name="memo" style="height:80%; width:90%;"><?php echo $memo; ?></textarea>
        <input type="submit" value="save" style="width:80%; margin: 1em;" />
</form>
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4