2017-10-11 23 views
0

我被陷在這個問題上,我不知道熱,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> 
+1

如果您使用POST請求,則無需對其進行加密,並且https –

+0

您的解決方案在哪裏? –

+0

@LukePark我試着搜索和谷歌搜索2天,,,但沒有得到任何解決方案,對不起,我是新的laravel –

回答

0

如果你想加密你的輸入字段。在將關鍵字發送到url結果之前,您必須在javascript/jquery AJAX中執行此操作。讓假設你有控制器和途徑,使加密這樣的:

localhost:8000/Akademik/encrypt 

之後,你將獲得VAR some_encrypted_keyword加密的關鍵字,然後再通過Ajax發送GET到網址:

localhost:8000/Akademik/Mahasiswa?cari=some_encrypted_keyword 

問我任何東西。希望這可以解決您的問題

+0

謝謝....它的工作... –

0

您可以加密您的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); 
    } 

您必須使用Cryptnamespace在控制器的頂部,

use Illuminate\Support\Facades\Crypt; 

注意:您可以Crypt::encrypt($parameter)加密URL參數,並與Crypt::decrypt($parameter)

+0

謝謝回答,,,如何將輸入字段數據發送到此參數中?'cari'=>(輸入字段的值)? –

0

你確定它實際上是你所需要的解密?出於安全考慮,使用HTTPS協議,它加密客戶端和服務器之間的所有通信。如果您只想隱藏瀏覽器地址欄中的原始數據,則可以使用POST方法而不使用GET。

+0

謝謝你的回答..是..這僅僅是爲了學習的目的...因爲我是新的laravel .. :) –