如何加密 GET url 以便在 Laravel 5.5 中搜索?
How to encrypt GET url for search in Laravel 5.5?
我被困在这个问题上,我不知道如何加密 URL 以在 Laravel 5.5 中搜索...结果像这样:
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);
}
}
这是我的route/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 参数并在您的控制器中对其进行解密。你可以试试这个:
在你看来:假设你的参数是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}', 'YourController@methodName');
在你的控制器中,你可以解密你的参数:
public function methodName($cari){
$data = Crypt::decrypt($cari);
}
您必须在控制器顶部使用 Crypt
namespace
作为
use Illuminate\Support\Facades\Crypt;
注意:可以用Crypt::encrypt($parameter)
加密url参数,用Crypt::decrypt($parameter)
解密
你确定这真的是你需要的吗?出于安全考虑,使用 HTTPS 协议,它加密客户端和服务器之间的所有通信。如果您只是想隐藏浏览器地址栏中的原始数据,您可以使用 POST 方法而不是 GET。
如果你想加密你的输入字段。您必须在 javascript/jquery AJAX 之前将关键字发送到 url 结果。假设你有控制器和路由来像这样进行加密:
localhost:8000/Akademik/encrypt
之后,您将在 var some_encrypted_keyword 上加密关键字,然后通过 Ajax GET 再次发送到 url :
localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword
有什么事问我。希望这能解决您的问题
我被困在这个问题上,我不知道如何加密 URL 以在 Laravel 5.5 中搜索...结果像这样:
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);
}
}
这是我的route/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 参数并在您的控制器中对其进行解密。你可以试试这个:
在你看来:假设你的参数是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}', 'YourController@methodName');
在你的控制器中,你可以解密你的参数:
public function methodName($cari){
$data = Crypt::decrypt($cari);
}
您必须在控制器顶部使用 Crypt
namespace
作为
use Illuminate\Support\Facades\Crypt;
注意:可以用Crypt::encrypt($parameter)
加密url参数,用Crypt::decrypt($parameter)
你确定这真的是你需要的吗?出于安全考虑,使用 HTTPS 协议,它加密客户端和服务器之间的所有通信。如果您只是想隐藏浏览器地址栏中的原始数据,您可以使用 POST 方法而不是 GET。
如果你想加密你的输入字段。您必须在 javascript/jquery AJAX 之前将关键字发送到 url 结果。假设你有控制器和路由来像这样进行加密:
localhost:8000/Akademik/encrypt
之后,您将在 var some_encrypted_keyword 上加密关键字,然后通过 Ajax GET 再次发送到 url :
localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword
有什么事问我。希望这能解决您的问题