URL唯一点击的判断

前两天遇到一个判断URL点击唯一的判断,现在贴出我自己的处理方法:

要判断URL是否被点击过,网上流传的大部分方法是根据Session进行判断,我想了一个可以简单处理的方法。

所用:数据库+IP限制+服务器时间+一个供随机的字符串数组array+时间有效性

思路:

1.得到服务器时间,将服务器以单个字符的方式存入到一个数据arr1;

2.得到数组长度len,一般服务器时间长度是10,我们再从array中随机len个字符串,接着存入数组arr1;

3.将数组arr1的顺序打乱,记录下数组的打乱顺序,将顺序存入到另外一个记录的数组temp中,将打乱后的数组存入arr2

4.将temp以一定的方式加密(每个人想出的方法肯定会不同的)

最后将arr2和temp传过去

再在页面中获得参数解码。

后期处理以及说明:限制IP只能点击一次,有用户的话判断用户只能点击一次,将arr2拆开,将服务器时间拼凑起来强转成时间,和当前时间进行判断时间差,由此判断是否失效,传过来的时间作为key1;

将获得的数据中的其余字符串看是不是在array中,并将其拼接记录到数据库;

这样就差不多可以限制普通的用户了,最起码没有一些专业知识是分析不出来的。

 

后续:前几天重看密码学的一点东西,上面写道:密码最忌讳的就是有序,我想上面的虽然谈不上密码,但是还是有序列的,呵呵~就当作简单处理吧

在 Vue 3 中使用 Esri Leaflet 调用 ArcGIS 地图服务,并给地图绑定点击事件,当存在多个图层时,可以通过判断点击事件的 `target` 属性来确定点击的是哪个图层。以下是一种处理方式: 1. 在数据中定义每个图层的标识符或名称。 ```javascript data() { return { mapLayers: [ { id: 1, name: 'Layer 1', url: 'https://services.arcgis.com/.../FeatureServer/0' }, { id: 2, name: 'Layer 2', url: 'https://services.arcgis.com/.../FeatureServer/1' }, // 添加更多图层... ] }; } ``` 在数据中创建一个数组 `mapLayers`,每个图层对象都有一个唯一的 `id` 和一个 `name`,以及对应的 ArcGIS 服务的 URL。 2. 在模板中循环渲染地图图层,并为每个图层绑定点击事件。 ```html <template> <div> <div id="map"></div> <el-descriptions> <el-descriptions-item v-for="layer in mapLayers" :key="layer.id"> {{ layer.name }} </el-descriptions-item> </el-descriptions> </div> </template> <script> import L from 'leaflet'; import { esri } from 'esri-leaflet'; export default { data() { // 数据部分省略... }, mounted() { const map = L.map('map').setView([latitude, longitude], zoomLevel); this.mapLayers.forEach((layer) => { const featureLayer = esri.featureLayer({ url: layer.url }).addTo(map); featureLayer.on('click', (event) => { const clickedLayer = event.target; // 处理点击事件 console.log(`Clicked on ${layer.name}`); console.log(clickedLayer.feature); }); }); }, }; </script> ``` 在模板中使用 `v-for` 指令循环渲染地图图层,并设置 `:key` 属性为 `layer.id`。在点击事件处理程序中,可以通过 `event.target` 获取点击的图层对象。通过对比点击的图层对象和数据中的图层对象,可以确定点击的是哪个图层。 通过以上方式,你可以在 Vue 3 中使用 Esri Leaflet 调用多个 ArcGIS 地图服务,并在点击事件中判断点击的是哪个图层。你可以根据具体的需求进行进一步的处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值