社区首页 >问答首页 >已转移到新主机/服务器-现在在使用MySQL进行表单验证时遇到问题

已转移到新主机/服务器-现在在使用MySQL进行表单验证时遇到问题
EN

Stack Overflow用户
提问于 2012-01-22 19:25:18
回答 2查看 51关注 0票数 1

我在新的主机上遇到了很多问题,但我越看越清楚,它们似乎都与验证登录、注册和提交时在我的数据库中进行检查有关。这里有一个例子。

我使用jQuery to validate forms。当用户尝试登录时,我用它来确定用户名是否确实存在(别担心,我也会检查服务器端)。在我的开发服务器上,这是完美无缺的。如果您不熟悉jQuery验证,基本上它会以某种JSON的形式向服务器返回true或false,但我对此并不完全了解。

代码:

代码语言:javascript
代码运行次数:0
复制
//Database Information vars (removed)

mysql_connect ($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$username = mysql_real_escape_string($login_username); // In validation, I can grab inputs like this.

$query = "SELECT username FROM registerusers WHERE username='$username';";

$res = mysql_query($query);

if (mysql_num_rows($res) > 0) {
    $output = true;
} else {
    $output = false;    
}

echo json_encode($output);

这样做的问题是,它总是引用第一个子句并返回true,即使用户名不存在。不管出于什么原因,我认为mysql_num_rows($res)总是返回1。

这段代码(除了新的数据库变量之外,我已经检查了一百次,以保证代码的准确性)仍然可以在我的开发服务器上正常工作。我只能假设这与新服务器有关,这就是为什么我问Stack Overflow,因为我不知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-22 19:57:04

问题是register_globals已启用。这带来了一个高度安全的问题,这就是它被禁用和弃用的原因。

$login_username更改为$_GET['login_username']可以解决此问题。

使用$_GET和$_POST超级全局数组不是安全问题,但是您应该始终清理您的输入(就像使用mysql_real_escape_string()一样)。

票数 1
EN

Stack Overflow用户

发布于 2012-01-22 19:57:45

您是否尝试过将MySQL连接设置为一个变量,然后调用该连接变量作为mysql_query中的第二个参数?这有时会让我在一些服务器上遇到问题,特别是当它们默认关闭某些调试方法、错误和警告时:

代码语言:javascript
代码运行次数:0
复制
//Database Information vars (removed)

$connect = mysql_connect ($dbhost, $dbuser, $dbpass) or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$username = mysql_real_escape_string($login_username); // In validation, I can grab inputs like this.

$query = "SELECT `username` FROM `registerusers` WHERE `username` = '".$username."';";

$res = mysql_query($query, $connect);

if (mysql_num_rows($res) > 0) {
    $output = true;
} else {
    $output = false;    
}

echo json_encode($output);

我还将$query更改为带有变量的连接字符串,因为我工作过的一些服务器有时在将变量放在字符串内而不使用"..“分隔它们方面很挑剔。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8963931

复制
相关文章
再说表单验证,在Web Api中使用ModelState进行接口参数验证
上篇文章中说到了表单验证的问题,然后尝试了一下用扩展方法实现链式编程,评论区大家讨论的非常激烈也推荐了一些很强大的验证插件。其中一位园友提到了说可以使用MVC的ModelState,因为之前通常都在Web项目中用没在Api项目用过,想想Api方法接收的多参数都封装成了一个实体类,独立于数据Model层,这样其实很方便用ModelState做验证,于是尝试了一下。
HOHO
2020/04/27
2.4K0
MySQL使用遇到问题总结
在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号,注意检查编写sql
汀丶人工智能
2022/12/21
4720
MySQL使用遇到问题总结
提交表单时input字段非空验证
需求,当提交表单的时候,如果要验证的字段为空,则弹出提示框提示请完善表单信息,并且 return;不执行下一步。
王小婷
2019/08/07
3K0
SpringMVC表单验证器的使用
本章讲解SpringMVC中怎么通过注解对表单参数进行验证。 SpringBoot配置 使用springboot, spring-boot-starter-web会自动引入 hiberante-validator, validation-api依赖。 在 WebMvcConfigurerAdapter实现类里面添加验证器及国际化指定资源文件。 @Override public Validator getValidator() { LocalValidatorFactoryBean validat
Java技术栈
2018/03/30
1.8K0
SpringMVC表单验证器的使用
SpringBoot使用Hibernate Validator表单验证
文章目录 一、要求 二、实现步骤 2.1 新建实体类 2.2、创建控制器类UserController 2.3、在templates目录下加入input.html和success.html 2.4、修改application.properties文件 2.5 启动Practice51Application主类,然后访问[http://localhost:8080/practice5_1/](http://localhost:8080/practice5_1/) 2.6输入如下数据,点击添加 一、要求 用户
别团等shy哥发育
2023/02/25
5700
SpringBoot使用Hibernate Validator表单验证
Laravel Validation 表单验证(二、验证表单请求)
创建表单请求验证 面对更复杂的验证情境中,你可以创建一个「表单请求」来处理更为复杂的逻辑。表单请求是包含验证逻辑的自定义请求类。可使用 Artisan 命令 make:request 来创建表单请求类:
joshua317
2022/10/31
29.3K0
vue element-ui 表单验证 第一次表单验证的结果,在第二次表单验证时仍然存在
首先我们还是看一下文章:https://blog.csdn.net/weixin_37930716/article/details/90234705  的内容
acoolgiser
2020/05/16
2.3K0
vant+veeValiDate表单验证的使用
1.安装VeeValidate npm install vee-validate --save 2.建立独立的valiDate.js文件 来存放验证规则和一些中文。 import { Validator } from 'vee-validate' const customizeVal = () => { let formatFileSize = function (size) { let units = ['Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', '
biaoblog.cn 个人博客
2022/08/11
1.6K0
使用jQuery Validation插件来验证表单
jQuery Validation是一个用于验证表单的jQuery插件,简单易用,已经包含了16种内置的验证规则.Github上也有更多的验证规则可以使用.这都不是重点,重点是你可以轻松的定制自己的规则. 内置规则: required – Makes the element required. remote – Requests a resource to check the element for validity. minlength – Makes the element require a give
宅蓝三木
2018/02/07
2K0
使用jQuery Validation插件来验证表单
表单数据验证方法(一)—— 使用validate.js实现表单数据验证
 好久没写博客了,真的是罪过,以后不能这样了,只学习不思考,学的都是白搭,希望在博客园能记录下自己学习的点滴,虽然记录的都是些浅显的技术,但能起到巩固自己和稍微帮助一下和我一样的菜鸡也是不错的,哈哈,不好意思,闲话扯多了。
CherishTheYouth
2019/09/11
5.7K0
表单数据验证方法(一)—— 使用validate.js实现表单数据验证
Angularjs 表单验证
<input name="id" ng-disabled="f_isEditMode()" class="form-control" ng-model="node.id" required placeholder="请输入系统唯一标识" ng-pattern="/^[\w\d_-]*$/"> <p>系统的唯一标识名称(格式:字母、数字、连字符、下划线) 如:mysql</p> <error-strings> <error-string on="my
问天丶天问
2018/06/13
2.9K0
formvalidation表单验证
官方文档:http://formvalidation.io var $formEntityProfileSearch = $("form[name=entityProfileSearch]"); var $formValidationEntityProfileSearch = $formEntityProfileSearch.data("formValidation"); //初始化表单验证 $formValidationEntityProfileSearch.revalidateField('compan
windseek
2018/05/15
3K0
Validate表单验证
validate 一、 validate的使用步骤 引入jquery.min.js 引入 jquery.validate.js 页面加载后对表单进行验证 $("#表单id名").validate({}) 在validate中的rules中编写验证规则(格式如下) 字段的name属性:“校验器”(tisps:一个输入框只有一个校验器的时候使用) 字段的name属性:{校验器:值,校验器:值}(tips:输入框需要有多个校验器的时候使用) 在validate中的messages中编写提示信息(tips格
Twcat_tree
2022/11/30
3.7K0
Validate表单验证
JavaScript 表单验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
陈不成i
2021/07/19
3.1K0
Laravel表单验证
今天来说一下laravel框架的表单验证实例代码,下面一起来看看吧! 一、场景 用户前台登录页面,如下图 二、提交方式 AJAX提交 三、说明 1、laravel框架表单提交需要有CSRF验证 2、
申霖
2020/11/23
3.5K0
Laravel表单验证
angularjs 表单验证
一、常用的表单验证指令  1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required />   2. 最小长度 验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= "{number}": <input type="text" ng-minlength="5" /> 3. 最大长度 验证表单输入的文本长度是否小于或等于某个最大值,在输入字段上使用指令ng-maxlength=
柴小智
2018/04/10
6.7K0
angularjs 表单验证
jquery 表单验证
("form :input.required").each(function(){
用户5760343
2019/10/10
3.6K0
jquery 表单验证
jsp表单验证
后面有代码,需要直接拿 toUpperCase()方法将字符串小写字符转换为大写 语法 public String toUpperCase() 或 public String toUpperCase(Locale locale) 参数 无 返回值 字符转换为大写后的字符串。 效果图如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE ht
天蝎座的程序媛
2022/11/18
3.1K0
jsp表单验证
Element表单验证
要加验证之前一定要确保已经写了 prop 属性,该属性是跟 rule 绑定在一起的,也可以在行内单独制定 rules。
leader755
2022/03/09
3.6K0
点击加载更多

相似问题

使用表单验证插件时遇到问题

40

使用JavaScript验证表单时遇到问题

50

使用mysql表进行表单验证

12

WordPress安装已转移到本地主机问题

12

在Vtiger CRM已转移到新服务器后出现警告。

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文