*/ /* * ##### 使用前に読んでね ##### * * 「vars.php.example」を「vars.php」にコピーして、「<……>」を取り替えます。 * 次に、vars.phpに指定データベースを作成して、以下のテーブルを作成します。 * * CREATE TABLE items ( * item_id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, * priority INT, * count INT, * dec_amount INT, * inc_amount INT, * description VARCHAR(2048), * key VARCHAR(64) * ); */ require_once('vars.php'); // ソースコードを送信 if(isset($_GET['source'])) { header("Content-Type: text/plain"); die(file_get_contents(basename($_SERVER['PHP_SELF']))); } ?> アイテム数トラッカー
アイテムの' . ($itemEdit ? '編集' : '追加') . ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo ''; echo ''; if($itemEdit) echo ''; echo '
'; } else if($keyMenu) { //キーを設定 echo '

キーの設定

'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '
'; echo '

アプリを使用するには、キーを設定する必要があります。キーを持つ誰でもあなたのアイテムを見ることができますので、秘密にしておきましょう。

'; } else { // HPを表示 if(!empty($key)) { if(isset($itemRemove)) { // アイテムを削除 $query = 'SELECT description FROM items WHERE items.key=$1 AND item_id=$2'; $res = pg_query_params($query, [$key, $itemRemove]) or die('Query failed: ' . pg_last_error()); $row = pg_fetch_array($res); if($row) { $desc = $row['description']; $query = 'DELETE FROM items WHERE item_id=$1'; pg_query_params($query, [$itemRemove]); echo "
{$desc}は削除しました。
"; } else { echo "
アイテムはありません。
"; } } else if(isset($itemInc)) { // アイテムを増加する $query = 'SELECT description, inc_amount, count FROM items WHERE items.key=$1 AND item_id=$2'; $res = pg_query_params($query, [$key, $itemInc]) or die('Query failed: ' . pg_last_error()); $row = pg_fetch_array($res); if($row) { $desc = $row['description']; $count = $row['count'] + $row['inc_amount']; $query = 'UPDATE items SET count=$1 WHERE item_id=$2'; pg_query_params($query, [$count, $itemInc]) or die('Query failed: ' . pg_last_error()); echo "
{$desc}は{$count}に増加しました。
"; } else { echo "
アイテムはありません。
"; } } else if(isset($itemDec)) { // アイテムを減少する $query = 'SELECT description, dec_amount, count FROM items WHERE items.key=$1 AND item_id=$2'; $res = pg_query_params($query, [$key, $itemDec]) or die('Query failed: ' . pg_last_error()); $row = pg_fetch_array($res); if($row) { $desc = $row['description']; $count = $row['count'] - $row['dec_amount']; $query = 'UPDATE items SET count=$1 WHERE item_id=$2'; pg_query_params($query, [$count, $itemDec]) or die('Query failed: ' . pg_last_error()); echo "
{$desc}は{$count}に減少しました。
"; } else { echo "
アイテムはありません。
"; } } else if(isset($keySet)) { if(!empty($keySet)) { echo "
ようこそ、{$shortKey}さん。
"; } else { echo "
さようなら、{$shortKey}さん。
"; } } else if(isset($setDescription)) { // アイテムを編集・追加する $itemId = $_POST['item-id']; $setCount = $_POST['set-count']; $setInc = $_POST['set-inc']; $setDec = $_POST['set-dec']; $setPriority = $_POST['set-priority']; if($itemId) { $query = 'SELECT FROM items WHERE items.key=$1 AND item_id=$2 LIMIT 1'; $res = pg_query_params($query, [$key, $itemId]) or die('Query failed: ' . pg_last_error()); } if(pg_num_rows($res) == 0) { $query = 'INSERT INTO items (priority, count, dec_amount, inc_amount, description, key) VALUES ($1, $2, $3, $4, $5, $6)'; pg_query_params($query, [$setPriority, $setCount, $setDec, $setInc, $setDescription, $key]); echo "
{$setDescription}は追加しました。
"; } else { $query = 'UPDATE items SET priority=$1, count=$2, dec_amount=$3, inc_amount=$4, description=$5 WHERE items.key=$6 AND item_id=$7'; pg_query_params($query, [$setPriority, $setCount, $setDec, $setInc, $setDescription, $key, $itemId]); echo "
{$setDescription}は更新しました。
"; } } // アイテム一覧 $query = 'SELECT item_id, count, description, priority FROM items WHERE items.key=$1 ORDER BY items.priority DESC, items.description ASC'; $res = pg_query_params($query, [$key]) or die('Query failed: ' . pg_last_error()); echo '

アイテム一覧

'; if(pg_num_rows($res) > 0) { echo '
'; echo ''; echo '
'; } } else { echo '
キーを設定してください。
'; } } pg_close($dbc); ?>