【perl】(5)フレームワークを使って、ログイン処理・新規登録を行うプログラム〜html編
【ログイン画面】login.html
<html> <head> <title>ログイン</title> </head> <body> <form method="post" action="?mode=login"> [% var.msg | html %] <table border> <tr> <td align="right">ID: </td> <td><input type="text" name="id"></td> </tr> <tr> <td align="right">PASS: </td> <td><input type="password" name="pass"></td> </tr> <tr> <td colspan="2" align="center"><input name="login" type="submit" value="ログイン"></td> </tr> </table> </form> </body> </html>
【新規登録画面】new.html
<html> <head> <title>新規登録</title> </head> <body> <form method="post"> <input type="hidden" name="mode" value="confirm"> <input type="hidden" name="prev_mode" value="new"> <input type="hidden" name="next_mode" value="create"> <table border> <tr> <th>ID: </th> <td><input name="id" value="[% self.query.param('id') | html %]"></td> </tr> <tr> <th>名前: </th> <td><input name="name" value="[% self.query.param('name') | html %]"></td> </tr> <tr> <th>PASS: </th> <td><input name="pass" type="password" value="[% self.query.param('pass') | html %]"></td> </tr> <tr> <th>email: </th> <td><input name="email" value="[% self.query.param('email') | html %]"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="確認"></td> </tr> </table> <a href="?mode=list">一覧に戻る</a> </form> </body> </html>
【確認画面】confirm.html
<html> <head> <title>確認</title> </head> <body> <form method="post"> <input type="hidden" name="mode" value=""> <table border> <tr> <th>ID: </th> <td> [% self.query.param('id') | html %] <input type="hidden" name="id" value="[% self.query.param('id') | html %]"> </td> </tr> <tr> <th>名前: </th> <td> [% self.query.param('name') | html %] <input type="hidden" name="name" value="[% self.query.param('name') | html %]"> </td> </tr> <tr> <th>PASS: </th> <td> [% self.query.param('pass') | html %] <input type="hidden" name="pass" value="[% self.query.param('pass') | html %]"> </td> </tr> <tr> <th>email: </th> <td> [% self.query.param('email') | html %] <input type="hidden" name="email" value="[% self.query.param('email') | html %]"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="戻る" onclick="this.form.mode.value='[% self.query.param('prev_mode') %]'"> <input type="submit" value="登録" onclick="this.form.mode.value='[% self.query.param('next_mode') %]'"> </td> </tr> </table> </form> </body> </html>
【編集画面】edit.html
<html> <head> <title>編集</title> </head> <body> <form method="post"> <input type="hidden" name="mode" value="confirm"> <input type="hidden" name="prev_mode" value="edit"> <input type="hidden" name="next_mode" value="update"> <table border> <tr> <th>ID: </th> <td> [% self.query.param('id') | html %] <input type="hidden" name="id" value="[% self.query.param('id') | html %]"> </td> </tr> <tr> <th>名前: </th> <td><input name="name" value="[% self.query.param('name') | html %]"></td> </tr> <tr> <th>PASS: </th> <td><input name="pass" type="password" value="[% self.query.param('pass') | html %]"></td> </tr> <tr> <th>email: </th> <td><input name="email" value="[% self.query.param('email') | html %]"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="確認"></td> </tr> </table> <a href="?mode=list">一覧に戻る</a> </form> </body> </html>
【データベースの情報をリストで取得】list.html
<html> <head> <title>一覧</title> </head> <body> <table border> <tr> <th>ID</th> <th>名前</th> <th>メールアドレス</th> </tr> [% FOREACH u = var.list %] <tr> <td><a href="?mode=edit&id=[% u.id | html %]">[% u.id | html %]</a></td> <td>[% u.name | html %]</td> <td>[% u.email | html %]</td> </tr> [% END %] </table> <input type="button" value="新規登録" onclick="location.href='?mode=new'"> </body> </html>