#javascript #php #ajax
#javascript #php #ajax
Вопрос:
Я хочу перенаправить страницу, когда функция ajax будет выполнена успешно. Но параметры ссылки, которые я хочу перенаправить, будут зашифрованы с помощью функции шифрования php.
Я пишу свой код следующим образом.
$.ajax({
url: '<?php echo base_url('sistem/check'); ?>',
type: 'POST',
data: {
code: code,
id: id
},
cache: false,
success: function (data, textStatus, jqXHR) {
console.log(textStatus ": " jqXHR.status);
console.log(data);
var y = JSON.parse(data);
var x = y.data.id;
console.log(y.data.id)
if (y.status !== 0){
window.location.href = "<?php echo base_url('sistem/detail/'.encryption('x').''); ?>";
}else{
$('.response').html(y.message);
}
},
error:(e) =>{
console.log(e.responseText);
}
});
но при таком написании php шифрует строку x, а не переменную x.
Между тем, если я удалю кавычки, это приведет к ошибке этого кода.
Ответ №1:
JavaScript запущен в браузере, вы не можете передать переменную JavaScript в PHP для шифрования, потому что PHP работает на сервере. В вашем PHP-коде создайте зашифрованную версию идентификатора данных и отправьте ее обратно клиенту.
Например (в PHP):
$data->encryptedId = encrypted($data->id);
И вы могли бы обновить свой JavaScript следующим образом:
window.location.href = "sistem/detail/" y.data.encryptedId;
Такой подход к шифрованию небезопасен. Вы можете отправить только зашифрованный идентификатор с сервера клиенту и / или использовать HTTPS, но даже тогда, если кто-то получит URL-адрес, данные будут доступны.