スパイラル株式会社(旧:株式会社パイプドビッツ)のローコード開発プラットフォーム「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で開発した方が楽しいわ…。