2009-01-01から1年間の記事一覧
フレームワークを学ぶ。 ■フレームワークアプリケーションの土台。データベースへの接続、データの登録編集削除ページの作成などWebアプリケーションに必須な機能を提供するソフトウェア。一から作らなくてよいので効率が良い。 ■フレームワークのメリット …
■インストール公式ではPEARでのインストールを推奨しているのでそれで行う。 PEARチャンネルの選択、アップデート、そしてethnaのインストールを行う。同時にSmartyのインストールも行う。PEARだとインストールの設定をする必要がない。 $ pear channel-disc…
パーミッションについて復習。 -rwxr-xr-x 1 sato sato 801 7月 6 11:25 config.php drwxr-xr-x 2 sato sato 4096 7月 3 16:22 templates drwxrwx--- 2 sato www 4096 7月 6 11:40 templates_c 一番左ファイルタイプと各ユーザーの権限 ファイルタイプ -:フ…
テンプレートエンジンである、Smartyを用いる。 ■テンプレートエンジン ロジックの部分(プログラム)とテンプレート(html)部分を分けて作成し、 プログラムとデザインを別々に管理できるソフトウェア。 ■Smarty PHPのためのテンプレートエンジン。 特徴 ・高…
Webセキュリティについてこういうことが起きるというのと対策方法をまとめた。 ■SQLインジェクション攻撃ショッピングサイトなどの入力フォームでSQLインジェクション攻撃を受け、個人情報、クレジットカード情報が盗まれて不正に扱われるケース。 ・原因 サ…
実装したページングをPEAR_Pagerを用いて実装する。 ■PEAR_Pagerページング機能のライブラリ ■Pagerの設定PEAR_Pagerを使用する場合、プログラムの先頭で「Pager.php」を読み込む必要がある。 ■Pagerクラスのオブジェクト作成Pagerを利用するためのオブジェク…
DBに保存したデータを参照できる管理画面を作成する。この管理画面にはページング機能を実装する。 ■ページングとは 閲覧上の負荷を下げる目的で複数ページに分轄して表示させるナビゲーション。 簡単に言うと、Googleなどで検索した後に出てくる 1 2 3 4 5 …
今まで作成したphp上のMySQL関連の部分を、PEAR::DBを使用するよう変更する。 ■PEARphpのライブラリ群のこと。 PEAR::DBでMySQL接続する設定ファイルへと変更する。 getMessage()); } ?> PEAR::DBを使用…
PEAR::DBでクエリを送信する。 // クエリ作成 $query = "SELECT * FROM db_name"; // クエリ送信 $res =& $db->query($query); // エラーがあったら表示 if(DB::isError($query)){ print $query->getMessage(); } $res =& $db->query(クエリ文)でクエリを送…
PEAR::DBでクエリを送信し、得た結果を取得する方法。PEAR::DBのget関数を使う。これはクエリ送信も一緒にやってくれる関数。 ■クエリ結果が1個の場合getOne()を使う。 // クエリ作成 $query = "SELECT name FROM db_name WHERE id=1"; // クエリ送信し結果…
まず、MySQLに接続する設定ファイルをphpで作成する。設定ファイルは公開されたらサーバー情報が知られてしまうので、公開されない別のディレクトリに保存し、公開ファイルから参照するようにする。今回はhtdocsと同じ階層にetcディレクトリを作成し、そこに…
phpであるファイルのプログラムから、別のファイルのプログラムを読み込む方法。 ■外部ファイルに分ける意味 1.設定ファイルなどを公開しないようにするため 重要な情報を公開ディレクトリに置くのはあまりのも危険すぎる! 2.処理の分散化 1つのファイル…
phpからMySQLにクエリを送信する。 // 入力フォームデータをDBに保存するクエリ $query = "insert into user_info values( null, '".$_POST['lastname']."', '".$_POST['firstname']."', '".$_POST['lastkana']."', '".$_POST['firstkana']."', '".$_POST['s…
phpからMySQLにクエリを送信する。続編。 前回のクエリだと、入力データに ' 、 " などの特殊文字がそのまま効いてしまう。これではクエリの内容によっては、ブラウザ上にパスワードが見えてしまったり、誤ってDBやサーバーを消してしまう恐れがある。脆弱性…
都道府県データベースの中身からhtml、phpの都道府県配列を作る。 // 都道府県DBから都道府県名を検索 $get_prefname = "select prefname from pref_info;"; // クエリ送信 $res = mysql_query($get_prefname); // 都道府県の列数を取得 $pref_num = mysql_n…
phpでmysql_connect()でmysql接続しようとしたら、 Fatal error: Call to undefined function mysql_connect() in 〜〜〜 と出た。mysqlに接続できないらしい。 調べたらプログラムのミスではなく、設定側で追加設定する必要。どうやらphpがmysqlを使えない…
昨日まで作成したテーブル、カラムの文字コードが全てlatin1になっていた。これをutf8に変更する。 テーブルの文字コードを修正すればカラムも修正されると思い、テーブルの文字コードをutf8に変更した。 mysql> alter table user_info character set utf8; …
設計続き。 ■null設定必須項目のカラムについてはNullを許可しないように設定変更。 mysql> alter table user_info modify lastname text not null; ■enumとsetラジオボタンとチェックボックスが入力としてある場合、typeをenumとsetにする。 mysql> alter t…
今まで作成してきた入力フォーム用のデータベースを作ってみる。 入力項目姓(*):名(*):フリガナ(姓)(*):フリガナ(名)(*):性別(*): 郵便番号(*):都道府県(*):市町村区(*):番地(*): メールアドレス(*)趣味(*):ご意見: 条件 ・useridにINDEX,AUTO_INCREMENTの設…
1つのテーブルの中に、timestampをtypeに持つカラムが複数あった場合どうなるか?試してみる。 mysql> create table test( -> time1 timestamp, -> time2 timestamp, -> id int); mysql> insert into test (id) values (1); mysql> insert into test (id) va…
MySQLでクエリを実践してみる。 クエリ:MySQLに対し、データの検索や更新などの命令を文字列で送ること 1.データベースの作成データベース:データ管理をし、容易に検出、抽出などの作業を行えるもの mysql> create database [db_name]; mysql> show database…
CentOSにMySQLをrpmでインストールを行う。 ■MySQL世界で最も人気のあるオープンソースデータベース。機能は少ないけど高速に動作して、かつ扱いやすい。 ■rpmソフトウェアのパッケージを管理するシステム、コマンド。 インストール作業。 まずはMySQL5.0のr…
作成した入力フォームに対し、エラーチェックを行う。以下、抜粋。 ■エラーチェック項目と対処法入力していない:!mb_strlen($test); 文字数が0 ○○文字以内で記入:mb_strlen($test) > ○○; 文字数が○○文字以上 半角⇔全角:mb_convert_kana($test, option); …
root権限で入れなくなった。どうやらパスワードが知らないところで変更されてたっぽい。なのでrootのパスワードを強制的に変更する。 まずはCentOSを再起動。そして起動メニューが出てきたら何でもいいのでキーを押す。そうすると起動画面メニューになる。 …
次のステップに移る。 PHPで以前作成した入力フォームhtmlの完成度を高める。 ・入力値の復帰 ・エラーチェック ・未記入、未選択 ・文字数オーバーこの2つを加える。 入力値の受け渡しは、$_POST['name']で受け取れる。エラーチェックは、strlen()を使って…
入力フォーム ↓ 入力確認 戻るボタン作成 ↓ 入力フォーム(入力情報は保持) とする。 test.php ■戻るボタンの実装 <input type="submit" value="戻る" name="return"> <input type="submit" value="確認" name="finish"></div> submitボタンを2つ作り、それぞれreturnとfinishのnameを持たせてtest.phpに送信 <html> ・ ・ 入力フォームページ ・ </html>
昨日格闘して設定を終えたSambaについて。 Samba UNIXをWindowsのファイル、プリントサーバーにするソフト。 マウント デバイスにあるファイルをLinuxで読み書きすること。 Samba設定 SambaはCentOSではデフォルトで入っているので設定のみ行う。 まずは、Sa…
今までの復習もかねて、サーバーを再構築する。条件は見ていいのは、このブログの情報のみ。ブログだけで分からなかったことは追記する。 結果。。。いくつか分かりませんでした。。。なので以下に追記 SELinux CentOS5.3インストール時にSELinuxを切ること…
サーバーにバーチャルホストを立てる。 バーチャルホスト 1つのサーバーに複数のドメインを立てること。 ようは1つのサーバーで複数のWebサイトを作れる。 Apacheの機能を使ってバーチャルホストを作る。 まずはhttpd.confをいじる。・・・案の定、vhostsに…
pear phpのクラスライブラリ集。 pearインストール pearがどうなっているか調べる。 # yum info php-pear ・ ・ ・ Repo : base → installedでなければ入っていない pearが入っていないのでインストールとアップグレート。途中、チャンネルに対する警告がで…