php - Laravel:提交表单后无法重定向到正确的页面

标签 php html css laravel laravel-blade

所以我有一个问题,在用户通过将他们的详细信息提交到数据库进行注册后,我似乎无法让它重定向到仪表板。相反,我在 Firefox 中收到此消息:“由于不活动,该页面已过期。请刷新并重试。”在 url 中它没有说/dashboard 而是说/signup。

这是我的 web.php 路由

Route::get('/', function () {
    return view('user/usersignup');
});


Route::post('/signup', [
    'uses' => 'UserController@postSignUp',
    'as' => 'signup'
]);

Route::post('/signin', [
    'uses' => 'UserController@postSignIn',
    'as' => 'signin'
]);

Route::get('/dashboard', [
    'uses' => 'UserController@getDashboard',
    'as' => 'dashboard'
]);

这是 UserController,我的 Controller 。

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

    class UserController extends Controller
    {
       public function getDashboard(){
           return view('dashboard');
       }

       public function postSignUp(Request $request){
           $first_name = $request['first_name'];
           $email = $request['email'];
           $password = bcrypt($request['password']);

           $user= new User();
           $user->first_name = $first_name;
           $user->email = $email;
           $user->password = $password;

           $user->save();
           return redirect()->route('dashboard');
       }
    }

这是我的注册 View :usersignup.blade.php

  <form action="{{ route('signup') }}" method="post" id="userform">

     <div class="form-group">
        <label for="first_name">Your first Name</label>
        <input class="form-control" type="text" name="first_name" id="fullname">
     </div>

     <div class="form-group">
         <label for="email">Your E-Mail</label>
         <input class="form-control" type="text" name="email" id="email">
     </div>

     <div class="form-group">
         <label for="password">Your Password</label>
         <input class="form-control" type="password" name="password" id="password">
     </div>
     <button type="submit" class="btn btn-primary">Submit</button>
     <input type="hidden" name="_token" value="{{ Session::token() }}">
 </form>

最佳答案

你用错了CSRF .

要么使用{{ csrf_field() }}里面<form>标记并删除隐藏元素 name="_token"

<form action="{{ route('signup') }}" method="post" id="userform">
{{ csrf_field() }}
.....
.....
<button type="submit" class="btn btn-primary">Submit</button>
</form>

或者替换隐藏元素的值_tokencsrf_token()

<form action="{{ route('signup') }}" method="post" id="userform">
.....
.....
<button type="submit" class="btn btn-primary">Submit</button>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

关于php - Laravel:提交表单后无法重定向到正确的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709024/

相关文章:

php - 将 php sql 查询 while 循环转换为 for 循环

html - 希望 Nav-Item 与 Nav-Bar 高度相同

html - Github 页面 CSS 问题仅在智能手机上出现

javascript - 在Modal中输出MySQL数据

php - 消息系统中如何处理删除?

php - 带有 allowcredentials true 的通配符 CORS

javascript - 在其他页面打开 jQuery Fancybox

Retina 显示屏上的 CSS 过滤器 : Fuzzy Images

html - 我正在尝试使用 CSS 样式显示 : inline-block; with 2 <div> but they are not displaying right next to each other

css - 使用 css 使一个表列更宽