スクリプトFAQ
- 基本
- PHP
- 画像
- 携帯
- HTML
ファイルのアクセス権(パーミッション)
主に変更が必要なのは書込みされるファイル及びディレクトリです。
環境によって最適な権限が異なります。
上から順に試してみると良いでしょう。
| ファイル | ファイルの種類 | パーミッション |
|---|---|---|
| htmltemplate.inc | HTMLテンプレート | 644 / rw-r–r– 604 / rw—-r– |
| ~.php | PHPスクリプト | |
| ~.html | 閲覧ファイル | |
| ~.css | デザイン定義 | |
| ~.cgi | CGIファイル | 755 / rwxr-xr-x 705 / rwx—r-x 701 / rwx—–x ※ 700 / rwx—— ※ |
| ~.dat ~.txt ~.log ~.cgi |
データファイル | 666 / rw-rw-rw- 606 / rw—-rw- 600 / rw——- ※ |
| past lock img |
ディレクトリ | 777 / rwxrwxrwx 757 / rwxr-xrwx 707 / rwx—rwx |
※SuExec環境について
CGIスクリプトがOwner権限で動作できる場合、データファイルを権限600で扱う事ができますが、 PHPスクリプトはOwner権限で動作しませんので注意が必要です。
記事が文字化けします
PHPの関数用文字コードや出力文字コードは、予めサーバ側で設定されています。この為、スクリプトの文字コードとサーバの設定値が異なった場合に文字化けが起こります。この問題の多くは、書込データがサーバ側の文字コードで強制的に処理されてしまう事で起こります。
php.iniを直接変更できるか、.htaccessを利用してディレクトリ単位で設定を変更できる場合は、この問題を回避できます。.htaccessファイルに以下を書いて適応させたいディレクトリに配置してみましょう。(以下の例はShift_JISに変更する場合)
php_value mbstring.internal_encoding SJIS php_value mbstring.http_input pass php_value mbstring.http_output pass
※レンタルサーバによっては、変更できない項目があるかもしれません。また、.htaccessの代わりにphp.iniで対応させるサーバもあります。まずはサーバ会社のFAQを御一読下さい。
サーバのPHPの詳細を知りたい
PHPのバージョンなど詳細を知りたい場合、以下のコードをphpinfo.phpファイルに記載の上、
サーバに転送してアクセスしてみて下さい。
<?
phpinfo();
?>
セーフモードって?
お使いのサーバでPHPがセーフモードで稼動している場合は、機能が制限されます。
主に以下の機能が使えません。
過去ログなどの、ファイルやディレクトリを操作する機能
リロードなどのリダイレクト機能
写メール投稿でエラーが出ます
Warning: fsockopen(): unable to connect to ~
Warning: fsockopen(): php_network_getaddresses ~
このエラーが出る場合、メールボックスへの接続ができない為、写メール投稿が出来ません。設定が不安なら、一度メーラーでメールを受信できるか試してみましょう。このエラーはPHPの機能が制限されている低価格なレンタルサーバに多いようです。
サムネイルが表示されず、テキストリンクになります
サムネイル作成にはグラフィック用のGDライブラリが必要です。これがない場合、サムネイルは作成されずにテキストリンクになります。GDのバージョン1.6以前ではPNGがサポートされておらず、1.6以降ではライセンスの関係上GIFがサポートされなくなりました。 2.0.28からGIFが再度サポートされているようです。
携帯で画像が見れません
機種によって様々ですが、携帯が表示できる画像は種類、幅、容量の厳しい制限があります。特にPCから投稿された画像は幅が大きく、容量が小さくても表示できない場合があります。どうしても携帯で見れるようにしたい場合は、こんなサイトがありますので改造してみて下さい。
携帯用にQRコードを作成したい
こちらのサイトで無料で作成できるようです。
htmltemplateタグ説明
htmltemplateを使用したHTMLファイルには、PHPからデータを受け取る為の専用タグを使っています。中でも制御用のタグは、通常の HTMLタグ同様に開始タグと終了タグで対になっており、どちらが欠けてもエラーが出てしまいますので、消さないように注意して下さい。
ループタグ(主に記事を表示させるのに使います。)
<!--{each DATA/key}-->
<!--{/each}-->
分岐タグ(データがあった場合だけ表示させます。)
<!--{def DATA/key}-->
<!--{/def}-->
分岐タグ(データがなかった場合だけ表示させます。)
<!--{ndef DATA/key}-->
<!--{/ndef}-->