我正在寻找一种方法,将字符串编码为尽可能短的长度并让它可解码(纯PHP,没有SQL).我有工作脚本,但我对编码字符串的长度不满意.
场景:
链接到图像(取决于我想向用户显示的文件分辨率):
编码链接(因此用户无法猜测如何获取更大的图像):
所以,基本上我只想编码网址的搜索查询部分:
我现在使用的方法将上面的查询字符串编码为:
我使用的方法是:
$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 对其进行解码?
我想为我的项目使用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) 我遇到了麻烦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) 我有一个$.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) 我有一个简单的网页和以下脚本。
<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。
在我的项目中,我有一个对话框,显示两个按钮(确认和取消)操作.但是当出现这种情况时,如果我移动或点击一个带有与我相关联的功能的按钮会导致此错误:
未捕获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) 脚本:
$(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.
是否可以通过使用分配给两个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)
这不会将任何数据传递给我的后端脚本.