如何在Laravel 5.5中加密搜索的GET url?
我被陷在这个问题上,我不知道热,Laravel 5.5加密URL搜索......结果是这样的:如何在Laravel 5.5中加密搜索的GET url?
localhost:8000/Akademik/Mahasiswa?cari=some_keyword
,但我想是这样的:
localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword
,如:
localhost:8000/Akademik/Mahasiswa?cari=Kas6F8ajhasdhhfbdgshek
这个我MahasiswaController.php
public function index(Request $request)
{
if ($request->get('cari') == null) {
$datas = Mahasiswa::paginate(10);
return view('Akademik.Mahasiswa.mahasiswaIndex', compact('datas'))->with('no',($request->input('page',1)- 1)*10);
} else {
$cari = $request->get('cari');
$datas = Mahasiswa::where('nama','LIKE','%'.$cari.'%')->paginate(10);
return view('Akademik.Mahasiswa.mahasiswaIndex', compact('datas'))->with('no',($request->input('page',1)- 1)*10);
}
}
这是我路线/ web.php
Route::Resource('Akademik/Mahasiswa','Akademik\Mahasiswa\MahasiswaController');
,这我mahasiswaIndex.blade.php(搜索表单)
<div class="col s4 m6 right">
{{ Form::open(array('url' => 'Akademik/Mahasiswa','method' => 'get')) }}
<div class="row">
<div class="input-field col s12">
{{ Form::text('cari',null,['id' => 'cari','class' => 'col s12']) }}
<label for="cari">Cari</label>
</div>
</div>
{{ Form::close() }}
</div>
如果你想加密你的输入字段。在将关键字发送到url结果之前,您必须在javascript/jquery AJAX中执行此操作。让假设你有控制器和途径,使加密这样的:
localhost:8000/Akademik/encrypt
之后,你将获得VAR some_encrypted_keyword加密的关键字,然后再通过Ajax发送GET到网址:
localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword
问我任何东西。希望这可以解决您的问题
谢谢....它的工作... –
您可以加密您的url参数并在您的控制器中对其进行解密。你可以试试这个:
在你看来:假设你的参数是cari或者更多参数你可以加密。
<?php
$parameter =[
'cari' => (value of input field),
];
$parameter= Crypt::encrypt($parameter);
?>
<a href="{{url('/url/',$parameter)}}" target="_blank">a link</a>
您的路线将是:
Route::get('/url/{parameter}', '[email protected]');
在你的控制器,你可以解密您的参数:
public function methodName($cari){
$data = Crypt::decrypt($cari);
}
您必须使用Crypt
namespace
在控制器的顶部,
use Illuminate\Support\Facades\Crypt;
注意:您可以Crypt::encrypt($parameter)
加密URL参数,并与Crypt::decrypt($parameter)
谢谢回答,,,如何将输入字段数据发送到此参数中?'cari'=>(输入字段的值)? –
你确定它实际上是你所需要的解密?出于安全考虑,使用HTTPS协议,它加密客户端和服务器之间的所有通信。如果您只想隐藏浏览器地址栏中的原始数据,则可以使用POST方法而不使用GET。
谢谢你的回答..是..这仅仅是为了学习的目的...因为我是新的laravel .. :) –
如果您使用POST请求,则无需对其进行加密,并且https –
您的解决方案在哪里? –
@LukePark我试着搜索和谷歌搜索2天,,,但没有得到任何解决方案,对不起,我是新的laravel –