はじめに
昨年中に行われた我が校の高専祭のために勝手に作った「落し物案内所」なるWebアプリケーションをPHPで2時間ぐらいで作ったお話をリポジトリをあさってたら思い出したので書いておこうと思ったのでこの記事を書かせていただきます.
一応,リポジトリリンク貼っておきます
https://github.com/nnsnodnb/nituc-festival52-lostgithub.com
なぜ作ろうと思ったか
- 何かしら高専祭実行員さんに貢献したかった
- アップロードシステムを作ってみたかった
だけ.まぁ趣味の範囲ですね
公開URL
自鯖なので:citeが表示できないのがつらいですね.あのシステムってもしかしたらfaviconつけたらできるようになる?
知ってる方いたら教えてください.
簡単なプログラム説明
フレームワーク
Bootstrapの沼にハマっているのでCSSフレームワークは相変わらずid:windyakinさんのHonokaを使わせていただきました.
PHP
PDOでMySQLに接続してます.mysqliは使ったことないです.
index.php
データベースにデータが無かったら「落し物はない」というような表示をさせるわけです.
逆にあれば,以下画像のように表示します.今回はスマフォからのアクセスを考慮しているので画像以外のファイルは例外処理によって吐き出されるようにはなっていません.
我らが神「らりょす教祖」様の出番でした.ありがとうございました.id:raryosu
削除ボタンを押せば,アラートが出てOKを押せば無事削除できます.
form.html
普通のHTMLファイルなので説明はいいかな?
ただファイル選択ボタンを設置するために<input type="file" name="upfile" id="file">
を書いたぐらいです.
action先はupload.php
です.
upload.php
https://github.com/nnsnodnb/nituc-festival52-lost/blob/master/upload.phpgithub.com
ソースコードはこちらで見てもらえたらありがたいですね.
- ファイルがあるか確認
- あればファイル名を指定して特定のフォルダに移動させてあげる.この時のファイル名はそのままのものを使いました.DB側のエンコードをUTF-8してあります
- アップロード先のファイルのパーミッションを変更してあげる
- データベースに「ファイル名」「取得場所」「取得時間」をインサートする
- 無事インサートが終わればheader関数で
index.php
に戻します.echoとかでHTMLに吐き出してると動かないので吐き出さないようにするのがポイントですね
delete.php
index.php
で削除ボタンを押すとURLにGETメソッド
でDB上のIDを紐付けているので$id = $_GET['find'];
で受け取る.
<a href='delete.php?find=".$result['id']."'>...</a>
こんな感じで指定してる.
あとは,DBから削除するだけ
最後に
img
フォルダのパーミッション設定が上手くいかなく,躍起になって777
にしたことを反省しつつ謹んでらりょす教祖様に今回のコラ画像を使わせていただきました.
気が向いたらちゃんとDBからのデータ削除時に画像ファイルを削除するようにしておきます.
あと,config.php
とかを使わなかったのかなと反省してます.本当になんで作らなかったんだろうwとも反省しています.今から修正します