お知らせ

作って覚えるPHP+MySQLアプリケーション 2008年6月24日

作って覚えるPHP+MySQLアプリケーション」が発売されました。
PHP+MySQL+Smartyを使って、ブログ/ショッピングサイト/マッシュアップの3つのWebアプリケーションを作る方法を解説しています。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

PHP+Ajaxゲストブック(その1・概要と初期化)

| コメント(5) | トラックバック(0)

Blogにはコメントの機能があって、記事に対するコメントを投稿してもらうことができます。
しかし、記事に直接に関係ないコメントだと、投稿するのに躊躇する人もいることでしょう。
そのような人のために、Blogのコメント機能とは別に、ゲストブック(掲示板)を設置している方も見られます。

先日、当サイトにもゲストブックを設置しましたが、そのゲストブックのスクリプトを公開します。
導入先のサイトの形態やシステムを問わず(ただしPHPとMySQLが必要)、またカスタマイズ性が高くてデザインをいろいろと変えられるのが特徴です。
今日はその概要と、初期化の手順を解説します。

1.当ゲストブックの特徴

このゲストブックは、PHPとAjaxを組み合わせて動作していて、Blogのサイドバー等に組み込むのに適しています。
また、当サイトのゲストブックのように、独立したページにすることもできます。
テンプレートとスタイルシートをカスタマイズすることで、ゲストブックのデザインを自在に変えられる点が特徴です。
テンプレートエンジンには、PHP用の中で有名なものである「Smarty」を利用しています。

また、このゲストブックは汎用的なシステムで、組み込み先のサイトの形態は問いません。
一般のWebサイトでも良いですし、各種のBlogシステム(Movable TypeWordPressなど)でもかまいません。

実際の動作例

2.動作の条件

このゲストブックを動作させるためには、以下の環境が必要になります。

・サーバー側
PHP 4.3.0以降
MySQL(PHPからアクセスできるようになっていることが必要)

なお、現在のレンタルサーバーなら、この条件を満たしているところが多いと思います。

・クライアント側
Ajaxに対応したWebブラウザ
なお、こちらではWindows版のInternet Explorer 7.0とFirefox 2.0で動作を確認しています。

3.ダウンロードとインストール

まず、ゲストブックのファイルをダウンロードして解凍し、ご自分のサーバーにアップロードします。
以下のリンクをクリックして、「PHP-Ajax-Lib.zip」と「GuestBook_1_00.zip」をダウンロードしてください。

PHP-Ajax-Lib.zip
GuestBook_1_00.zip

スクリプトの継続的な開発やサポートのために、スクリプトをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

これらのファイルをダウンロードしたら、いずれも解凍しておきます。
解凍すると、以下のようなフォルダ構成になります(重要なフォルダのみ抜粋)。

・PHP-Ajax-Lib.zip

  • 解凍先フォルダ
    • app
    • js
    • pear
    • smarty
    • templates

・GuestBook_1_00.zip

  • 解凍先フォルダ
    • app
      • guestbook
    • config
      • guestbook
    • css
      • guestbook
    • js
      • guestbook
    • templates
      • guestbook
    • templates_c
      • guestbook

そして、サーバーにアップロード先のディレクトリを作り、そのディレクトリの中に、解凍したファイルをフォルダ構造を保ったままアップロードします。
アップロードの際のモードは、アスキーモードに設定します。
また、アップロード先の位置はどこでもかまいませんが、「http://~」でアクセスできることが必要です。

アップロード先が終わったら、ディレクトリ構造が以下のようになっていることを確認してください。

  • アップロード先のディレクトリ
    • app
      • guestbook
    • config
      • guestbook
    • css
      • guestbook
    • js
      • guestbook
    • pear
    • smarty
    • templates
      • guestbook
    • templates_c
      • guestbook

アップロードが終わったら、以下のディレクトリのパーミッションを「707」や「757」に変えて、書き込み可能に設定します。

  • appディレクトリ→guestbookディレクトリ
  • templates_cディレクトリ→guestbookディレクトリ

なお、さくらインターネットなど、PHPをCGIとして動作させるサーバーの場合、以下のファイルのパーミッションを「705」や「755」に変更して、実行可能にします。

  • appディレクトリ→guestbookディレクトリ→guestbook.php
  • appディレクトリ→guestbookディレクトリ→edit.php
  • appディレクトリ→guestbookディレクトリ→initialize.php

また、PHPをCGIとして動作させる場合に、PHPファイルの先頭に「!#/usr/local/bin/php」等の記述が必要なサーバーでは、上記ノ3つのファイルの先頭にその記述を追加してください。

4.データベースの初期化

ここまでの作業が終わったら、データベースの初期化を行います。
「http://アップロード先/app/guestbook/initialize.html」にアクセスすると、初期化のためのページが表示されます。
例えば、「http://www.foo.com/phpajax/~」のディレクトリにゲストブックのファイルをアップロードした場合だと、「http://www.foo.com/phpajax/app/guestbook/initialize.html」にアクセスします。

↓初期化のページの例
初期化のページ

このページでは、以下のように各項目を設定します。

・「MySQL接続時のユーザー名」「MySQL接続時のパスワード」「接続先のデータベース」
MySQLに接続するためのユーザー名等の情報を入力します。
なお、Movable TypeをMySQL環境でご利用の方は、接続先のデータベースとして、Movable Typeのデータを保存しているデータベースを指定します。

・「接続先のホスト名」
通常は「localhost」のままにしておきます。
ただし、ホスト名の指定があるレンタルサーバーの場合は、そのホスト名を入力します。

・「テーブル名につける接頭語」
Movable Typeを使っている方や、これから導入しようと考えている方は、この欄に「mt_」(半角でエム、ティー、アンダースコア)と入力してください。
それ以外の方は、空欄にしておきます。

・「管理者の名前とパスワード」
このゲストブックでは、管理者(ゲストブックを導入される皆様)は、投稿されたコメントを自由に削除することができます。
「管理者の名前とパスワード」の欄では、削除のページにログインする際の名前とパスワードを決めて入力します。

入力が終わったら、「送信」ボタンをクリックします。
「データベースを初期化しました」のメッセージが表示されたら、初期化は完了です。

トラックバック(0件)

このブログ記事を参照しているブログ一覧: PHP+Ajaxゲストブック(その1・概要と初期化)

このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/854.

コメント(スレッド1件,コメント5件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

スクリプトについてご質問をされる方は、ご自分のBlogのURLを必ず入力してください。
また、スクリプトの開発やサポートを継続的に行えるようにするために、ドネーション(寄付)をしていただけると幸いです。
金銭的寄付だけでなく、精神的寄付も歓迎します。
ドネーションのページはこちら
こちらで投げ銭をしていただくこともできます。

No.1 s.fujino Author Profile Page: (無題)

いつもお世話になります。
XREA、MT3.35 でテストしています。

テンプレート、スタイルシート、config_gb1.cfg に手を入れて
自分あてにメールが届くところまではできたのですが、
次の2点でつまづきました。是非、ご教示よろしくお願い申し上げます。

○コメントの並び順を、エントリーのコメントと同様に、
新しいものを一番下(入力フォームのすぐ上に来るように)したいと思います。

/app/guestbook/plugins/block.posts.php の中の
$sort_order = ($params['sort_order'] == 'ascend') ? 'asc' : 'desc';
を変えてもうまくいきませんでした。

○テスト用に入力したコメントを全部消して、コメント番号を1からとりたいと思います。
初期化は、もう一度 initialize.html のページでいいのでしょうか。

どうぞ、よろしくお願いいたします。

No.2  Author Profile Page: (無題)

>s.fujinoさん
こんにちは。
ゲストブックのスクリプトをご利用いただきありがとうございます。

コメントの並び順の変更するには、templates/guestbook/main.tplを書き換えます。
このファイルの中に「{post exclude_deleted=1}」という行がありますので、それを「{post exclude_deleted=1 sort_order='ascend'}」に書き換えます。

また、コメントを全部消去して最初からやり直すには、phpMyAdmin等を使って、ゲストブックのテーブルの中身を空にします。

No.3 s.fujino Author Profile Page: (無題)

藤本さん、
サーバ移転準備のお忙しい中、どうもありがとうございました。
並び順の変更と全コメントの消去がうまくできました。

もうひとつお願いですが、
sort_order='ascend'で並び順を旧→新にできましたが
ゲストブックを開くと、毎回コメントNo.1の最初(最古)の内容が表示されます。(リンクを見て ....html# としてみましたが同じでした。)

いきなり最新のページを開くことができますでしょうか。
度々すみません。どうかよろしくお願いいたします。

No.4  Author Profile Page: (無題)

>s.fujinoさん
こんにちは。

申し訳ありませんが、古いコメントから順にしつつ、新しいコメントのページを最初に表示することは、このシステムでは想定していません。

No.5 s.fujino Author Profile Page: (無題)

さっそくありがとうございました。

もう少しスタイルシートを手直しして、実際に運用が始まったら
こちらにトラックバックをさせていただきます。
どうもありがとうございました!

コメントする

管理者のみにコメントを送信したい場合は、「コメントを秘密にする」のチェックをオンにしてコメントを送信するか、メールフォームからメールをお送りください。

ブログ全体の感想など、この記事に直接に関係しないコメントは、ゲストブックにお気軽に投稿してください。


アーカイブ

ブログパーツ

ステータス