UPDATE heyas SET yatin = 60000 WHERE id = 1; UPDATE heyas SET yatin = 67000 WHERE id = 2; UPDATE heyas SET yatin = 74000 WHERE id = 3; . . .
マッチングサイト構築は一見複雑そうに見えますが、実はユーザーが検索窓に入力した語句をデータベースから適切に引っ張ってきて、キレイに並べているだけなのです。 検索の複雑さやシステムの規模によって、コストの金額は大きく変わりますが、自社で持つマッチングのアイディアを実現するには、費用を安く抑える方法がたくさんあります。 ここでは、マッチングサービスを作れるオープンソースのOsclassについて解説します。 マッチングサイトを構築するには例えばPHP+MySQLを使ったシステム設計が必要となります。 つまりマッチングサイト構築は、デザインやコンテンツを主体とした「ホームページの制作」の延長線上にあるのではなく、営業支援システムやECサイトのような「システム開発」の延長線上にあるというのが基本的な考え方です。 Osclassも基本的には「システム開発」支援ツールなのですが、マッチングサイト構築に特
今回はオールアバウトのnnmrが弊社サイトAll About Japanの速度を高速化した経緯についてまとめます。 All About Japanとは そもそもAll About Japan(以下AAJ)とは何かといいますと、弊社が提供している訪日外国人向けの日本紹介サイトです。 外国人向けサイトで、英語、中国語(繁体字)、中国語(簡体字)、タイ語、韓国語の5か国語に対応しております。 「Anime」「Izakaya」「Ninja」といったような特集や、実際に観光する人向けのモデルルート記事が特色です。 ■ 特集 (url : http://allabout-japan.com/en/tag/sushi/ ) ■ モデルルート記事 (url : http://allabout-japan.com/en/article/222/ ) 技術的な紹介 LAMP環境です。 (サーバー構成は後に記述
先日PHPカンファレンス北海道2016にて「『例えば、PHPを避ける』以降PHPはどれだけ安全になったか」と題して基調講演を担当致しました。その際のスライドはこちら。 そうしたところ、以下のご指摘をいただきました。 @ockeghem スライド拝見しました。39番目のスライドですが、バインドのタイミングでintにキャストするのはちょっと例として良くない気がします。意図的にオーバーフローを起こすことで想定外のレコードの取得を許してしまいそうです。キャストしない方がまだ安全だと思うのですが。 SQLデータベースは、int型よりも大きな桁数を扱える場合があるので、intへのキャストを避けた方がよいという指摘は一般論としてはもっともなものだと考えます。PHPの場合、9223372036854775807を越える数字文字列をint型にキャストすると、9223372036854775807が返ります(
PHP Advent Calendar 2013 in Adventarの19日目です。昨日も私の「PDOでの数値列の扱いにはワナがいっぱい(2)」でした。 うっかりtogetterなんか見てしまい、無駄に時間を使ってしまったと後悔した上に混乱してしまい余計にわからなくなってしまった人もいるかも知れません。 そこで、せっかくの機会なので、SQLインジェクション対策について、現在の私の考えをまとめておこうと思います。 選べ ①SQLインジェクション対策にプリペアドステートメントを使う ②SQLインジェクション対策にエスケープを使う もし、上記のような選択にはまってしまったら、あなたのSQLインジェクション対策は、現実的には、ほぼ100%間違っていると言えるのではないでしょうか。プリペアドステートメントとエスケープは、このような対立構造にはありませんから。 なお、この記事は、SQLインジェクシ
こんにちは。しげァsjdasaxnYhsキです。 WEB制作での開発環境について、うちでは案件によりますが、今までは主にXAMPP/MAMPを使用した開発を行っていました。 しかし、時代は流れに流れ、今更ながらPHPでの主な開発環境をMAMPから「Vagrant(ベイグラント)」へ移行させることにしました。 これまでの開発環境の問題点これまでの開発環境についての問題点ですが、よくあるのが以下のようなことでした。 XAMPP/MAMP等でよくある問題点 チームでの開発の場合、それぞれ環境が違うと「あれ、こっち動かないよ」という人がでてくる複数案件を1台でやってるとVirtualHostが溢れるport80が何者かに使われている、そして動かない複数人で環境を揃えるにはそれぞれソフトウェア等のインストールが必要mampなどでの開発環境では、チームでのそれぞれのPHPのバージョンが違ったり、 po
平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 本件に関するお問い合わせはこちらよりお願いいたします。
php & MySQL 作成している掲示板にタグ機能をつけたいと思っています。以前はユーザーごとにタグをスペースで区切り、入力してもらいそれを毎回新しいレコードを作製し userid にユーザー名を day に日にちを topicsid に掲示板レス番号を tags にタグを半角スペース1つで区切ったものを全て格納していました。 それで、 hatena というタグを選択した際、tags にhatenaという単語が入っている全ての topicsid を表示し関連のあるスレを表示できるようにしていました。SQLは SELECT * FROM `tag` WHERE `day` = '".$today."' AND (`tags` = '".$tag."' OR `tags` LIKE '".$tag." %' OR `tags` LIKE '% ".$tag." %' OR `tags` LI
さくらのVPSではyumをインストールしてPHPを入れることができますが、標準のリポジトリ(パッケージDB)だとPHP5.1.6という古いバージョンが入ってしまいます。 そこで最新バージョンが入るように変えてみましょう。 同様にMySQLも最新版にしてみます。 リポジトリ(パッケージデータベース)を「Remi」に変更 「Remi」っていうのは、フランスにいらっしゃる、最新のLinuxアプリパッケージを管理しているお方で(頭が下がります)、Remiさんが管理しているリポジトリ(Remiリポジトリ)を使うと、最新のパッケージをyumでインストールできたりするのです。 yumコマンドではリポジトリを元にパッケージを選んでインストールします。 PHPの最新版もRemiさんのおかげでインストールできるわけです。 ありがたや~。 拡張リポジトリ「EPEL」をまずダウンロード&インストール Remiリポ
少し前のお話なのだけど、せっかくなので書いておくことにする。 MySQLのクエリログを見ていたら、 prepare に相当するログが一切流れていないことに気づいたので、PDO(mysql)でサーバサイドプリペアードステートメントが利用されていないんじゃないか疑惑が浮上。 php のバージョンは 5.2.11 mysql は 5.0 系 以下、検証してみた結果と、その対応です。 検証 簡単なソースコードを実行してみて、そのクエリログを見てみることにした。 PDO を利用 $p = new PDO('mysql:dbname=dbname;host=localhost', 'user', 'password'); $stmt = $p->prepare("SELECT * FROM table_name WHERE id=?"); $stmt->execute(array(1)); $stmt
8月18日にPHP5.3.7がリリースされました。このリリースにより、PDOのSQLインジェクションの問題が一応解決されたと判断しましたので、ここに「一応の安全宣言」を表明するとともに、残る問題について報告します。 PDOの問題とは何か 以前、ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)にて報告したように、PHP5.3.5以前のPDOにはDB接続時に文字エンコーディングを指定する機能がないため、文字列リテラルのエスケープの際に文字エンコーディングをLatin1を仮定してしまうという問題がありました。この状態ですと、DBにShift_JISで接続している際に、SQLインジェクション脆弱性が混入しました。 ※ 実は、先のエントリの「追記(2010/07/01 22:20)」に紹介した方法で文字エンコーディングを指定できるのですが、ほとんど知られていないのと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く