标签: query-string

在PHP中解码查询字符串

好的,所以我使用mod_rewrite和PHP编写了一个REST API实现.我通过HTTP DELETE请求(...集体呻吟?)接受一个查询字符串.关于前两个语句的智慧的争论不谈,我发现PHP不会自动解析DELETE请求的请求体(即,尽管形式编码的查询字符串出现在请求体中,$ _POST仍为空).这并不特别让我感到惊讶.我发现令人惊讶的是,我一直无法找到用于解析查询字符串的内置PHP函数?我只是忽略了什么?我可以这样做:

public function parseQS($queryString, &$postArray){
  $queryArray = explode('&', $queryString);
  for($i = 0; $i < count($queryArray); $i++) {
    $thisElement = split('=', $queryArray[$i]);
    $postArray[$thisElement[0]] = htmlspecialchars(urldecode($thisElement[1]));
  }
}
Run Code Online (Sandbox Code Playgroud)

...奇怪的是,没有PHP内置来处理这个问题.另外,我怀疑我不应该使用htmlspecialcharacters和urldecode来擦除表单编码的值...这是一种不同的编码,但是我也无法识别我应该使用哪种PHP函数来解码表单编码数据.

任何建议将不胜感激.

php api rest formencode query-string

4
推荐指数
3
解决办法
9547
查看次数

从查询字符串中获取数据

我有这个查询字符串,将打开我的页面. http://www.a1-one.com/newpage.aspx?email=er@old.com&stuid=123456

现在当这个页面加载时,在page_load上,我想要收集两个不同的变量中的电子邮件和stuid.所以我可以使用它们插入我的数据库(sql server)如何在vb.net中完成

vb.net pageload query-string

4
推荐指数
1
解决办法
8297
查看次数

如何通过JQuery ajax函数发送查询字符串中的特殊字符?

我需要将短消息发送到服务器.有时它们有特殊字符,如下例所示:

&message=Joining a game of Commands & Colors: Ancients.
Run Code Online (Sandbox Code Playgroud)

如何从查询字符串中转义特殊字符?

我正在使用Django.这是我需要编码的字段:

<textarea class="text-area" id="message" name="message" rows="3" cols="30">
   Joining a game of {{ game.name }}.
</textarea>
Run Code Online (Sandbox Code Playgroud)

更新:我意识到POST正在通过JQuery的ajax函数:

  $("#checkin-button").click(function() { 
          var mid = $("input#mid").val();
          var message = $("textarea#message").val();
          var facebook = $('input#facebook').is(':checked');
          var name = $("input#name").val();
          var bgg_id = $("input#bgg-id").val();
          var thumbnail = $("input#thumbnail").val();
          var dataString = 'mid='+mid+'&message='+message+'&facebook='+facebook+'&name='+name+'&bgg_id='+bgg_id+'&thumbnail='+thumbnail;  
    $.ajax({  
      type: "POST",  
      url: "/game-checkin",  
      data: dataString,  
Run Code Online (Sandbox Code Playgroud)

所以我没有正确传递(urlencoded)对吗?

更新:在用JQuery意识到问题之后,我能够通过用以下代码替换数据变量赋值来修复它:

    data: {"mid": mid, "message": message, "facebook": facebook, 
"name": name, "bgg_id": bgg_id, "thumbnail": thumbnail}
Run Code Online (Sandbox Code Playgroud)

django jquery post escaping query-string

4
推荐指数
1
解决办法
4522
查看次数

如何在Dart中解析查询字符串?

如何在Dart中安全地解析查询字符串?

我们假设我的q字符串值为:

?page=main&action=front&sid=h985jg9034gj498g859gh495
Run Code Online (Sandbox Code Playgroud)

理想情况下,代码应该在服务器和客户端都可以工作,但是现在我将满足于工作的客户端代码.

query-string dart

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

如何使用具有相同名称的多个表单输入?

我有一个从表单中的循环创建的复选框(我不知道它们的数量).

<form>
<input type="checkbox" name="id" value="id">
<input type="checkbox" name="id" value="id">
...//create in a loop
<input type="checkbox" name="id" value="id">
</form>
Run Code Online (Sandbox Code Playgroud)

我的问题是我如何阅读它们,如果我使用<?php $_REQUEST['id']; ?>它,它只读取最后一个复选框.

html php forms html-input query-string

4
推荐指数
1
解决办法
275
查看次数

从内联css中删除查询字符串

我在我的小网站上使用django压缩器,我不想在图像上使用查询字符串.例如images/header.png?9e1ed2cd7d15

有没有办法禁用它?

django query-string django-compressor

4
推荐指数
1
解决办法
508
查看次数

Node.js忽略除第一个之外的所有查询字符串参数

我不能说服Node.js看到我的URL中的第二个参数:

http://localhost:8888/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00
Run Code Online (Sandbox Code Playgroud)

我使用以下命令启动Node.js服务器:

node --debug ./router_rest.js
Run Code Online (Sandbox Code Playgroud)

我的"router_rest.js"文件中有以下代码:

require("http").createServer(function (req, res) {
  //  For PUT/POST methods, wait until the
  //  complete request body has been read.
  if (req.method==="POST" || req.method==="PUT") {
    var body = "";
    req.on("data", function(data){
      body += data;
    })

    req.on("end", function(){
      return routeCall(req, res, body);
    })

  } else {
    return routeCall(req, res, "");
  }
}).listen(8888);
Run Code Online (Sandbox Code Playgroud)

我从命令行进行以下调用:

curl http://localhost:8888/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00
Run Code Online (Sandbox Code Playgroud)

当我调试并检查'req'参数时(在上面的匿名函数中),url属性显示为:

/cities?tag=123
Run Code Online (Sandbox Code Playgroud)

我原以为报告的网址是:

/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00
Run Code Online (Sandbox Code Playgroud)

即使我切换参数,节点仍然只能看到第一个.

为什么最后一个参数(即日期)被截断了?

javascript rest curl node.js query-string

4
推荐指数
1
解决办法
822
查看次数

WebRequest:查询字符串数据与x-www-form-urlencoded内容

我正在尝试按照以下说明调用Google的OAuth2身份验证服务:https://developers.google.com/accounts/docs/OAuth2ForDevices

我将所有必需的参数放入查询字符串并发送请求.这适用于"获取用户代码"部分,但不适用于"获取访问和刷新令牌"部分.

经过多次游戏并获得400 Bad Request错误后,我发现,您可以使用FormUrlEncodedContent创建请求,而不是将数据放入查询字符串中,并通过application\x-www-form-urlencoded将内容作为内容发送内容类型.

这是以前的代码:

var requestMessage = new HttpRequestMessage();
requestMessage.Method = "POST";
requestMessage.RequestUri = new Uri(fullUrl);
Run Code Online (Sandbox Code Playgroud)

其中fullUrl是这样的:

https://accounts.google.com/o/oauth2/device/code?client_id=812741506391-h38jh0j4fv0ce1krdkiq0hfvt6n5amrf.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile
Run Code Online (Sandbox Code Playgroud)

新代码是:

var requestMessage = new HttpRequestMessage();
requestMessage.Method = "POST";
requestMessage.RequestUri = new Uri(url);
requestMessage.Content = new FormUrlEncodedContent(CreateDictionary(queryStringNames, queryStringValues));
Run Code Online (Sandbox Code Playgroud)

网址是:

https://accounts.google.com/o/oauth2/device/code
Run Code Online (Sandbox Code Playgroud)

queryStringNames和queryStringValues是所需参数的名称和值的字符串数组.

这两种方法有什么区别?是否可以安全地假设所有POST调用都可以使用URL编码内容请求而不是将数据放入查询字符串中?

c# webrequest query-string

4
推荐指数
1
解决办法
2166
查看次数

在nginx重写中使用$ args导致重复的URL参数

在我的一个位置规则中,我试图重写URL:

rewrite ^ $topicredirecturi?$args permanent;
Run Code Online (Sandbox Code Playgroud)

$topicredirecturi 在映射文件中计算,映射例如URL等

http://www.topics.com/companies/cit-group-inc/index.html
Run Code Online (Sandbox Code Playgroud)

http://www.topics.com/companies/cit_group_inc/index.html
Run Code Online (Sandbox Code Playgroud)

当我使用URL参数发出请求时,例如:

http://www.topics.com/companies/cit-group-inc/index.html?rss=1
Run Code Online (Sandbox Code Playgroud)

我得到以下带有重复参数的重写URL:

http://www.topics.com/companies/cit_group_inc/index.html?rss=1&rss=1
Run Code Online (Sandbox Code Playgroud)

同样,URL

http://www.topics.com/companies/cit-group-inc/index.html?rss=1&bob=2
Run Code Online (Sandbox Code Playgroud)

被改写为

http://www.topics.com/companies/cit_group_inc/index.html?rss=1&bob=2&rss=1&bob=2
Run Code Online (Sandbox Code Playgroud)

有人知道这里会发生什么吗?

rewrite nginx query-string

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

使用RedirectToAction而不传递查询字符串参数/路由值

我有一个"Thingy"控制器,看起来像:

[HttpPost]
public ActionResult DeleteConfirmed(long? id) {
    // <Validate ID, delete associated records>
    return RedirectToAction("Index", "Thingy");
}
Run Code Online (Sandbox Code Playgroud)

但是,RedirectToAction继续使用参数中的id填充其路由值,而我希望将id保留为null,以便将其重定向到www.mywebsite.com/Thingy而不是www.mywebsite.com/Thingy/1

事实上,我可以www.mywebsite.com/Thingy直接访问,它按预期工作.

我试过了:

RedirectToAction("Index", "Thingy")
RedirectToAction("Index", "Thingy", new { })
RedirectToAction("Index", "Thingy", new { id = (long?)null })
Run Code Online (Sandbox Code Playgroud)

最后一个特别有趣,因为它重定向到www.mywebsite.com/Thingy?id=1其他人重定向到的位置www.mywebsite.com/Thingy/1.

c# asp.net-mvc routevalues query-string

4
推荐指数
1
解决办法
5457
查看次数