0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SPIRAL v1の「マイエリア」エラーページ

Last updated at Posted at 2023-10-30

スパイラル株式会社(旧:株式会社パイプドビッツ)のローコード開発プラットフォーム「SPIRAL® ver.1」を利用した開発のハック(工夫)。
https://www.pi-pe.co.jp/spiral-series/spiral-suite/

SPIRALでは一部ページはPHP 7.4で実装が可能。
「マイエリア」Webオブジェクトでは①ログイン画面、②エラー画面、③カスタムページなどが設定できるのだが、
②のエラー画面が曲者で、 エラー画面はPHPが利用できない静的ページ で、一部Javaサーブレット差替えキーワードによって置換されるのみとなる。
且つ、「ログインエラー」「ログインロック(連続PW誤り)」「セッションエラー」など複数のエラー画面に分かれていて「同じ文言を繰り返し記述」する必要がありヒューマンエラーを誘発する作りとなっている。
実装したからには確認・テストが必要で、複数の設定は修正漏れ等も発生しやすいため、極力まとめてしまうのが一番でシンプル化を推進したい。

よって、対策として、以下のように「ログインページのURLにPOSTリダイレクト」して、ログイン画面側で「ログインに関するエラーメッセージ文言を表示」すれば良い。

エラー画面部実装.

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  <title>redirect</title>
</head>
<body onLoad="document.forms[0].submit()">
<form action="https://area00.smp.ne.jp/area/p/abcdefghijklmnopq0/123ABc/login.html" method="post">
<input type="hidden" name="error_code" value="%val:error:code%">
<input type="hidden" name="error_msg" value="%val:error:msg%">
</form>
</body>
</html>

PHP部の実装(ログイン画面、エラー文言を表示する箇所に配置)

<?php
if (isset($_POST['error_code'])) {
  echo '<!-- '.htmlspecialchars(nl2br($_POST['error_code'])).' -->';
}
if (isset($_POST['error_msg'])) {
  echo htmlspecialchars(nl2br($_POST['error_msg']));
}
?>

以上。
// チラ裏:PHPで開発するんならローコードよりLaravelで開発した方が楽しいわ…。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?