我使用Repeater Control在我的WebSite中显示数据.我在Repeater Control中使用HyperLink在数据库中显示我的表的一个字段.
当您单击时,我希望该链接转到另一个页面并使用QueryString将字符串发送到该[页面].我不知道我是怎么做的 - 你能解释一下怎么做吗?
我在ASP.net中使用Linq.
我需要发送以下查询字符串:
http://prod.intranet.siemens.com.br/drvs/index.aspx?page=2&pag=4&varpatch=%20C:\Documents%20and%20Settings\OPE253\My%20Documents\Ca$@#!
Run Code Online (Sandbox Code Playgroud)
然后我尝试将此分配给一个字符串,但.NET打破了字符串
http://prod.intranet.siemens.com.br/drvs/index.aspx?page=2&pag=4&varpatch=%20C:\Documents%20and%20Settings\OPE253\My%20Documents\Ca$@
Run Code Online (Sandbox Code Playgroud)
'#"不会出现在查询字符串中
有任何想法吗?
我编写了代码,从URL中获取一个密码,然后加密密码.我知道想要将加密的"密钥"放回URL而不是原始Pin.如何才能做到这一点?
我抓住了Pin:
string Pin = Request.QueryString["PIN"];
Run Code Online (Sandbox Code Playgroud)
是否有相反的方法将其放回URL中?
非常感谢.
感谢您的反馈意见.是的我知道这一点,但它是好的,因为它只是为了学习目的.不会使用敏感信息.
这只是我正在研究的一个小程序.
它现在有效,唯一的问题是使用后:
Response.Redirect("page.aspx?key=" + encryptedKey);
Run Code Online (Sandbox Code Playgroud)
我似乎无法在页面上显示任何内容; 例如,更新标签.
我有一个非常长的查询字符串变量(值大约600个字符),我试图从PHP脚本到达.长的不存在$_REQUEST或者$_GET另一个具有较短值长度的变量是.我已经削减了一些进行测试,当值达到549或更高时,它开始缺失.
幸运的是,长变量存在,$_SERVER["QUERY_STRING"]所以现在我只是从那里拿起它,但是好奇这是一个服务器设置(Apache 2)还是我的PHP设置(5.2.17)或脚本的东西?
顺便说一句,查询字符串本身不是我控制的东西,所以不幸的是我无法改变它的工作原理,例如.通过POST发送.
鉴于一些任意网址:
view.php?viewid=blahblahblah
Run Code Online (Sandbox Code Playgroud)
有没有办法可以编码一个查询字符串,该字符串具有上述URL作为变量并保留它的(view.php)查询字符串?
显然,对于某些网址:
obvious.php?obvid=foobarzot&old_url=view.php?viewid=blahblahblah
Run Code Online (Sandbox Code Playgroud)
根本不会工作,但有一个PHP函数,我可以编码view.php,以便我可以传递它?
干杯!
我遇到了有关URL重写的问题.我正在使用Apache的mod重写来重写URL.例如,我重写了URL
www.website.com/some/path/ 至 request.php?string=some/path/.然后我显示该URL的具体响应.现在我的重写规则如下所示:
RewriteRule ^([a-z_/\?]+)$ request.php?string=$1
Run Code Online (Sandbox Code Playgroud)
但问题是,如果我有URL www.website.com/some/data/?id=12&name=John并重写它,我得到这样的东西:request.php?string=some/data/?id=12&name=John.似乎在这个例子中另一个问号混淆了PHP.如果我尝试$_GET['string']在request.php中检索,我得到的是:some/data/.
有关进一步参考,Gmail会使用与其URL相似的内容:
https://mail.google.com/mail/?ui=1&shva=1
我想设置target =_blank以下代码,以便在新窗口中打开Test.aspx页面.
Response.Redirect("Test.aspx?D1=" + TextBox1.Text + "&D2=" + TextBox2.Text);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在寻找最简洁的URL而不是最短的PHP代码.我不希望我的用户被编码数组时PHP创建的可怕URL吓到.
如果只填充一个数组($fn),PHP将在查询字符串中执行大量重复http_build_query:
$fs = array(5, 12, 99);
$url = "http://$_SERVER[HTTP_HOST]/?" .
http_build_query(array('c' => 'asdf', 'fs' => $fs));
Run Code Online (Sandbox Code Playgroud)
结果$url是
http://example.com/?c=asdf&fs[0]=5&fs[1]=12&fs[3]=99
Run Code Online (Sandbox Code Playgroud)
如何将其降至最低(使用PHP或在PHP中轻松实现的方法)?
如何获取查询字符串中的原始(未解码)值?
我找到了Request.Url.Query,它成功地为我提供了原始查询字符串.但是,它给了我一个类型'字符串'和整个QS内容:我如何获得键/值对?
我确实找到了HttpUtility.ParseQueryString,但这迫使我做解码.我需要原始名称/值对.
我必须为此实现自己的查询字符串解析吗?有没有人做过一个我可以使用忽略编码?我找到了Mono实现,但这也强制编码.
谢谢!
编辑:我正在寻找这个的原因是因为某人(不是我!)编写了一些代码来加密一个值并将其放在查询字符串中.但是他们忘了先编码.Request.Querystring()正在进行的解码使得无法解密大约50%的解码,因为加密会留下"+"和"."之类的内容.
我正在尝试创建一个函数来从URL中删除特定的查询字符串及其值.
例如:如果我有一个网址
var url = www.foo.com/test?name=kevin&gender=Male&id=1234
如果我传递名称 - >它应该删除名称的键和值.网址应该成为
www.foo.com/test?gender=Male&id=1234
我有一个功能 ReturnRefinedURL(key,url)
我在功能中这样做
function ReturnRefinedURL(key,url)
{
var Value = getParameterByName(key); // This returns kevin
var stringToBeRemoved = 'key +'='+ Value+'&'; // string becomes 'name=kevin&'
return url.replace(stringToBeRemoved, '');
}
Run Code Online (Sandbox Code Playgroud)
//在谷歌发现:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
Run Code Online (Sandbox Code Playgroud)
所以当我打电话给方法时 ReturnRefinedURL('name',window.location.href);
这个工作!!! 但寻找更优雅和万无一失的方法.
*如果name参数是查询字符串中的第二个参数,则此方法不起作用.('&'仍将保留)
query-string ×10
php ×4
asp.net ×3
c# ×2
html ×2
apache ×1
arrays ×1
encryption ×1
get ×1
javascript ×1
jquery ×1
repeater ×1
url ×1
vb.net ×1