前提・実現したいこと
参考書でPHP(CakePhp)の勉強をしております。初心者で恐れ入りますがよろしくお願いいたします。
index.ctfビューテンプレートのフォームから値を取得してform.ctfビューテンプレートに表示したいのですが、
index.ctfビューテンプレートよりコントローラのformアクションに送信するとエラーが発生します。
エラーメッセージ
CSRF token mismatch.
Cake\Http\Exception\InvalidCsrfTokenException
該当のソースコード(抜粋)
〇index.ctf
<body>
<header class="row">
<h1><?=$title ?></h1>
</header>
<div class="row">
<table>
<form method="post" action="/mycakeapp/hello/form">
<tr><th>name</th><td>
<input type="text" name="name"></td></tr>
<tr><th>mail</th><td>
<input type="text" name="mail"></td></tr>
<tr><th>age</th><td>
<input type="number" name="age"></td></tr>
<tr><th></th><td><button>
Click</button></td></tr>
</form>
</table>
</div>
</body>
〇form.ctf
<body>
<header class="row">
<h1><?=$title ?></h1>
</header>
<div class="row">
<p><?=$message ?></p>
</div>
</body>
〇HelloController
class HelloController extends AppController {
public function index() {
$this->viewBuilder()->autoLayout(false);
$this->set('title','Hello!');
}
public function form()
{
$this->viewBuilder()->autoLayout(false);
$name = $this->request->data['name'];
$mail = $this->request->data['mail'];
$age = $this->request->data['age'];
$res = 'こんにちは、 ' . $name . '(' . $age .
')さん。メールアドレスは、' . $mail . ' ですね?';
$values = [
'title'=>'Result',
'message'=> $res
];
$this->set($values);
}
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/01 07:21