【发布时间】:2019-12-15 20:00:47
【问题描述】:
在 Laravel 中,我正在开发一个网络应用程序,用户将在不同的页面上回答正确或错误的问题。在每一页上,我想以某种方式保存他们的答案,最后将结果保存到数据库中。
我可以在每个页面上创建一个 POST 表单,如果答案正确,它将增加数据库中的“点”字段。但这需要每个用户多次访问数据库,因为答案将保存在每个页面上。有没有办法将它们的点存储到服务器上的一个变量中,然后将该变量保存到最后的数据库中?
我曾想过将积分保存到会话中,但这并不安全,因为用户可以修改会话。
现在我的控制器只返回介绍页面。
class QuizController extends Controller {
public function index() {
return view("quiz.pages.1");
}
public function addPoint() {
$points++;
}
public function getPoints() {
return $points;
}
}
以及重定向到下一页的路线。
Route::get('quiz/{page}', function($page) {
return View::make('quiz.pages.' . $page);
});
【问题讨论】:
-
你的保存方法在哪里?不清楚你在问我什么
-
我不明白您为什么认为在会话中存储点是不安全的。会话存储在服务器上,而不是客户端上。用户不太可能修改会话以对其有利。
-
您可以使用会话(只能由有权访问您的服务器的用户修改),或将点存储在快速缓存中,如redis。
-
@KIKOSoftware 和 marv255 你是对的。我对服务器端会话和 HTML5 的 sessionStorage 感到困惑。我将使用服务器端会话解决问题。谢谢。
标签: php html database laravel post