编码问题

qqsweb 2008-11-01 04:57:54


<form name="form1" method="post" action="admin.php?do=save" ><table width="300" border="0" cellspacing="0" cellpadding="0">

<tr>
<td width="200">
<label>新域名:
<!--<input name="do" type="text" size="20" maxlength="200">-->
<input name="Site" type="text" size="20" maxlength="200">
<p>到期时间:
<input name="Time" type="text" size="20" >
<p>域名管理地址:
<input name="Web" type="text" size="20" >
<p>主机管理地址:
<input name="Ftp" type="text" size="20" >
<p>服务器运行监控yes.gif传到FTP:
<input name="Img" type="text" size="20" >
<p>统计代码:
<input name="tongji" type="text" size="20" >
</label>
</td>
<td width="100"><label>
<input type="submit" name="Submit" value="提交">
</label></td>
</tr>
</table>
</form>


<input name="tongji" type="text" size="20" >
这句输入的内容 我想用base64_encode加下码 其他的不加 如何写呢
...全文
73 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqsweb 2008-11-01
  • 打赏
  • 举报
回复
已经差不多实现了 谢谢大家 热心回帖
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qqsweb 的回复:]
引用 9 楼 fxs_2008 的回复:
我测试了一上,在Post表单中上传时.在input中输入&aaa等,接收正常,不会丢失aaa内容


你测试的代码给我看试试
[/Quote]

我在一个表单中插入了记录,显示正常
你在一个表单中测下,输入 aaa&bbbb,接收打印Print_r($_POST);
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复

花了点时间实测了一下:


结论如下:

如果POST传值,&能作为字串传过去

如果GET传值,要将&编码,用urlencode即可



//测试下面的
echo ' <a href="b.php?id='.urlencode('32343&3434').'&b=4" > aaa</a>';
echo ' <a href="b.php?id='.urlencode('32343&3434&b=4').'" > aaa</a>';
echo ' <a href="b.php?id=32343&3434&b=4" > aaa</a>';

接收页
b.php
print_r($_GET);



qqsweb 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fxs_2008 的回复:]
我测试了一上,在Post表单中上传时.在input中输入&aaa等,接收正常,不会丢失aaa内容
[/Quote]

你测试的代码给我看试试
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复
我测试了一上,在Post表单中上传时.在input中输入&aaa等,接收正常,不会丢失aaa内容
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复
测试了一下,不行
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复
如果是表单POST上传,你在接收页打印一下

print_r($_POST);就可以知道接收是否正常?


如果你用get传值 比如一个参数是id="32343&3434" ,这时就要做编码处理了,一般将它转为实体即
比如:echo '<a href=a.php?id='.htmlspecialchars(urldecode('32343&3434')).' >aaa</a>';


这个将&变成实体,可以传过去,接收页自动解码,不要处理


print_r($_GET);

看看便知
qqsweb 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fxs_2008 的回复:]
理论上,post上传默认是base64_encode;

所以不是传值的问题,而是你接值后入数据库时数据库自动给处理了

所以,入库前最好转义,一般加addslashes(),处理过,不会有问题
[/Quote]

这个是tongji这个里头包含&这个符号 比如一个统计代码http://wjkljls.com/1.php?id=32343&user=3434

这样子 就出现了错误 http://wjkljls.com/1.php?id=32343后面的就取不到了 实在编码不了 只有换个获取

或者说在post前 将tongji这个输入的把&替换成#号 让在调用了时候我在替换回来

问题是我不知道怎么加代码
<input name="tongji" type="text" size="20" >
要把&替换成#
fxs_2008 2008-11-01
  • 打赏
  • 举报
回复
理论上,post上传默认是base64_encode;

所以不是传值的问题,而是你接值后入数据库时数据库自动给处理了

所以,入库前最好转义,一般加addslashes(),处理过,不会有问题
penglewen 2008-11-01
  • 打赏
  • 举报
回复
那用js,首先在客户端编码一下,再传服务端.
http://www.phpchina.com/html/81/n-33481.html
这里面有js的base64_encode方法,可以与php里面base64_encode相互转换。
qqsweb 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 penglewen 的回复:]
在你的admin.php页面获取tongji时候加:
$tongji = base64_encode($_POST['tongji']);
其它的不加就直接:
$site = $_POST['site'];
注意在读数据的时候加了base64_encode要用base64_decode来解码
[/Quote]

这个行不通的 就是因为提交的时候 有部分特殊符号让提交的数据不完整 后来我想到用base64_encode编码来解决这个错误

penglewen 2008-11-01
  • 打赏
  • 举报
回复
在你的admin.php页面获取tongji时候加:
$tongji = base64_encode($_POST['tongji']);
其它的不加就直接:
$site = $_POST['site'];
注意在读数据的时候加了base64_encode要用base64_decode来解码
ttm1984 2008-11-01
  • 打赏
  • 举报
回复
写个JavaScript加密程序啊,将tongji里的value加密后提交。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧