这是页面提交图:
这是我的表单提交代码:
这是数据库的结构和代码:
图片描述
//图片里面connect 用的还是本地测试的地址
就搞不懂为啥。。会莫名奇妙的一些 空白数据,和重复的数据出来。。求大神
这是页面提交图:
这是我的表单提交代码:
这是数据库的结构和代码:
图片描述
//图片里面connect 用的还是本地测试的地址
就搞不懂为啥。。会莫名奇妙的一些 空白数据,和重复的数据出来。。求大神
在服务器端生成一个随机字符串,在返回的表单页面的时候把这个字符串放个隐藏的input里,提交的时候把这个一起提交上去,如果两个字符串相等,就提交到数据库,不相等说明表单提交过或非法,就不要插入了
重复数据有可能是你未设置重复提交,手滑在鼠标点击的那一刻,瞬间点了N次造成的。
另外,空白数据有可能是这sql语句造成的
$sql = "insert into express values(null,'".$message."',".$ip.",".$time.")";
为了迎合需求,我只是将 这里的 message数据设置了一个唯一性,也就是说不会产生重复的数据,但是会有一个空白数据会一直存在那里,显然这不是我最终想要的结果,如果想要更加深入的了解的话,还得再花时间,如果只是一个很小的需求,那样做作也没事了1.
5 回答3.3k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
首先,你获取到输入框中的值,并没有进行首尾的空格过滤操作。所以,即使你验证是否为空,答案也是否。
第二,你使用了
encodeURIComponent()
函数对字符串作为 URI 组件进行编码。那么空格也将会被转换为一些字符串,所以,你对比是否为空,更加不可能。所以,提交用户输入最基本过滤是
JS:
这一步会去除首尾空格。
PHP:
这一步在php里面也会去除首尾空格。最基本验证。