通常CakePHPをcloneしてきただけでも このような(インストールしただけだとデータベースとかsaltを直せとか出るけど)画面になるはずです。 でも今日は"Fatal error: Uncaught exception 'CacheException' with message 'Cache engine cake_core is not properly configured..."というエラーが出現しました。 原因としてはCakePHPおなじみのapp/tmpが書き込み可能になるようにすればいい。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationWh
こんな感じになると思います。 但し、以下の例はわかりやすさを優先するため、エラー処理やサニタイズ処理などを全く行っていませんので注意してください。 また、実際に動かしてみていないコードなので、エラーがあるかもしれません(笑) 適当に修正しながら使ってください。 以下の仮登録用テーブルを作成しておく。 | CREATE TABLE interim_registration ( | username varchar(32) NOT NULL, | password varchar(32) NOT NULL, | mailadr varchar(64) NOT NULL, | reg_key varchar(64) NOT NULL | ); ---- <html><!-- register.html --> <body> <form action="http://www.example
ちょっと遅れましたが、シリーズの第3回です。前回までに論じた内容をふまえて、簡単な実装を示します。↓前回までの内容はこちら。 DAOの悪夢 - PHPでデータベースを扱う(1) - 泥のように ドメイン駆動設計という救世主 - PHPでデータベースを扱う(2) - 泥のように 題材 「記事にタグを設定できるブログ」みたいなシステムを考えてみます。ブログ記事を示すEntryテーブル、タグを表すTagテーブルの二つを用意しました。MySQL WorkbenchによるER図(鳥足記法)は以下になります。 1つのEntryに対して複数のTagがある、1対多の関係です。同じTagが複数のEntryに関連するため、多対多の関係と見なすこともできそうですが、タグ程度だとあまり意味がないので、これ以上のテーブル分割はやめておきます。 Entryテーブルの主キーがentryIdと冗長な名前をしているのは、自
追記3 別途検証していた際に記事に記載漏れがあったので追記しました。 post のリクエストの箇所で、Requestを利用するためには、bootstrap/app.phpの$app->withFacades();をコメントインする必要があります。 追記2 getとpostだけでは実用的ではないので、ORMとMigrationを触ってみた記事を書いたので見ていただければと思います。 Laravel製 軽量フレームワーク Lumen ORMとMigrationを触ってみる 追記 @shin1x1 さんから以下の様にコメントを頂いたのでサーバー起動に関して記事を修正しました。 Lumen(Laravel)には、ビルトインサーバを起動するコマンドがあるので、こちらを利用すると良いです。 趣旨 laravelから軽量フレームワークの Lumenと言うのが出たらしいのでとりあえず、get,postとテ
Laravelドキュメント 初めに Laravelを楽しめるのは誰? Laravelはどこが違うの? アプリケーション構造 Laravelのコミュニティー ライセンス情報 初めに Laravelのドキュメントへようこそ。 このドキュメントはスタートガイドとして、さらに特徴の紹介としても役立つように書かれています。 どこから読んでも学習できますが、以前に学んだ概念をもとに、その後に続くドキュメントは書かれていますので、初めから順番に読むことをお勧めします。 Laravelを楽しめるのは誰? Laravelは柔軟性と読み書きしやすさを重視した、パワフルなフレームワークです。 初めてLaravelに触れる方は、人気がある軽量なPHPフレームワークを使用して開発する時と同じ、安らぎを感じるでしょう。 もうちょっと経験を積んだユーザーであれば、他のフレームワークではできない方法で、コードをモジュール
Idiormとは PDOをそのまま使って業務システムを組んでいたのですが、大きくなるにつれてツラくなってきたので、ラッパーライブラリを探すことにしました。 以前はDoctrineを使っていたのですが、今の業務で使うには高機能すぎる感じがしたので、薄いライブラリを探していたところ、Idiormというのが良さそうだったので試してみることにしました。 $user = ORM::for_table('user') ->where_equal('username', 'j4mie') ->find_one(); $user->first_name = 'Jamie'; $user->save(); $tweets = ORM::for_table('tweet') ->select('tweet.*') ->join('user', array( 'user.id', '=', 'tweet.use
Docs » Welcome to Idiorm’s documentation! Edit on GitHub Welcome to Idiorm’s documentation!¶ Contents: Philosophy Installation Packagist Download Configuration Setup Configuration Querying A note on PSR-1 and camelCase Single records Multiple records Counting results Filtering results Grouping Having Result columns DISTINCT Joins Aggregate functions Raw queries Models Getting data from objects Upd
Idiorm is an object-relational mapper and fluent query builder. If you prefer to think about tables and joins, you should probably be using Idiorm. $user = ORM::for_table('user') ->where_equal('username', 'j4mie') ->find_one(); $user->first_name = 'Jamie'; $user->save(); $tweets = ORM::for_table('tweet') ->select('tweet.*') ->join('user', array( 'user.id', '=', 'tweet.user_id' )) ->where_equal('us
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 前書き より一般化したものについては 「ファイルアップロードの例外処理はこれぐらいしないと気が済まない」 を参照。ここではそれを元に画像ファイルに限定して、いくつかのパターンで例を構成してみる。また、フォームの送信と受信を同一ファイルで行うとする。 サンプル集 1. exif_imagetype 関数を用いてチェックを行う これは、画像に関するMIMEタイプを整数として返す関数である。finfoクラスが使えない環境においても統一的にこちらの関数は使えるはず。但し、画像の形式を判別するために必要なだけのバイト数を読み込めない場合にエラーを発生するので、 エラー制御演算子 @ を用いて抑制する必要がある。以前ここでは getimagesi
前書き はい、また出ました アップロードシリーズ!$n$番煎じとか言わないで! 今まで通りファイル1つで全部の処理を行う方針で書きました。原寸大画像・サムネイルともにファイルとしてではなくデータベース内に保存するのがポイントです。サムネイル表示に先日の 「QiitaにXSS脆弱性」 でも話題になった データURIスキーム を利用していることに着目してください。 実装 テーブル定義 CREATE TABLE image( `id` int UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'ID', `name` varchar(255) NOT NULL COMMENT 'ファイル名', `type` tinyint(2) NOT NULL COMMENT 'IMAGETYPE定数', `raw_data` mediumblob NO
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 脆弱性について 参考リンク PHPにおけるファイルアップロードの脆弱性CVE-2011-2202 PHP 5.4.1リリースのポイント 上記に対する補足説明 PHP 5.4.1以降 PHP 5.3.11以降 どちらかを満たしているならば,脆弱性は(今のところ)無い.どちらも満たしていないと, $_FILES 変数の構造を崩す攻撃 ../ をファイル名に含めて送信する攻撃 (ディレクトリトラバーサル) の何れか,もしくは両方の脆弱性を所持していることになるので要注意. 脆弱性対策と注意事項 $_FILES Corruption 対策 改竄されたフォームからの複数ファイル配列送信対策 脆弱性が修正された環境でも 改竄フォーム対策 も兼ねて
はじめに みんなでファイルを共有管理したい…てな場面は多いかと思います。開発メンバー内だけであれば、GoogleドライブやOneDrive、Amazon CloudDrive、DropBoxなど選択肢は色々あります。自サーバーがあるなら、FTP/SFTPソフトなんかで接続すれば、まぁなんでもやりたい放題ですね(Windowsでは「WinSCP」、Macでは「FileZilla」あたりをよく使います)。SVNやGitを立てればドキュメントのバージョン管理もできます。 ただ、企画書やデザイン案など、開発外(営業部門とか外部のデザイナーさんとか)の人たちにも幅広く使ってもらいたい場合、アカウントを取得してもらったり、ソフトの使い方を覚えてもらったり、閲覧するだけであってもログインが必要だったり…と、それぞれ一長一短あり、どれもやや面倒です。 File Thingie 前置き長くなりましたが『 F
file_get_contentsにまつわるTIPS $res = file_get_contents('http://example.com'); file_get_contentsはローカルのファイルパスだけでなく、URLを入れることでHTTPリクエストを送信することもできます。しかし、その仕様は奥深く難解であり、TIPSが数多く存在する関数でもあります。今回はそんなfile_get_contentsにまつわるTIPSをまとめてみます。 PHP5.3.3で確認していますが、大まかな挙動は他の5.x系でもそんなに変わらないはず。 仕様的なこと 2xx, 3xx以外のレスポンスボディを取得しない HTTPステータスコードが204または304でなければレスポンスボディを含んでいる可能性があります。しかし、file_get_contentsは、2xx, 3xxのみ( それが204や304であっ
HTMLをパースしてきてDB化したり、RSSのテンプレに落とし込む…と言ったことを少し前からしているのですけど、1つ2つならいざ知らず対象サイトが増えてくると正規表現で何かし続けるのはたいそう無理があります。そういうわけでDOMを使ったりXPathを使ったりもしていたのですが、どちらもHTMLの構造にぴったりとは言えなくて、高度なことが出来るが故に記述が複雑になってしまうのでした。うーん。慣れるまでにハードルがあるな… そんなことを思っていたのですが、ふとした拍子に見つけたライブラリ「PHP Simple HTML DOM Parser」を利用してみたらば、とてつもなく便利でびっくり。jQueryのようなセレクタでガンガン指定して持ってくるスタイルでわかりやすいのなんの。 $text = $dom->find('#todays_darling', 0)->innertext; //今日のダ
2013/07/17追記 @yutakikuchi_です。 ※本記事の内容より詳しいものを書きました。 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記 概要 Mysqlからアプリケーションで日付情報を引くときDate型<=>Timestamp型の変換を行う事がしばしばある。 今日はPHP/Python/JavascriptのDate/Timestampの型変換についてまとめる。 Javascriptの例ではSpiderMonkeyを利用している。 Date型の日付を出力する php <?php //現在時刻をDate型で出力 //date関数を使う場合 echo date("Y-m-d H:i:s") . "\n"; //結果 2011-10-14 00:00:00 //strftime
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く