VerifyCsrfToken.php第68行中的错误TokenMismatchException:

时间:2017-06-05 08:33:47

标签: sql laravel

我想进行多次编辑,我想根据我在脚本.blade之后检查的数据进行编辑,我在VerifyCsrfToken.php第68行找到了TokenMismatchException错误:更新时。

<form name="form" action="{{url('/update-kb')}}" method="post" onsubmit="return deleteConfirm();"/>
<div class="table table-responsive">
    <table id="example1" class="table table-bordered">
        <thead>
        <tr class="info">
            <th width="3%"><input type="checkbox" name="select_all" id="select_all" value=""/></th>
            <th>No</th>
            <th>Data lengkap</th>
            <th>Aksi</th>
        </tr>
        </thead>
        <tbody>
        <?php $i = 1; ?>
        @foreach( $datasiswa as $row )
            <tr>
                <td>
                    <label class="checkbox-inline"><input type="checkbox" name="checked_id[]" class="checkbox" value="{{$row->id}}"/>
                    </label>
                </td>
                <td width="5%">{{ $i }}</td>
                <td width="95%">
                    <table class="table">
                        <tr>
                            <td class="info">Nama panggilan</td>
                            <td>{{$row->nm_panggilan}}</td>
                            <td class="warning">Pekerjaan ibu</td>
                            <td>{{$row->pekerjaan_ibu}}</td>
                        </tr>
                        <tr>
                            <td class="info">Jenis kelamin</td>
                            <td>{{$row->jenis_kelamin}}</td>
                            <td class="warning">No. Handphone</td>
                            <td>{{$row->hp_ibu}}</td>
                        </tr>
                        <tr>
                            <td class="info">Tempat, Tanggal lahir</td>
                            <td>{{$row->tempat}}, {{$row->tanggal_lahir}}</td>
                            <td class="warning">Alamat</td>
                            <td>{{$row->alamat}}</td>
                        </tr>
                        <tr>
                            <td class="info">Status anak</td>
                            <td>{{$row->status_anak}}</td>
                            <td class="warning">Golongan darah</td>
                            <td>{{$row->goldar}}</td>
                        </tr>
                        <tr>
                            <td class="info">Agama</td>
                            <td>{{$row->agama}}</td>
                            <td class="warning">Nama wali</td>
                            <td>{{$row->nm_wali}}</td>
                        </tr>
                        <tr>
                            <td class="info">Kewarganegaraan</td>
                            <td>{{$row->kewarganegaraan}}</td>
                        </tr>
                        <tr>
                            <td class="info">Anak ke-</td>
                            <td>{{$row->anak_ke}}</td>
                        </tr>
                        <tr>
                            <td class="info">Kelas</td>
                            <td>{{$row->kelas}}</td>
                        </tr>
                    </table>
                </td>
                <td>
                    <a href="{!! url('/'.$row->id.'/edit-siswa') !!}">
                        <button class="btn btn-default btn-block"><i class="fa fa-edit"></i></button><br>
                    </a>
                    <a href="{!! url('/'.$row->id.'/delete-siswa') !!}">
                        <button class="btn btn-danger btn-block"><i class="fa fa-trash"></i></button>
                    </a>
                </td>
                </td>
            </tr>
            <?php $i++; ?>
        @endforeach
        </tbody>
    </table>
    <div class="col-md-3">
        <input type="submit" class="btn btn-danger" name="delete_submit" value="Hapus"/>
    </div>
</div>
</form>

但是我还有错误,是什么原因造成的?

public function updatekb($id, Request $request)
{
    $data = Datasiswa::find($id);
    if (isset($request->delete_submit)) {
        $idArr = $request->checked_id;
        foreach ($idArr as $id) {
            DB::update('update tb_siswa, tb_pernyataan set tb_pernyataan.kelas = "cekcek" where tb_pernyataan.kelas = "TK A" and tb_siswa.sekolah = "KB TK KHALIFAH 25" and id = "' . $id . '" ');
        }

        return back();
        Session::flash('sukses', 'Data berhasil di update', compact('data'));
    }
}

3 个答案:

答案 0 :(得分:2)

在下方添加form元素。

<input type="hidden" name="_token" value="{{ csrf_token() }}" />

有些答案建议禁用csrf protection这可能但 NOT RECOMENDED 。这使您的应用程序难以理解。

答案 1 :(得分:1)

Laravel使用CSRF令牌来验证用户请求。因此,如果要禁用它,则必须在请求中使用它,然后可以从See here how to disable it禁用它,或者将其用作

 {{ csrf_field() }}

<input type="hidden" name="_token" value="{{ csrf_token() }}"/>

答案 2 :(得分:0)

您可以通过两种方式解决此问题: - 第一个: -

{{ csrf_field() }}
  or
<input type="hidden" name="_token" value="{{ csrf_token() }}"/> // add this in form

或者其他(更简单)的方式,在您的app \ Http \ Middleware / VerifyCsrfToken.php中添加

protected $except = [
'update-kb', // your route name
];

希望它有所帮助!