スパイラルのWeb機能でのPHP利用
最終更新日:2024年10月30日
目次
概要
スパイラルのWeb機能でPHPをご利用いただけます。
FacebookなどSNSへの書込み、外部データの取込み、演算結果の表示など動的なウェブページを作成できます。
1. PHPが利用できるWeb機能一覧
以下の機能において、HTMLソースを記述する箇所にPHPを記載することができます。
なお、エラーページはPHP実行エラー時にも表示するため、ループ発生の可能性からPHP使用不可となっています。
また、各機能の操作画面プレビューでもPHPは動作しますので、動作確認の際にはプレビューをご活用下さい。
※該当のページではスパイラルPHPの関数「method getContextByFieldTitle」「method getContextByFieldCode」が使えません。
2. SMP_DYNAMIC_PAGEについて
PHPを使用するページには、ソース中に専用のタグをHTMLコメントとして記述してください。
スパイラルでは、タグの記述されたページに限りPHPが実行されます。
なお、1つのページにつき1回のみの記述で動作するようになっています。
使用したいページのソース編集画面で、HTMLソース内に専用タグSMP_DYNAMIC_PAGEとPHPプログラムコードを記述してください。
タグの位置はHTMLソース内のどこでも構いません。タグの設定は以下のとおりです。
- DISPLAY_ERRORS:PHPのエラーメッセージを画面に表示するかどうかを指定します。(設定値 ON : エラーを表示する、OFF : エラーを表示しない。)
- NAME:動的ページの名前を指定します。エラー通知メール内で動的ページを識別するために使用します。(設定値 スペース以外の英数記号)
デフォルトバージョン(※1)を使用する場合
<html>
・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE --> ?>
<?php
echo "Hello World";
?>
・・・
</html>
※1:「デフォルトバージョン」に関する詳細は、こちらをご覧ください。
PHP7.2を使用する場合
<html>
・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE VERSION=7.2 --> ?>
<?php
echo "Hello World";
?>
・・・
</html>
PHP7.4を使用する場合
<html>
・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE VERSION=7.4 --> ?>
<?php
echo "Hello World";
?>
・・・
</html>
VERSIONを省略した場合、実行されるPHPのバージョンは「アカウントデフォルト実行バージョン」で設定されているバージョンになります。
SMP_DYNAMIC_PAGEタグはPHPプログラムを含む場合のみ記述してください。
このタグを付けた場合には必ずPHPサーバを経由することになるため、つけない場合と比較してオーバーヘッドがあります。
そのため、PHP処理が不要な場合は、SMP_DYNAMIC_PAGEタグをつけないようにしてください。
3. PHPと差替えキーワードの実行順序
Web機能においてPHPを利用した場合の動作順序は以下の通りになります。
- ページリクエスト
- PHP実行
- 差替えキーワードの差替え処理
- ページ出力
すなわち、スパイラルの差替えキーワード(%タグ、$タグ)はPHP実行後に値の差替えが行われるということです。
この動作順序に従うとどうなるかを簡単な例で説明します。
PHP実行前のコンテンツを以下のものだとすると、
<html>
・・・・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE --> ?>
<?php
echo "%val:usr:name%の在庫を%val:usr:currentstock%個増やしました。n";
?>
・・・・・・
まず、PHPの処理が行われることで以下のようになります。(差替えキーワード部分は通常の文字列として扱われています。)
<html>
・・・・・・
%val:usr:name%の在庫を%val:usr:currentstock%個増やしました。
・・・・・・
そして、その後にスパイラル側で差替えキーワードの処理が行われるため、最終的には以下の様な形で表示されることになります。
<html>
・・・・・・
商品Aの在庫を3個増やしました。
・・・・・・
この例ではうまく動作しましたが、PHPプログラム実行前に先に差し替わることを期待して$タグなどをPHPコード内に配置してしまうと当然ながら期待通りには動作しません。
プログラム内で差替えキーワードを取得するには $SPIRAL->getContextByFieldTitle()
または getContextByFieldCode()
を使います。(登録・更新フォームのサンキューページ、マイエリアのページ)
・・・・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE --> ?>
<?php
echo "%val:usr:name%の在庫を" . %val:usr:currentstock% * 10 . "個増やしました。n";
?>
PHP処理前に差替えが行われないため、これはSyntax errorとなってしまいます。よって、この場合は以下のようにして下さい。
・・・・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE --> ?>
<?php
echo $SPIRAL->getContextByFieldTitle("name") . "の在庫を" . $SPIRAL->getContextByFieldTitle("currentstock") * 10 . "個増やしました。n";
?>
ここまで説明してきたPHPの動作に関して、システム構成をまとめると以下のようになります。
4. PHP実行エラー時の画面表示
Web機能においてPHP実行時にエラーが起こった場合の画面表示は以下のとおりです。
DISPLAY_ERRORS=ONの場合:
PHPのエラーを表示し、実行が途中で止まります。
DISPLAY_ERRORS=OFFの場合:
各Web機能で用意しているエラーページを表示します。
5. PHPの実行エラー時の通知メール
PHPでエラーが発生した際に、通知メールで管理者にお知らせする機能です。
運用開始後のエラー検知メールとしてご利用ください。
「管理グループ」→「通知メール受信設定」→「PHPエラー通知メール」で「受け取る」に設定すると、PHPの実行時にエラーが発生したことを通知します。
なお、ページを表示した時に通知しますので、アクセス数の多いページは大量に通知メールが届く場合があります。
6. サンプルプログラムのご案内
PHPのサンプルをご用意しています。以下のページをご覧ください。
サンプルプログラム(PHP)
7. PHPエラーに関する通知
PHP実行時、エラーになった場合にはメールで通知いたします。
文面につきましては下記をご参照ください。
件名 :[SPIRAL:アカウント名]PHPページエラー通知
送信先:担当者ID、アカウントのご利用管理者様、連絡先1、連絡先2に登録されているメールアドレス
文面 :
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
スパイラル PHPページエラー通知
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
スパイラルでご利用のPHPページでエラーが発生しました。
エラー内容をご確認ください。
■アカウント
==================================================
XXXXX
■スパイラルの設定名称
==================================================
XXXXX
■PHPページ名称
==================================================
XXXXX
■エラーメッセージ
==================================================
XXXXX