データ作成画面と削除画面2(削除画面)

# sWebMachineGun.exe実践編

「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」の続きとなる今回は、「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」では、データ作成処理が、パラメータ置換の対象であったが、今度は削除処理を対象にする

ポイントは、データ削除画面の「%%csrf(数字)%」というマクロが、(マクロの文字列なので)数値ではない。という点
数値として認識できないので、数値用の計算した値に置換するなどの処理の対象として認識できない。という点

今回は、マクロとして変換後は数値になる。ということを宣言するマクロ「%%csrfn(数字)%」を紹介する
これによって、数値パラメータに対しての各種置換処理(計算するとか)を実行できるようになる

まぁ最初の「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」から使えよって話ですわな

## 診断対象

こんな感じ
<table border="1">
<tr>
<th align="center">データ作成画面</th>
<th colspan="2" align="center">データ作成完了画面</th>
<th colspan="2" align="center">登録データ一覧画面</th>
<th align="center">データ削除画面</th>
</tr>
<tr>
<td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/559379a1-421c-7f79-63fa-4f4870b68191.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/559379a1-421c-7f79-63fa-4f4870b68191.png" width="70%" height="70%"></a></td>
<td colspan="2"><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/ac08d6f0-7b6d-33a8-61fe-6f3e5495fb56.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/ac08d6f0-7b6d-33a8-61fe-6f3e5495fb56.png" width="70%" height="70%"></a></td>
<td colspan="2"><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/bf50f546-58af-45d6-94cf-e056bb067308.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/bf50f546-58af-45d6-94cf-e056bb067308.png" width="70%" height="70%"></a></td>
<td><a href="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/91cc1f2c-9230-efa6-e3e2-c2db8658954b.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/91cc1f2c-9230-efa6-e3e2-c2db8658954b.png" width="70%" height="70%"></a></td>
</tr>
<tr>
<td colspan="2" valign="top">POST /sanaki/yourdata/testIdInputComplete.asp HTTP/1.0<BR>
Content-Type: application/x-www-form-urlencoded<BR>
Content-Length: 0<BR>
<BR>
Email=test@test.example.com&age=16</td>
<td colspan="2" valign="top">GET /sanaki/yourdata/testIdInputList.asp HTTP/1.0</td>
<td colspan="2" valign="top">GET /sanaki/yourdata/testIdInputDelete.asp?id=10 HTTP/1.0</td>
</tr>
</table>

「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」と同じです

## sWebMachineGun.exeの設定

メインの設定は、HTTPリクエストの設定と、置換方法の設定

### sWebMachineGun.exeの設定1

「Request」タブに、三つのHTTPリクエストを設定する

![053.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/194a9c48-08af-0102-06d6-71912e44068b.png)

この画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」と同じです

今回の置換対象は、削除リクエストであり、作成リクエストではないので、つまりデータ作成リクエストは置換処理されないので、必ずデータ作成は成功する。と考えてもよいだろう。
ということで、今回は画面下部のセッション継続条件は空欄でもいいけど、、、そのままにしておく。

![054.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/20694cef-2d69-e577-f342-8b528b5dcd31.png)

二つ目のリクエストテンプレート画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」と同じです

![062.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/20ad3ee8-0f7d-d594-e0b4-5bee4a713223.png)

三つのリクエストテンプレートは、登録データを削除するリクエスト・テンプレート

三つ目のリクエストテンプレート画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」と基本的に同じですが、マクロが「%csrfn(数字)%」となっている点が異なっています。
これは、このマクロは数値に置き換えられるという宣言です。

### sWebMachineGun.exeの設定1a

四つ目として、三つ目の削除リクエストのテンプレートをコピーするのも<b>アリ</b>

四つ目は、置換対象ではないので、三つ目で削除できなかったレコードを四つ目で確実に削除することができるだろう。
(三つ目のリクエストで削除できていたら、四つ目は単純にエラーになるだけし...)

さらに、三つ目のリクエストテンプレートにはセッション継続条件「<b>「削除しました」を見つけたらセッション中断</b>」を入れておくと、より効率的になるかもしれない

### sWebMachineGun.exeの設定2

この画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」とかと基本的に同じなので、説明は省略してもいいよね。

異なる点は、変換対象ページはNo2と指定しているということ
(つまり、データ削除のリクエストが置換対象ということ)

![063.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/6eefc7da-2774-dd10-1aa9-cdea69e88552.png)

### sWebMachineGun.exeの設定4(CSRFトークンの設定)

この画面は「[データ作成画面と削除画面1](https://qiita.com/tomoki0sanaki/items/e3cd70ede8053ef710d8)」と同じなので省略

## sWebMachineGun.exeの実行

「Execute」ボタンで、実行できるのですが、結果はこんな感じで、

まず、1つ目のデータ作成のリクエストによって、データの作成が成功している

![064.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/7266e317-bc6b-7fa9-1e99-d48a54475eae.png)

id=24で作成されている

![065.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/cb5766a1-bd23-f717-a755-a1f8b4aaea5a.png)

その次のデータ一覧を呼び出した後の削除リクエストはこんな感じで、id=24、つまり先ほど作成したデータに対してパラメータ置換処理を実施している
(データは削除されなかった)

<HR>

次の例も、1つ目のデータ作成のリクエストによって、データの作成が成功している

![066.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/78c6a9c9-7f1a-7ec8-7256-23bbe2baca93.png)

id=26で作成されている

![067.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182822/96f1acaf-dddb-233b-3712-1d815d4d97fe.png)

その次のデータ一覧を呼び出した後の削除リクエストはこんな感じで、id=26に対して、+1して「-1」文字列を追加、つまり「27-1」という数値パラメータ特有の置換処理を実施している
(データは削除されなかった)

# sWebMachineGun.exe Index

[sWebMachineGun.exe のメインメニューに戻る](https://qiita.com/tomoki0sanaki/items/e2b7767551a576b1dbd3)