码迷,mamicode.com
首页 > Web开发 > 详细

web.input()和web.data() 遇到特殊字符

时间:2019-04-07 09:30:47      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:网站   输入   字符   研究   hash   .com   ash   input   解决   

使用web.py的时候,web.input()和web.data() 遇到特殊字符,处理方式就会出现差异。

web.input() 可以处理get和post方式传递的输入,对于特殊字符不会自动转码,hashlib.md5等函数如何处理还需要再研究。

web.data() 仅可以传递post方式传递的输入,对于特殊字符会自动转码, hashlib.md5等函数也就可以完美准确地处理了。

例如:

用户输入了test@test.com,使用web.input 接收到的就是test@test.com,而使用web.data接收到的就是test%40test.com,如果混用这两种方式,而且不做额外的编码和解码,就会出现信息不一致的情况。

我做项目的时候,注册的时候接收用户的输入,使用web.input 接收用户的输入,登陆的时候使用web.data接收用户的输入。结果是:只要用户的密码中包含了特殊字符,就会出现无法登陆的情况。

解决方案是:将注册环节接收用户输入的方式也改为web.data,一方面注册和登陆的接收方式一致了,一方面由于web.data方式会对特殊字符进行转码,避免了大部分潜在的问题!

 

补充:http://webpy.org/ web.py的官方网站。

web.input()和web.data() 遇到特殊字符

标签:网站   输入   字符   研究   hash   .com   ash   input   解决   

原文地址:https://www.cnblogs.com/lihuanhuan/p/10663801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!