『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

PHPで画像アップローダ作ってあったけど放置してたお話

はじめに

昨年中に行われた我が校の高専祭のために勝手に作った「落し物案内所」なるWebアプリケーションをPHPで2時間ぐらいで作ったお話をリポジトリをあさってたら思い出したので書いておこうと思ったのでこの記事を書かせていただきます.

一応,リポジトリリンク貼っておきます

https://github.com/nnsnodnb/nituc-festival52-lostgithub.com

なぜ作ろうと思ったか

  • 何かしら高専祭実行員さんに貢献したかった
  • アップロードシステムを作ってみたかった

だけ.まぁ趣味の範囲ですね

公開URL

nnsnodnb's Profile

自鯖なので:citeが表示できないのがつらいですね.あのシステムってもしかしたらfaviconつけたらできるようになる?
知ってる方いたら教えてください.

簡単なプログラム説明

フレームワーク

Bootstrapの沼にハマっているのでCSSフレームワークは相変わらずid:windyakinさんのHonokaを使わせていただきました.

honokak.osaka

PHP

PDOでMySQLに接続してます.mysqliは使ったことないです.

index.php

データベースにデータが無かったら「落し物はない」というような表示をさせるわけです.
逆にあれば,以下画像のように表示します.今回はスマフォからのアクセスを考慮しているので画像以外のファイルは例外処理によって吐き出されるようにはなっていません.

f:id:nanashinodonbee:20160128171528p:plain

我らが神「らりょす教祖」様の出番でした.ありがとうございました.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

ソースコードはこちらで見てもらえたらありがたいですね.

  1. ファイルがあるか確認
  2. あればファイル名を指定して特定のフォルダに移動させてあげる.この時のファイル名はそのままのものを使いました.DB側のエンコードUTF-8してあります
  3. アップロード先のファイルのパーミッションを変更してあげる
  4. データベースに「ファイル名」「取得場所」「取得時間」をインサートする
  5. 無事インサートが終われば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とも反省しています.今から修正します