我正在使用以下代码发布到服务器,然后将其发送到MYSQL查询以通过搜索查找匹配项.
$.ajax({
url: '/search/spotlight/',
data: "q=" + $(this).val(),
success: function(data) {
}
});
Run Code Online (Sandbox Code Playgroud)
当Q的val中有空格时,就会产生问题.我想知道我是否正确处理了这个问题?我需要在AJAX调用中对值进行编码吗?或者这是我的后端问题,即ColdFusion
现在JQUERY将以下内容发布到服务器:/ search/spotlight /?q = FirstName%20LastName
这是正确的吗?
我正在使用APACHE:mod_rewrite来定义一组用于重写URLS的规则
我希望此链接显示为
/myDIR/walls.php?f=All&of=0&s=Newest - > All.html
所以我使用以下规则
来自(.htaccess)的文字
RewriteEngine on
RewriteBase /myDIR/
RewriteRule ^All\.html$ papers.php?f=All&of=0&s=Newest
Run Code Online (Sandbox Code Playgroud)
现在这些正在传递的变量
f=All of=0 s=Newest被用于查询,显然和其中一个变量,即f有时具有空格和特殊字符的值,我无法避免这种情况,因为数据库已经就位且所有我正在重写URL ....
现在,当我尝试定义这样的规则时
我希望此链接显示为
/myDIR/walls.php?f=Characters & Supers&of=0&s=Newest - > Characters & Supers.html
这是错的,我知道因为不应该有任何空格..所以为了使它正确我定义这样的规则
RewriteRule ^Characters%20%26%20Supers\.html$ papers.php?f=Characters%20%26%20Supers&of=0&s=Newest
Run Code Online (Sandbox Code Playgroud)
它让我定义规则,但当我点击我的链接时,我得到 404未找到错误"在此服务器上找不到请求的URL/wallz/Characters&Supers.html."
问题:做什么?
我的猜测是我不应该在.htaccess里面做HTML URL编码
我在Apache下使用django.当我urlencode在django模板中使用时,它根本不会包含这样的东西{{value|urlencode}}这里是我完整的锚标签
<a href="/mysite/comment/{{i.comment_id|urlencode}}">Comment</a>
有人可以帮忙吗?有没有办法摆脱这个?
在此先感谢 - 维克拉姆
我有一个数组转储,我想压缩成一个字符串,可以通过网址发送到另一个部分并解码.
目前我正在gzcompressing它和base64编码它.但它似乎没有起作用.bool(false)当我在接收端使用它时它会返回.
gzcompress(json_encode($images),9))
编码数据的示例
string(214) "{"1":null,"2":null,"3":null,"4":"..\/uploads\/2462df38db374653720daa42b7aefec4\/cv4slm3fr8_c.png","5":"..\/uploads\/2462df38db374653720daa42b7aefec4\/vzh72hwqvk_c.png","6":null,"7":null,"8":null,"9":null,"10":null}"
Run Code Online (Sandbox Code Playgroud)
这些null值用相似的数据填充.我需要通过url将这些数据传递给另一个脚本.
注意:打开的url是在一个模态框内,因此我无法POST到它.
我需要通过我的MySQL查询的URL传递特殊符号.例如,我需要一个类似于以下内容的URL:
www.example.com/index.php?q=AND name LIKE '%hi%'
Run Code Online (Sandbox Code Playgroud)
当我第一次尝试它时,我得到了406错误.我查了一下,显然我必须使用urlencode()和urldecode().我把它们放进去了,406错误消失了,但后来我得到了一个MySQL错误:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Run Code Online (Sandbox Code Playgroud)
通常当我得到这些时,这意味着查询编写不正确.所以我回应了MySQL查询,一切看起来都很好.我甚至删除了urldecode()并将硬编码转换为我希望传递给页面的变量,并且MySQL错误消失了.但是,使用urldecode()和不使用它们的查询完全相同,所以我有点困惑.
我走上了php.net文档页面urldecode(),并有一个警告,说的一样使用_GET,并urldecode()一起可能导致意想不到的事情,这_GET已经起到解码器(或至少这就是我理解的措辞),所以我删除urldecode()但仍留在_GET,并导致文本未被解码,所以我想我没有正确解释文档.
是urldecode()不是与MySQL查询兼容?我很确定这是编码/解码的问题,因为我已经用绕过编码/解码的硬编码信息测试了我的代码,并且它工作正常.也许urldecode()是以某种方式将字符转换为看起来相同但内部不同的特殊字符,因此MySQL无法读取它们?
我在.htaccess中有一个重写规则
RewriteRule ^page/(.*)$ my-php-page.php?cid=$1
我传递的编码字符串包含像=和的字符+- 这是编码的字符串;
V1ihnKpip6WpnY7Wm5zn2+6YUtLf2KCh4eKY
当它在完整的URL中时
http://www.example.com/my-php-page.php?cid=V1ihnKpip6WpnY7Wm5zn2+6YUtLf2KCh4eKY
现在这不符合+标志.所以我想发送cid随后变成的urlencoded;
http://www.example.com/my-php-page.php?cid=V1ihnKpip6WpnY7Wm5zn2%2B6YUtLf2KCh4eKY
该+标志变成%2B.这很好用,除非我通过.htaccess中的RewriteRule尝试这个 - 它不起作用.所以URL就是
http://www.example.com/page/V1ihnKpip6WpnY7Wm5zn2%2B6YUtLf2KCh4eKY
mypage.php文件实际上接收了cid由于V1ihnKpip6WpnY7Wm5zn2 6YUtLf2KCh4eKY某种原因替换%2B为空格.
任何想法为什么它可能会这样做?我该如何解决呢?非常感谢您的帮助.
编辑
我刚刚找到了这个解决方案 - 带有urlencode和"&"bug的PHP $ _GET var - 但是我想知道是否有更优雅的解决方案而.htaccess不是urlencode两次使用字符串?
encodeURIComponentJavaScript中有相反的API 吗?假设您有一个字符串,其中有一堆%25等用于URI。是否有API可以将un-encodeURI取消编码?
谢谢。
我有加密/解密电子邮件的问题,我只是发送这样的邮件链接
http://www.domain.com/mycontroller/myfunction/McvBsce........etc
Run Code Online (Sandbox Code Playgroud)
最后一段实际上是一个加密的电子邮件ID,当我点击此链接时,我解密了这封电子邮件并更新了我的数据库中的stus.所有操作都正确.
问题:当这样的网址时
http://www.domain.com/mycontroller/myfunction/McvB/sce
Run Code Online (Sandbox Code Playgroud)
它显示404错误,因为斜杠包含在生成的加密密钥中.如何在生成加密时忽略斜杠,这是我的主要问题,其余工作正常.
我发现它encodeURIComponent在大多数情况下都有效,但是当我传递数组时,它无法按预期工作。这是我的代码:
var orderArray = [223746903996283,223525203804543]
var orders = encodeURIComponent(orderArray);
Logger.log(orders);
Run Code Online (Sandbox Code Playgroud)
orders值是223746903996283%2C223525203804543。
预期值为%5B223746903996283%2C223525203804543%5D。
提前非常感谢您。
我试图通过Angular中的queryParam,它由这样的对象数组组成fooArray = [{foo: 'bar', foo: false}, {foo: 'bar', foo: false}]。在URL queryParam中,我收到以下消息:使用时,%255BencodeURI(JSON.stringify(this.fooArray))
我试过使用encodeURI(JSON.stringify())将数组编码为queryParam和JSON.parse(decodeURIComponent())以检索参数
fooArray = [{foo: 'bar', foo: false}, {foo: 'bar', foo: false}]
fooParam: encodeURI(JSON.stringify(this.fooArray))
JSON.parse(decodeURIComponent(params["fooParam"]))
urlencode ×10
php ×4
javascript ×3
urldecode ×3
apache ×2
mod-rewrite ×2
.htaccess ×1
ajax ×1
arrays ×1
codeigniter ×1
coldfusion ×1
compression ×1
django ×1
encoding ×1
encryption ×1
jquery ×1
mysql ×1
string ×1
templates ×1
url ×1