小编Art*_*iak的帖子

具有解码可能性(缩短url)的最短可能编码字符串仅使用PHP

我正在寻找一种方法,将字符串编码为尽可能的长度并让它可解码(纯PHP,没有SQL).我有工作脚本,但我对编码字符串的长度不满意.

场景:

链接到图像(取决于我想向用户显示的文件分辨率):

  • www.mysite.com/share/index.php?img=/dir/dir/hi-res-img.jpg&w=700&h=500

编码链接(因此用户无法猜测如何获取更大的图像):

  • www.mysite.com/share/encodedQUERYstring

所以,基本上我只想编码网址的搜索查询部分:

  • IMG = /目录/目录/高分辨率-img.jpg&W = 700,H = 500

我现在使用的方法将上面的查询字符串编码为:

  • y8xNt9VPySwC44xM3aLUYt3M3HS9rIJ0tXJbcwMDtQxbUwMDAA

我使用的方法是:

 $raw_query_string = 'img=/dir/dir/hi-res-img.jpg&w=700&h=500';

 $encoded_query_string = base64_encode(gzdeflate($raw_query_string));
 $decoded_query_string = gzinflate(base64_decode($encoded_query_string)); 
Run Code Online (Sandbox Code Playgroud)

如何缩短编码结果并仍然可以使用PHP 对其进行解码?

php encoding decoding

15
推荐指数
2
解决办法
2万
查看次数

如何加载JSON数据以与select2插件一起使用它

我想为我的项目使用select2插件.我按照这个例子,但它对我不起作用.

JSON输出:

[
    {"ime":"BioPlex TM"},
    {"ime":"Aegis sym agrilla"},
    {"ime":"Aegis sym irriga"},
    {"ime":"Aegis sym microgranulo"},
    {"ime":"Aegis sym pastiglia"},
    {"ime":"Agroblen 15816+3MgO"},
    {"ime":"Agroblen 18816+3MgO"},
    {"ime":"Agrobor 15 HU"},
    {"ime":"Agrocal (Ca + Mg)"},
    {"ime":"Agrocal (Ca)"},
    {"ime":"Agrogold"},
    {"ime":"Agroleaf Power 12525+ME"},
    {"ime":"Agroleaf Power 151031+ME"},
    {"ime":"Agroleaf Power 202020+ME"},
    {"ime":"Agroleaf Power 311111+ME"},
    {"ime":"Agroleaf Power Ca"},
    {"ime":"Agrolution 14714+14 CaO+ME"},
    {"ime":"Agrovapno dolomitno"},
    {"ime":"Agrovit HSF"},
    {"ime":"Agrovit P"},
    {"ime":"Agrozin 32 T"},
    {"ime":"Albatros Hydro"},
    {"ime":"Albatros Sprint"},
    {"ime":"Albatros Standard"},
    {"ime":"Albatros Universal"},
    {"ime":"Algaren"},
    {"ime":"AlgoVital ? Plus"},
    {"ime":"Amalgerol PREMIUM"},
    {"ime":"Amcolon \/ Novalon"},
    {"ime":"Amcopaste"},
    {"ime":"Aminosprint …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery json jquery-select2

14
推荐指数
2
解决办法
4万
查看次数

如何在用户按下注销并销毁会话后禁用后退浏览器按钮?

我遇到了麻烦session_destroy().
当用户按下注销时,它必须销毁会话.我写了以下代码:

Logout.php

<?php
    session_start();
    session_destroy();
    header("location: LoginViewController.php");
?>
Run Code Online (Sandbox Code Playgroud)

按下注销后,当我按下浏览器后退按钮时,它会在Login.php页面中显示我之前登录的用户页面和会话用户名

的login.php

<?php
    session_start();
    $_SESSION['user']=  $_GET['username'];
    echo '"<div style="background:white; text-align:right"> Login as:'.$_SESSION['user'].'</div>"';
    echo '<a href="Logout.php" style="text-align:right">Logout</a>';
Run Code Online (Sandbox Code Playgroud)

LoginViewController.php

<?php
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

    $Username = $_POST['uname'];
    $Password = $_POST['pwd'];
    $User_Type=$_POST['type'];

    If (!(empty($Username) && empty($Password) && empty($User_Type))){
        $model = new UsersModel();
        $rowsCount = $model->checkUser($Username,$Password,$User_Type);

        if ($rowsCount!=0){
            header("location:login.php?username=".$_POST['uname']."");  
        } else {
            echo '<script type="text/javascript">alert("Enter username and password correctly"); …
Run Code Online (Sandbox Code Playgroud)

html php

10
推荐指数
1
解决办法
5万
查看次数

如何在不打开模态对话框的情况下为 data-toggle="modal" 按钮设置自定义单击事件处理程序?

我有一个$.post()名为“HasIncreasePoint”的请求,如果从服务器返回的数据表明成功(e.IsSuccess),我不想打开引导模式对话框,并完成点击事件过程。

$('a[data-toggle="modal"]').on('click', function (event) {
    $.post("@Url.Action("HasIncreasePoint")", function (e){
        if (e.IsSuccess) {
            alert("error!please not to open the modal!");
            event.preventDefault();
            event.stopPropagation();
            $('a[data-toggle="modal"]').off("click");
        }else{
            // From the clicked element, get the data-target arrtibute
            // which BS3 uses to determine the target modal
            var target_modal = $(e.currentTarget).data('target');
            // also get the remote content's URL
            var remote_content = e.currentTarget.href;

            // Find the target modal in the DOM
            var modal = $(target_modal);
            // Find the modal's <div class="modal-body"> so we can populate …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery twitter-bootstrap

6
推荐指数
1
解决办法
1万
查看次数

iframe加载回调被多次调用

我有一个简单的网页和以下脚本。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>
      function sendTraffic(typeOfTraffic){
        var ipAddr = document.getElementById("serverIpaddr").value;
        //alert(ipAddr);
        $("#WAFTest").attr("src", '/cgi-bin/test.py?wat='+typeOfTraffic+'&ipaddr='+ipAddr);
        $("#WAFTest").load(function () {
            alert("Test done");
        });
    }
    </script>
Run Code Online (Sandbox Code Playgroud)

我有一个按钮,并且调用了这个函数 sendTraffic 。我看到的是测试完成警报第一次出现一次,第二次出现两次,第三次出现三次,并且它一直持续下去。

<button type="button" id="btnSendPing" class="btn btn-primary btn-lg" onclick="sendTraffic('sendping')">Send Ping Traffic</button>
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我做错了什么。我正在使用 twitter bootstrap 仅供参考。

编辑:我在 Mac 上使用 chrome。#WAFTest 是一个 Iframe。我只是想从服务器获取数据并将其加载到 Iframe。

javascript iframe jquery

5
推荐指数
1
解决办法
7014
查看次数

超出最大调用堆栈大小.在对话框打开

在我的项目中,我有一个对话框,显示两个按钮(确认和取消)操作.但是当出现这种情况时,如果我移动或点击一个带有与我相关联的功能的按钮会导致此错误:

未捕获RangeError:超出最大调用堆栈大小.

这是显示对话框的功能:

displayConfirmMessageBox: function(title, message, messageButtons) {
    if(title == undefined || title == ''){
        title = "<No message>";
    }   
    if(message == undefined || message == ''){
        message = "<No message>";
    } 
    if(messageButtons == undefined){    
        messageButtons = {};
        messageButtons[EALang['close']] = function(){   
            jQuery("#message_box_confirm").dialog("close");
        };
    }

    jQuery("#message_box_confirm").dialog("destroy");
    jQuery("#message_box_confirm").remove();
    jQuery("body").append(
        "<div id='message_box_confirm' title='" + title + "'>" +
        "<p>" + message + "</p>" +
        "</div>"
    );    

    jQuery("#message_box_confirm").dialog({
        autoOpen      : false,
        modal         : true,
        resize        : "auto",
        width         : 400,
        height        : "auto",
        resizable …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui

2
推荐指数
1
解决办法
3094
查看次数

Jquery,将innerHTML添加到DIV并通过innerHTML的ID访问元素?

脚本:

$(document).ready(function(){
    $.ajax({   
        type    : "POST",
        url     : "list_controller.php",
        data    : "a=get&list_id=my_list",
        success : function(data){
            $('#list_container').innerHTML = data;
        }
    });                     
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="list_container"></div>
Run Code Online (Sandbox Code Playgroud)

data从服务器返回包含应触发另一jQuery的功能,并重新加载一些可点击链接HTML #list_container再次DIV:

<a href="#" value="a=edit&list_id=my_list&user=artur&id=110" id="adminlink">
    <img src="images/edit_user.png" />
</a>
Run Code Online (Sandbox Code Playgroud)

我希望这些链接调用其他AJAX函数,f.ex:

$(document).ready(function(){
    $('#adminlink').click(function () {
        var val = $(this).attr("value");
        $.ajax({       
            type    : "POST",
            url     : "list_controller.php",
            data    : val,
            success : function(data){
                $('#list_container').innerHTML = data;
            }
        });
    });
    return false;
 });
Run Code Online (Sandbox Code Playgroud)

问题是我无法访问#adminlink触发click功能的anchor元素.

其他所有东西都完美无缺,但是无法再访问innerHTML动态的任何元素data.

html javascript php ajax jquery

0
推荐指数
1
解决办法
1340
查看次数

Jquery - 按类别序列化DIV中的表单字段?

是否可以通过使用分配给两个div的类来获取表单字段数据并将其序列化?

我有4个包含表单字段的div,一次只显示两个DIV.显示的内容取决于下拉选项.

  • 如果select = 1,classOne显示类的div和classTwo隐藏的div

  • 如果select = 2,classTwo显示类的div和classOne隐藏的div

当我提交表单,我想序列或者与这两个div的classOne,或者classTwo,这取决于在下拉列表中选择.

到目前为止,我不能让它从divs序列化表单日期..

data: $('.classOne').serializeArray(),
Run Code Online (Sandbox Code Playgroud)

这不会将任何数据传递给我的后端脚本.

html javascript ajax jquery serialization

0
推荐指数
1
解决办法
2408
查看次数