スポンサードリンク

2008年06月08日

PHP 文字化けについて。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
「Step2・データベースに接続する」までは何とかいけたのですが、PHPのプログラムを実行して表示した場合に、以下のように文字化けします。


全件表示
47件のデータがあります。
PREF_CD PREF_NAME
1    ???
2    ???
3    ???
4    ???
5    ???


PREF_NAMEが ??? となってしまいます。

もちろんPHPソースなどには問題はありません。県名が正しく出るようにするにはどうしたらいいですか?


【回答】
文字化けの原因は、文字コードの不一致がほとんどです。

1.データベースの文字コード
2.PHPのソースコードの文字コード(保存時の)
3.HTMLのメタタグの文字コード

メタタグの例
<META http-equiv="content-type" content="text/html; charset=Shift_JIS">

これらを全て一致させる必要があります。

試しにWebブラウザのメニューから「表示 → エンコード」で、日本語関連の文字コードをいろいろ変更してみてください。もしこれで正しく表示される文字コードがあれば、原因を特定するヒントになります。

また可能性は低いと思いますが、以下の点にも注意してください。

・MySQLは、データベース、テーブル、フィールドごとに文字コードを指定できます。気を付けないと、異なる文字コードで扱っている場合があります。

・MySQLにデータをインポートする場合は、データベースの文字コードと、インポートするファイルの文字コードを一致させる必要があります。


【お願い】
読者の皆様の個々の環境に対応するのには無理があるので、当講座で学習中だけでも「phpdev」で環境を統一することをおすすめします。

そのほうが問題が発生しにくいし、的確にアドバイスすることができます。

PHPのプログラミングに慣れてから、新しいバージョンの Apache、PHP、MySQL で独自に環境を構築してください。その頃には問題が発生した時に、自分である程度解決できるようになっているはずです。

ちなみに、「phpdev」内にある Apache、PHP、MySQL は、フォルダごと簡単に削除できるので、独自にインストールする場合も影響はありません。
タグ:PHP 文字化け
posted by プログラミング入門 at 10:21| PHP | このブログの読者になる | 更新情報をチェックする

2008年03月12日

PHP phpdevに含まれている、各アプリケーションソフトのバージョンについて。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
phpdev に含まれているアプリケーションソフトのバージョンについて教えてください。

【回答】
PHP初心者入門講座で利用しているのは「phpdev423.exe」です。

phpdev423.exe をインストールすると、Apache、PHP、MySQL の3つがすぐに使える状態になります。phpdev は初心者でもほんの数十秒で、ローカルの開発環境が構築できる、大変優れたソフトです。

phpdev423.exe でインストールされる、各アプリケーションソフトのバージョンは以下の通りです。

・Apache 1.3.27
・PHP 4.2.3
・MySQL 4.0.0-alpha-nt

ローカル環境での学習用としては、このバージョンで十分です。(MySQLのバージョンが alpha なのは気になりますが)

しかしローカル環境で開発したプログラムを、実際にレンタルサーバーにアップロードして動作させる場合は注意してください。

開発する前に、レンタルサーバー側の Apache、PHP、MySQL のバージョンを確認しておいたほうが無難です。

例えば PHP はバージョンにより使える関数が異なります。ローカルでもレンタルサーバーでも動くように注意しながらプログラミングする必要があります。

一番良いのは、ローカル側にもレンタルサーバー側と同じバージョンのアプリケーションをインストールすることです。

プログラミングに慣れてきたら、各アプリケーションソフトを個別にインストールするとよいでしょう。
タグ:phpdev PHP
posted by プログラミング入門 at 15:34| PHP | このブログの読者になる | 更新情報をチェックする

2008年03月03日

PHP レンタルサーバーでデータベースに接続する方法について。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
レンタルサーバーに PHP ファイルをアップロードして、データベースに接続する方法を教えてください。

【回答】
レンタルサーバーで動作させるには、そのサーバーに合わせた設定にする必要があります。

手順をまとめると以下のようになります。

(1)レンタルサーバーの管理画面からデータベースを作成する。

通常、PHPで作ったWebアプリケーションを、インターネット上で動かすには、Apache、PHP、MySQL の3つが必要です。(データベースを使わない場合もあります)

レンタルサーバーを借りた時点で、Apache、PHPは準備できています。データベースはインストールされていますが、ユーザーが自分で「データベースを作成」しなければ使えない状態です。

共有レンタルサーバーで、共有データベースを使う場合、1ユーザーにつき1データベースが基本です。(例外はありますが)

その1つのデータベースは、ユーザー自身が管理画面からデータベースを作成します。データベースサーバーは複数用意されていることが多いので、「mysql1.db.abc.ne.jp 〜」のように選ぶことになります。データベースに接続するためのパスワードも自分で決めます。ユーザー名は決まっていることが多いです。


(2)管理ツール(phpMyAdmin)でデータベースに接続する。
データベースを作成した時のユーザ名とパスワードを使って、 phpMyAdmin で接続できたらデータベースは使用可能です。


(3)phpMyAdminでテーブルを作成する。


(4)phpMyAdminでレコードを数件追加する。


(5)PHPでデータベースに接続する部分だけをやってみる。

ローカル環境とレンタルサーバーでは設定が異なります。

・ローカル環境の場合
$link = mysql_connect('localhost', 'user', 'password');

localhost というサーバー名は、自分のパソコン内に Apache、PHP、MySQL をインストールした場合しか使えません。

・レンタルサーバーの場合
$link = mysql_connect('mysql1.db.abc.ne.jp', 'user', 'password');

レンタルサーバーの場合、ユーザーの管理画面から設定したデータベースサーバー名でなければインターネット上では接続できません。もちろんユーザー名、パスワードもレンタルサーバーで設定したものです。

PHPファイルは必ずサーバーにアップロードしてから動作確認します。セキュリティ上、ローカルのPHPファイルからは、Web上のデータベースに接続できないので注意してください。


(6)PHPでデータベースに接続し、データを表示(検索)してみる。
SELECT文


(7)追加、更新、削除などのプログラムを実行してみる。
INSERT、UPDATE、DELETE文

どのレンタルサーバーでも大体似たような手順です。


【ワンポイント】

「接続する部分だけをやってみる」というのは大事で、データベースに接続する部分が上手くいけば、検索、追加、更新、削除も簡単です。
posted by プログラミング入門 at 18:16| PHP | このブログの読者になる | 更新情報をチェックする

2008年03月02日

PHPファイルの拡張子についての疑問。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
PHPは拡張子が「.html」のファイルに PHP プログラムを組み込んでいくのものなんでしょうか?それとも拡張子が「.php」のファイルにHTMLを組み込むものなんでしょうか?

【回答】
拡張子が「.html」のファイルに、PHPでプログラムを書いても動きません。なぜならサーバーは、「.php」というファイル名のものを、PHPプログラムとして処理するからです。

「.php」ファイルの場合、サーバーはHTML部分はそのまま出力し、PHPのタグで囲まれた部分は処理結果を出力します。

でも「.php」ファイルだからといって、必ずプログラムを書かなければならないわけではなく、中身がHTMLだけでもエラーにはなりません。

極端な例を上げれば、以下のようなPHPプログラムがまったく書いていない、「.php」ファイルでもOKなのです。

ファイル名 test.php

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>あああ</p>
  </body>
</html>
タグ:拡張子 PHP
posted by プログラミング入門 at 23:50| PHP | このブログの読者になる | 更新情報をチェックする

phpdevを残したまま新しいPHPをインストールしたい。

【講座名】
PHP初心者入門講座 に関する質問

【質問】
「phpdev」を残したまま、新しい PHP をインストールすることは可能でしょうか?

【回答】
通常、PHP だけをインストールすることはなく、Apache、PHP、MySQL を一緒にインストールして使うことが多いと思います。(データベースの MySQL は無くてもOK)

新しく個別にインストールする Apache、PHP、MySQL は、「phpdev」とは別の場所に保存されるので、同時にインストールすることはできます。

しかし phpdev にも Apache、PHP、MySQL が含まれているため、アプリケーション実行時にポート番号が重なります。

また WINDOWS フォルダに保存される、アプリケーションの設定ファイルが重なってしまうことがあります。そうすると設定が難しくなったり、または不具合の原因になるかもしれません。

したがって新しい Apache、PHP、MySQL をインストールする前に、「phpdev」をアンインストールしておいたほうが無難です。

各アプリケーションを個別にインストールすると、手間はかかりますが、その分細かい設定や機能の拡張が行なえます。PHPに慣れてきたら挑戦してみてください。

【ワンポイント】
最新版のPHPは、レンタルサーバーでは対応しているところが少ないです。もし公開する予定がある時は、お使いのレンタルサーバーが、どのPHPのバージョンをサポートしているか、事前に確認しておいたほうがいいです。

せっかく作ったプログラムが、ローカルの開発環境とWeb側でPHPのバージョンが異なるために動かないことがあります。

学習目的でローカル環境でしか使う予定がない場合や、社内でサーバーを立てて使うだけの場合なら、最新版でも問題ありません。
タグ:phpdev PHP
posted by プログラミング入門 at 23:14| PHP | このブログの読者になる | 更新情報をチェックする

2008年02月03日

PHP phpdevをアンインストールしたい。

【講座名】
PHP初心者入門講座

【質問】
PHP の学習が終わったので、phpdev をアンインストールする方法を教えていただけないでしょうか?

【回答】

PHP初心者入門講座では、PHP の環境構築が簡単にできる phpdev を使用しました。phpdev はアンインストールする時も簡単です。

講座の手順どおりに進めた場合、Cドライブの直下に、「phpdev」というフォルダがあるはずです。それをフォルダごと削除するだけで、アンインストールすることができます。

qa-07.gif

あとは「C:\WINDOWS」の中に「php.ini」というファイルが残りますが、これは削除しても、そのまま残してもかまいません。

qa-08.gif

php.ini は PHP の設定に関するファイルです。気になるようでしたら削除してください。


「phpdev」は初心者の学習用にとても便利なソフトですが、残念ながら Apache、PHP、MySQL のバージョンは最新のものではありません。

本格的に PHP を学ぶ段階になったら、最新版を個別にインストールすることをおすすめします。
タグ:phpdev PHP
posted by プログラミング入門 at 22:56| PHP | このブログの読者になる | 更新情報をチェックする

2008年01月27日

PHP レンタルサーバーにアップロードするとプログラムが動かない。

【講座名】
PHP初心者入門講座

【質問】
phpdev を使ったローカル環境では、ちゃんと動くサンプルプログラムが、レンタルサーバーでは動かないことがあります。何故でしょうか?

【回答】
「phpdev423.exe」を使ってインストールした PHP の バージョンは 「4.2.3」です。

PHP はバージョンによって使用できる関数が異なります。また PHP は「php.ini」というファイルで設定を行なうことができます。

共有のレンタルサーバーなどで、PHP のバージョンが決まっていたり、独自に php.ini を設定することができない場合は、その環境に合わせて PHP のプログラムを少し修正する必要があります。


(1)例えば PHP初心者入門講座 のサンプルプログラムでは、

<?= "テスト" ?>
という書き方をしていますが、これは

<?php print "テスト"; ?>
を省略した書き方です。

この書き方ができるには php.ini で次のように設定されている必要があります。

short_open_tag = On
qa-04.gif

*php.ini は 「C:\WINDOWS」にあります。


(2)また PHP サイトのマニュアルには、関数ごとに使えるバージョンが書かれています。

例えば「file_get_contents」という関数を調べると、PHP4.3.0 以上と PHP5 で使えることがわかります。

qa-05.gif

PHP サイト
http://www.php.net/


以上のように PHP のバージョンと php.ini の設定は、とても重要ですので、動かないときは確認してみてください。
タグ:php.ini PHP
posted by プログラミング入門 at 10:56| PHP | このブログの読者になる | 更新情報をチェックする

スポンサードリンク