初めてのシステムと日記

システムも日記も初めてです。

2009-06-01から1ヶ月間の記事一覧

研修(PEAR::DBでのMySQL接続)

今まで作成したphp上のMySQL関連の部分を、PEAR::DBを使用するよう変更する。 ■PEARphpのライブラリ群のこと。 PEAR::DBでMySQL接続する設定ファイルへと変更する。 getMessage()); } ?> PEAR::DBを使用…

研修(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でクエリを送信し、得た結果を取得する方法。PEAR::DBのget関数を使う。これはクエリ送信も一緒にやってくれる関数。 ■クエリ結果が1個の場合getOne()を使う。 // クエリ作成 $query = "SELECT name FROM db_name WHERE id=1"; // クエリ送信し結果…

研修(設定ファイル作成)

まず、MySQLに接続する設定ファイルをphpで作成する。設定ファイルは公開されたらサーバー情報が知られてしまうので、公開されない別のディレクトリに保存し、公開ファイルから参照するようにする。今回はhtdocsと同じ階層にetcディレクトリを作成し、そこに…

研修(外部ファイルの読み込み)

phpであるファイルのプログラムから、別のファイルのプログラムを読み込む方法。 ■外部ファイルに分ける意味 1.設定ファイルなどを公開しないようにするため 重要な情報を公開ディレクトリに置くのはあまりのも危険すぎる! 2.処理の分散化 1つのファイル…

研修(phpからMySQLへのクエリ送信)

phpからMySQLにクエリを送信する。 // 入力フォームデータをDBに保存するクエリ $query = "insert into user_info values( null, '".$_POST['lastname']."', '".$_POST['firstname']."', '".$_POST['lastkana']."', '".$_POST['firstkana']."', '".$_POST['s…

研修(クエリの特殊文字について)

phpからMySQLにクエリを送信する。続編。 前回のクエリだと、入力データに ' 、 " などの特殊文字がそのまま効いてしまう。これではクエリの内容によっては、ブラウザ上にパスワードが見えてしまったり、誤ってDBやサーバーを消してしまう恐れがある。脆弱性…

研修(データベースのレコードをhtmlに)

都道府県データベースの中身からhtml、phpの都道府県配列を作る。 // 都道府県DBから都道府県名を検索 $get_prefname = "select prefname from pref_info;"; // クエリ送信 $res = mysql_query($get_prefname); // 都道府県の列数を取得 $pref_num = mysql_n…

研修(phpとmysqlの接続エラー)

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の設…

研修(timestampが複数ある場合)

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…

研修(sqlクエリ実践)

MySQLでクエリを実践してみる。 クエリ:MySQLに対し、データの検索や更新などの命令を文字列で送ること 1.データベースの作成データベース:データ管理をし、容易に検出、抽出などの作業を行えるもの mysql> create database [db_name]; mysql> show database…

研修(MySQLインストール)

CentOSにMySQLをrpmでインストールを行う。 ■MySQL世界で最も人気のあるオープンソースデータベース。機能は少ないけど高速に動作して、かつ扱いやすい。 ■rpmソフトウェアのパッケージを管理するシステム、コマンド。 インストール作業。 まずはMySQL5.0のr…

研修(PHP入力フォームのエラーチェック)

作成した入力フォームに対し、エラーチェックを行う。以下、抜粋。 ■エラーチェック項目と対処法入力していない:!mb_strlen($test); 文字数が0 ○○文字以内で記入:mb_strlen($test) > ○○; 文字数が○○文字以上 半角⇔全角:mb_convert_kana($test, option); …

研修(rootのパスワードを忘れたら)

root権限で入れなくなった。どうやらパスワードが知らないところで変更されてたっぽい。なのでrootのパスワードを強制的に変更する。 まずはCentOSを再起動。そして起動メニューが出てきたら何でもいいのでキーを押す。そうすると起動画面メニューになる。 …

研修(PHP入力フォーム)

次のステップに移る。 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について。 Samba UNIXをWindowsのファイル、プリントサーバーにするソフト。 マウント デバイスにあるファイルをLinuxで読み書きすること。 Samba設定 SambaはCentOSではデフォルトで入っているので設定のみ行う。 まずは、Sa…

研修(サーバー再構築)

今までの復習もかねて、サーバーを再構築する。条件は見ていいのは、このブログの情報のみ。ブログだけで分からなかったことは追記する。 結果。。。いくつか分かりませんでした。。。なので以下に追記 SELinux CentOS5.3インストール時にSELinuxを切ること…

研修(バーチャルホスト)

サーバーにバーチャルホストを立てる。 バーチャルホスト 1つのサーバーに複数のドメインを立てること。 ようは1つのサーバーで複数のWebサイトを作れる。 Apacheの機能を使ってバーチャルホストを作る。 まずはhttpd.confをいじる。・・・案の定、vhostsに…

研修(php_pearのインストール)

pear phpのクラスライブラリ集。 pearインストール pearがどうなっているか調べる。 # yum info php-pear ・ ・ ・ Repo : base → installedでなければ入っていない pearが入っていないのでインストールとアップグレート。途中、チャンネルに対する警告がで…

研修(php実践)

簡単なphpプログラムの課題。 課題 ・配列操作 $array = array("a", "b", "c") 1 この配列の並び順を逆にしてください。 2 この配列のうちからランダムに1つ値を取り出してください。 3 この配列の並び順をランダムにしてください。 1 array_reverse($array)…

研修(PHPインストール)

条件。 ・php-5.2.11をインストール。 →php-5.2.9でした。 ・マルチバイト文字列を使用可能に。 ・プログラム文字コードはUTF8、ブラウザ出力はSJIS ・PEARを使用可能にする。 PHP Webページ作成のためのプログラミング言語。 動的にHTMLデータを生成、動的…

研修(実行グループ&アカウント作成)

サーバーは何かしらの形で不正アクセスを受ける場合がある。これの被害を最小限に抑えるために、サーバーを実行するユーザーrootに権限を与えないのがベスト。そのため、権限が少ないapache起動用ユーザーを作成し、そのユーザーがサーバーのリクエストに答…

研修(ユーザーディレクトリの設定)

昨日の続きを追記。 ユーザーディレクトリーを使用可能にする。 ユーザーディレクトリ ユーザーごとにコンテンツ(ホームページなど)を公開できるフォルダのこと。 まずはapacheの設定ファイル、httpd.confをいじる # find . -name "httpd.conf" # usr/local/…

研修(apacheインストール)

apacheのインストールを行う。 Webサーバー wwwシステムにおいて、情報送信を行うコンピュータ。 wwwによる情報送信機能を持ったソフトウェア。 Webサーバーは、html文書や画像などの情報を蓄積し、 Webブラウザなどのソフトウェアの要求に応じて、 インター…

研修(ファイアウォール設定)

ファイアウォールの設定。ポート80を開放するために設定をいじる。 [root@sato /]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPU…

研修(PATHの設定)

コマンドによっては実行してもそんなのねぇよと言われるのがある。それはコマンドのPATHが通ってないために起こる。PATHの探し方はいろいろあるっぽいですが、自分は find . -name "○○○○" で探してます。(おそろくもっと良い探し方があるのだろうが。。。) …