我在这里使用一些Foundation组件制作表单。我正在使用滑块:
// the slider element. starts at 1 ends at 4 allows 1 step at a time
<div class="slider" data-slider data-start="1" data-initial-start="1" data-step="1" data-end="4">
<span class="slider-handle" data-slider-handle role="slider" tabindex="1" aria-controls="select"></span>
<span class="slider-fill" data-slider-fill></span>
</div>
// the input box that shows the sliders value
<input type="number" id="select" name="select" size="2">
现在这是我需要帮助的问题,当提交表单时(POST方法)它发送输入的值(就像它应该的那样)但是它的纯文本和Id喜欢加密它所以POST变量价值观并不明显。
但是,由于from值的输出似乎来自javascript插件(滑块),我不知道如何捕获它的值并在发送之前对其进行加密。
我怎样才能做出像这样的工作:
value=<?php echo my_encrypt("", $key); ?>
&#34;&#34;是滑块的值。
答案 0 :(得分:0)
您将无法使用PHP加密该值,因为它是服务器端技术。您的加密需要在JavaScript中完成。
我假设您有充分的理由进行加密,但无论如何都要快速提及:如果您通过HTTPS提交,则无需加密您发送的值。 HTTPS已经这样做了。
如果您没有通过HTTPS提交,一种方法是从当前的数字输入中删除该名称,以便它不会随表单一起提交,并保留第二个带有加密值的隐藏输入,如下所示:
// the input box that shows the sliders value
<input type="number" id="select" size="2">
// the input that will store the encrypted value
<input type="hidden" name="select" value="">
然后,每当滑块值改变时,加密可见数字输入中的值并将其存储在隐藏输入中(我假设因为你使用的是Foundation,你可以使用jQuery):
$(document).on('changed.zf.slider', '[data-slider]', function(event) {
var $slider = $(event.currentTarget);
var $numberInput = $slider.siblings('#select');
var $hiddenInput = $slider.siblings('[name="select"]');
var numberInputValue = $numberInput.val();
var encryptedValue = yourEncryptionFunction(numberInputValue);
$hiddenInput.val(encryptedValue);
});
提交表单后,将提交您存储在隐藏输入中的加密值,并且将忽略可见数字输入,因为它没有名称属性。