スパイラル サポートサイト

powered by SPIRAL PLACE®

HOME > 機能 > スパイラルのWeb機能でのPHP利用

スパイラルのWeb機能でのPHP利用

PHP5.3は、2020年11月30日をもって提供終了いたします。


概要

スパイラルのWeb機能でPHPをご利用いただけます。
FacebookなどSNSへの書込み、外部データの取込み、演算結果の表示など動的なウェブページを作成できます。

関連ページ

スパイラルPHPバージョンについて

目次

  1. PHPが利用できるWeb機能一覧
  2. SMP_DYNAMIC_PAGEについて
  3. PHPと差替えキーワードの実行順序
  4. PHP実行エラー時の画面表示
  5. PHPの実行エラー時の通知メール
  6. サンプルプログラムのご案内

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:「デフォルトバージョン」に関する詳細は、こちらをご覧ください。

PHP5.3を使用する場合

PHP5.3は、2020年11月30日をもって提供終了いたします。


<html>
・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE VERSION=5.3 --> ?>
<?php
echo "Hello World";
?>
・・・
</html>

PHP7.2を使用する場合

<html>
・・・
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE VERSION=7.2 --> ?>
<?php
echo "Hello World";
?>
・・・
</html>

VERSIONを省略した場合、実行されるPHPのバージョンは「アカウントデフォルト実行バージョン」で設定されているバージョンになります。

SMP_DYNAMIC_PAGEタグはPHPプログラムを含む場合のみ記述してください。
このタグを付けた場合には必ずPHPサーバを経由することになるため、つけない場合と比較してオーバーヘッドがあります。
そのため、PHP処理が不要な場合は、SMP_DYNAMIC_PAGEタグをつけないようにしてください。

3. PHPと差替えキーワードの実行順序

Web機能においてPHPを利用した場合の動作順序は以下の通りになります。

  1. ページリクエスト
  2. PHP実行
  3. 差替えキーワードの差替え処理
  4. ページ出力

すなわち、スパイラルの差替えキーワード(%タグ、$タグ)は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)








最終更新日:2020/8/26