Как скрыть значения URL в PHP Laravel

#php #laravel #url

Вопрос:

Мне нужно скрыть значение URL-адреса в php, так как у меня есть сайт бронирования, и пользователи могут редактировать свое бронирование через URL-адрес, если это необходимо.

Вот как выглядит URL-ссылка.

http://spiaggiasanmontano.it/booking/S12/2021-06-11/2021-06-12/0

я пытаюсь удалить даты в URL-адресе, не нарушая код, есть идеи, как я могу это сделать?

И это контроллер маршрута для него.

 Route::get('/booking/{place_id}/{checkin}/{checkout}/{error_msg}', 'PagesController@createbooking')->name('user.createbooking');
 

Комментарии:

1. почему бы тогда просто не использовать post-запрос??

2. в основном замените ::get на ::post правильно?

3. да, отправьте форму с запросом на публикацию и удалите параметры маршрута, если вы не хотите, чтобы они были в URL.

4. Чего именно вы хотите достичь? Где ты застрял? Если такие данные не имеют отношения к делу, почему бы просто не удалить их? Не лучше ли было бы использовать один уникальный идентификатор для каждого бронирования вместо нескольких значений?

Ответ №1:

Вы можете использовать laravel Encrypter , если вы все еще хотите передать его в URL-адресе с зашифрованным значением вместо отображения исходного значения

например checkin date

передайте зашифрованную дату в encrypt(checkin) значение url

 encrypt(checkin)
 

затем в своем контроллере вы можете расшифровать его

  $checkinDate= decrypt($checkin);
 

Например, если у вас есть ссылка, как показано ниже в blade

 <a href="{{route('user.createbooking',['palceid',encrypt($checkin)])}}"/>
 

Ссылка:https://laravel.com/docs/8.x/шифрование#использование шифратора

Комментарии:

1. Правильно ли это записать в URL-маршрут? : Маршрут::get(‘/бронирование/{идентификатор места}/{шифрование(регистрация)}/{шифрование(проверка)}/{error_msg}’, ‘PagesController@createbooking’)->имя(‘пользователь.createbooking’);

2. @tamerjar.его нет в пути . вы должны написать это в блейде, где вы передаете URL