goo blog サービス終了のお知らせ 

x.sano

For communication

プレゼンテーション層を完成。

2007-07-06 18:02:31 | 国家資格サイト shikaku.name
表示ページも完成しました。
index -> 資格の一覧や、最新記事を表示
shikaku -> 資格の説明、資格関連記事を表示
article -> 記事の詳細を表示

あとは中身だ。。。


今日苦労したのは、記事の件数が多い場合に、"前の10件" とか "後の10件" とよくなっていますが、あれをどうするか迷いました。

MySQLの機能で、最後に limit 10,20 とすると検索結果の11件目~20件目だけを表示させるということが出来るのですね。これを使うことにしました。
http://www.shikaku.name/shikaku.php?limit=10
というようにすると、
SQLの最後に、
SELECT * from shikaku_tbl WHERE shikaku_id=1 limit 10,20 とつくようにしてあげると、11件目からだけが引っかかる。これを上記のようにGET変数で渡していくということにしました。

一々SQL投げるのはパフォーマンス上ひょっとして悪いのかも・・・とも思いましたが、でもしょうがないよね。最初に一発投げていっぱい行が返ってきちゃうととかえってそっちの方が遅いわけだし。SESSION関数は使いたくなかったし。

完成・・・記事投稿ページが。

2007-07-04 00:45:59 | 国家資格サイト shikaku.name
まだ、中身はゼロな訳ですが。

資格ひとつごとにページを一つ作るとして、
新しい資格を登録するためのフォームをひとつ。
既に登録してある資格の説明を変更するためのフォームをひとつ。

で、資格ごとに、ブログみたく記事をどんどんアップデートするイメージとして、その記事を投稿するためのフォームをひとつ。

かなり最小構成ですが。JavaScriptがやはり慣れないので難しいです。
本当はちょっとajax もやってみようかな・・と思いましたが、またの機会に。
つぎにプレゼンテーション側のロジックを実装して、実際に記事を表示できるようにします。

SmartyとPEARの共存は、やはり/etc/php.iniのinclude_pathをSmartyとPEARのフォルダ両方に通してあげれば問題なかったです。

include_path = ".:/usr/share/pear:/usr/share/php/Smarty/libs:/usr/share/php/Smarty"

Fedora7では(yumでインストールすると)PEARは/usr/share/pear に、Smartyは/usr/share/php/Smartyにインストールされるということですね。libs ってフォルダはなかったので不要だと思います。ちなみにphp.iniのデフォルト (コメントアウトされてる)が、
".:/php/includes"
/phpはFedora7には存在しませんから、これではダメ。一方PEARフォルダにはどうやら勝手にパスを通すみたいな仕組みがあるようなので、PEARはデフォルトでも動く。ということです。

あれ?PEARとSmartyが同時に使えないぢゃないか

2007-07-03 18:03:44 | 国家資格サイト shikaku.name
さて、記事登録ページをもっと洗練されたものにしようと(というか、使えるものにしようと)、DB設計を軽く見直し、テーブルに記事を突っ込めるような登録ページを追加しようと思った。

で、PHPを書きます。今回はらくちん。管理用だから見栄えも気にしなくていいし。

思ったが、
DBにアクセスして、require_once 'DB.php';
と書いたところで何かがおかしい。PEARのインストールがうまくいってなかったときと同じ現象で、HTMLがその後表示されない。

う~む。


で、Smartyを使えるようにする為に、php.iniでSmartyのフォルダにパスを通したことを思い出した。include_pathをコメントアウトするとあら不思議、DBは使えるように。しかしSmartyは再び使えなくなった。
include_pathにデフォルト値があって、それも指定しなきゃいけないってことなんだよな。ちょっと判らないのでまたあとで。。。

なんとかプレゼンテーションページも作った

2007-07-03 00:08:20 | 国家資格サイト shikaku.name
Smartyをつかってプレゼンテーションページも作りました。Smarty面白いですね。まだロジックもほとんど組んでいないのですが、骨組みが出来てきた感じです。
ちょっとご覧ください
普段は私のやっているコーディングは既にあるものの手直しなので、こうやってイチから書いてみて感じるのはやはりロジック云々よりプレゼンテーションレイヤー作るの大変。っていうことですね。Smartyとか分担をして行こうという発想になるのがホントに当然です。そしてWebデザイナーさんスゴイです。

次は画像も作らなければならないな・・・
フォトショなんて買えないので、とりあえず昔奮発して買ったFireworksとFlashのかなり古いバージョンをうまく使って図形を作っていきます。

Smartyはまた今度。ようやく登録ページを作成。

2007-07-02 18:51:27 | 国家資格サイト shikaku.name
Smartyでやろうと思ったのですが、
リストボックスに出すオプションの数が決まってなくて、これをテキスト一行づつ読ませるという設定にしたいわけです。
Smartyだと固定数の変数じゃないと厳しい、、というか、できるみたいなんですが、テンプレート側でループ制御とかやっているとSmartyの意味が無い (デザインとロジックの分離) じゃないですか。という言い訳を得て、さっさとやめました。

ということで、普通のPHPで登録ページを作成。それにしても、Stringをつなぐ結合子がドットだったことなんて忘れていました。私がいつも使っているのでは、JAVAはもちろんプラス記号、Basicはもちろんアンパサンド記号です。

次は、読ませるページを作らなきゃ。パワポで青写真を書いてみたら、まぁまぁ頭が整理されているので、このまま続けて作っていけそうです。

Smarty

2007-07-02 15:44:33 | 国家資格サイト shikaku.name
ということで、次にSmartyをインストールしてみた。
yum install php-Smarty
ラクだ!yumすばらしい。マジですか。
最初はわからなくて、自分でPHPを./configureしなおさなければならないのか。。。などと思っていましたが。
PEARもコレでいけたし。

RH9が使えなくなってイヤイヤ フォーマット>Fedora7にアップグレードしたわけですが、苦労してもアップグレードした甲斐はあったと思いました。本当に。これからも出るなりアップグレードしていこう。
マイグレーションは面倒だけどね。。。

PEAR

2007-07-02 14:34:34 | 国家資格サイト shikaku.name
週末に少しDB登録フォームを作成していたのだがあまりうまく行かない。なんかブランクHTMLが表示されて終わりだ。

今回はPEARを使っている。まぁ使わない方がいいのかもしれないが、ラクするところはしようよっていうことでしょうか。でもその代わり環境の準備が少し複雑になってしまう。Fedoraなのでyum でとりあえずインストールはできたのは良いのですが、今日判明したところでは、使おうとしていたPEARのパッケージが実はなかったっぽいということです。で、PEARのコマンドでインストールしてみたところ無事稼動。いや、稼動というか、とりあえずPHPスクリプトが動いたというだけかもしれない。あとちょっと、がんばります。

今日はApacheでBasic認証を設定

2007-06-30 02:11:51 | 国家資格サイト shikaku.name
まずは、記事投稿ページを作成するなり!と思って認証の仕組みを考えました。
昔は、認証用DBをPostgreSQLに作成してこれを参照させて、PHPのセッション関数を使ってログオン状況を判断してログオン後ならページを出し、前なら追い出すみたいな設計をしていました。今回もそれにしようかと思ったけど、何気に行数が長くなるし、PHPのそのあたりのシンタックスも覚えていないし、認証用テーブルのパスワード格納列をMD5で暗号化しようと思ったけどやり方わからないし、

ということで、ApacheのDirectory設定で認証を強制させることにしました。これでセキュリティが大丈夫なのかどうかはやや不安ですが・・・

で、登録用ページのフォームの作り方は大体覚えていたのですが、ちょっとSmartyを勉強してみようかな、ということで、少し先送りになります。うーん、意外と進まないな。

まずはMySQLでデータベースを設計。

2007-06-28 20:50:56 | 国家資格サイト shikaku.name
サイトの中身もまだ決まってはいないのだが、昔みたいにHTMLファイルをいっぱい置くというのは効率悪いはずなので、ブログっぽくアップロードもできるように、ということで、ともかくデータベースを設計した。

まぁつまり、記事とかレイアウトを入れるためのテーブルを2つ作りました。

MySQLです。
MySQLリンク
PHPですApacheです。LAMPです。会社ではWindowsばっかで、コーディングとか業務設計とかアプリ寄りの仕事ばっかしているので、いい勉強の機会なのです。と思って結構前から時々やってるんですが、なかなか向上しませんね。。。

MySQLにログイン
    mysql -D mysql -u root -p

DBを作成
create database xxx_DB;

ユーザーを作成し、作ったDB上で色々出来るようにする。
grant select,insert,update,delete on xxx_DB.*
to xxx_usr@localhost identified by 'password'
;
FLUSH PRIVILEGES;

テーブルを作成 (最初間違えて、mysqlデータベース内にテーブルを作ってしまった^^;ということでuse xxx_db は必要ですよー。)
use xxx_db;

CREATE TABLE tbl1
(column1 INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
column2 VARCHAR(40),
time_stamp TIMESTAMP,
article_text TEXT);

CREATE TABLE tbl2
(column1 INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
column2 VARCHAR(40),
column5 INTEGER,
column6 VARCHAR(255),
column7 TEXT);

Webサイトで一儲け???か。。。

2007-06-28 16:05:48 | 国家資格サイト shikaku.name
ひょんなことから友人と国家資格サイトを作ってみようと思い立ちました。今日は早速ドメインを取得。http://www.shikaku.name/ というドメインを取りました。うまく行けばアフィリエイト・広告収入でガッポッポ・・・そんなに甘くは無いか。

でもいけるかもしれないからね。やってみなくちゃ分からない。。。

判らないことが多すぎなのですが、ぼちぼち調べてやっていきます。

Webサイトは個人的には何度も作ったことはあるのですが、それほど本格的なのは無いですね。せいぜい10-20ページでデザインもイマイチな感じで。。。
がんばらなくては。今回は、PHPを活用して更新が容易なサイトにするということをもくろんでいます。っていうかそういうテンプレートがどっかに落ちてるのでは?と思っているのですが。。。。