社区
基础编程
帖子详情
一个看似很简单的问题(关url编码),急! 解决即时送分!
Jzealot
2005-02-24 01:48:02
一个表单,有一个文本框xx
用get提交表单后,我希望xx在IE地址栏里显示成base64编码,直接提交是不行的,xx会显示为明文
我的意思就是在提交表单前能把xx转换成base64编码
...全文
337
10
打赏
收藏
一个看似很简单的问题(关url编码),急! 解决即时送分!
一个表单,有一个文本框xx 用get提交表单后,我希望xx在IE地址栏里显示成base64编码,直接提交是不行的,xx会显示为明文 我的意思就是在提交表单前能把xx转换成base64编码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
答案2003
2005-02-25
打赏
举报
回复
base64_encode()
base64_decode()
elxl
2005-02-25
打赏
举报
回复
我喜欢用 base64_encode / base64_decode 函数:
$value_of_url = base64_encode($value_string);
$query_string = "http:\\localhost\index.php?VAR=$value_of_url";
HTTPGET($query_string); //没有这个函数的
keaizhong
2005-02-25
打赏
举报
回复
楼主为什么不用POST方式提交呢?
你选择了GET方式就是明文喽。
我所贴的已经是例子了。还要怎么样子的呢?
Jzealot
2005-02-24
打赏
举报
回复
这个问题真的很难?
Jzealot
2005-02-24
打赏
举报
回复
xuzuning(唠叨)大哥,这个不能解决中文问题
输入中文得不到正解的base64编码
xuzuning
2005-02-24
打赏
举报
回复
这是一个用js做base64编码和解码的例子。经测试没有问题
你可根据你的需求在提交时使用其中的编码函数
<HTML>
<HEAD>
<TITLE>Base64</TITLE>
<script language=javascript>
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
/* c3 */
do {
c3 = str.charCodeAt(i++) & 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i < len && c3 == -1);
if(c3 == -1)
break;
out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
/* c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i < len && c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}
function doit() {
var f = document.f
f.output.value = base64encode(utf16to8(f.source.value))
f.decode.value = utf8to16(base64decode(f.output.value))
}
</script>
</HEAD>
<BODY>
<H1>Base64</H1>
<FORM NAME="f">
原码<BR>
<TEXTAREA NAME="source" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
Base64 encode<BR>
<TEXTAREA NAME="output" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
Base64 decode<BR>
<TEXTAREA NAME="decode" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
<INPUT TYPE=BUTTON VALUE="转换" ONCLICK="doit()">
</FORM>
</BODY>
</html>
Jzealot
2005-02-24
打赏
举报
回复
楼上能举个提交表单的例子不?
<form name="form1" method="get" action="test2.php?kao=', urlencode($kao),'">
<input name="kao" type="text" id="kao">
<input type="submit" name="Submit" value="提交">
</form>
我这样用怎么不行呢
在ie地址栏得到的还是明文
是不是这样用的?
Jzealot
2005-02-24
打赏
举报
回复
楼上能举个提交表单的例子不?
<form name="form1" method="get" action="test2.php?kao', urlencode($kao),'">
<input name="kao" type="text" id="kao">
<input type="submit" name="Submit" value="提交">
</form>
我这样用怎么不行呢
在ie地址栏得到的还是明文
keaizhong
2005-02-24
打赏
举报
回复
urlencode
(PHP 3, PHP 4 )
urlencode -- 编码 URL 字符串
描述
string urlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页:
例子 1. urlencode() 示例
<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
注意:小心与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并使用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP 通过 arg_separator .ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 & 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &,而仅使用 htmlentities(urlencode($data)) 对你的 URL 进行编码。
例子 2. urlencode() 与 htmlentities() 示例
<?php
echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';
?>
urldecode
(PHP 3, PHP 4 )
urldecode -- 解码已编码的 URL 字符串
描述
string urldecode ( string str)
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。
例子 1. urldecode() example
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
$i++;
}
?>
keaizhong
2005-02-24
打赏
举报
回复
urldecode -- 解码已编码的 URL 字符串
urlencode -- 编码 URL 字符串
用这两个函数吧。
java入职学习一之
编码
规范
好的
编码
规范可以尽可能的减少
一个
软件的维护成本,并且几乎没有任何
一个
软件,在其整个生命周期中,均由最初的开发人员来维护。 好的
编码
规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码。 好的...
Java入门
编码
规范之小白崛起
Java代码规范能够给业界带来
一个
标准,促使整体行业代码规范水平得到提高,最终能够帮助企业和开发者提升代码质量和降低代码故障率。 基于阿里巴巴Java开发手册–安全规约、Mysql数据库 “安全生产,责任重于泰山。...
JS获取
URL
中文参数 显示乱码
search=%E4%BB%8A%E5%A4%A9%E7%9C%9F%E5%A5%BD,当然,现在=号后边是看不懂的,但这并不是乱码,而是一种
编码
格式,即escape格式(的)字符串,为了证实真实性,我们先对中文进行
编码
,例: 可以证实两个字符串是...
从入门到精通!Android内存泄漏总结,成功拿下大厂offer
前言 今天我给大家再次分享一下,我最近的一些读书的感想,思考起来,确实能够给自己带来一些真实的帮助和启发...在这种模式下,我们会发现,很多
看似
全新的
问题
,其实只不过是狡猾的旧
问题
换了一身装扮再次出现而已。
GTS来了!阿里微服务架构下的分布式事务
解决
方案
阿里妹导读:分布式事务已经成为微服务落地最大的阻碍,也是非常具有挑战性的
一个
技术难题。 为此,今天我们邀请阿里高级技术专家于皋,和大家深入探讨微服务架构下,分布式事务的各种
解决
方案,并重点为大家解读...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章