2017-10-11 2 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

@ルークパーク私は2日間の検索とグーグルを試みましたが、解決策が得られませんでした。申し訳ありませんが、私はlaravelの新人です –

答えて

0

入力フィールドを暗号化する場合は、 url結果にキーワードを送信する前にjavascript/jquery AJAXで行う必要があります。 URLにGET Ajaxを経由して再び送ることの後

localhost:8000/Akademik/encrypt 

、あなたはキーワードが、その後のvar some_encrypted_keywordに暗号化されます:あなたはこのように暗号化を行うためのコントローラとルートを持っていると仮定しましょう

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); 
    } 

あなたは

として、コントローラのあなたの一番上に Crypt namespaceを使用する必要があります
use Illuminate\Support\Facades\Crypt; 

:あなたはCrypt::encrypt($parameter)でURLパラメータを暗号化し、Crypt::decrypt($parameter)

+0

このパラメータに入力フィールドのデータを送るにはどうすればいいですか? '' cari '=>(入力フィールドの値) '? –

0

で復号化することができますが、それはあなたが必要なもの、実際にありますか?セキュリティ上の考慮事項として、クライアント側とサーバー間のすべての通信を暗号化するHTTPSプロトコルが使用されます。ブラウザのアドレスバーから生データを隠すだけの場合は、GETではなくPOSTメソッドを使用します。

+0

答えてくれてありがとう.. ..これは単なる学習目的のためのものです...私はlaravelで新しくなっています。:) –

関連する問題