使用 PHP 验证大写和小写的现有数据
validation for existing data in both upper and lower case in using php
我正在处理一个有两个字段的表单。一个是代码,另一个是名称。我验证了检查数据库中的现有代码。对代码的查询似乎工作正常,但对名称不起作用,尤其是在小写的情况下。谁能帮我?这是我的代码:
<?php
session_start();
if (!isset($_SESSION["username"])) {
header("Location: unauthorize_access.php");
}
require("includes/dbconnect.php");
if (isset($_POST['save'])) {
$code = $_POST["code"];
$name = $_POST["name"];
{
mysql_query("INSERT INTO `country`(code, `name`)
Values
('$code', '$name')") or die(mysql_error());
print '<script type="text/javascript">';
print 'alert("RECORDS ADDED SUCCESSFULLY")';
header('refresh: 1; country.php');
PRINT '</script>';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Country</title>
<link rel="stylesheet" type="text/css" href="form2/view.css" media="all">
<script type="text/javascript" src="form2/view.js"></script>
<script type="text/javascript" src="form2/calendar.js"></script>
<script type="text/javascript">
function checkForm()
{
if(country.code.value == "") {
alert("Error: Code cannot be Empty!");
country.code.focus();
return false;
}
if(country.name.value == "") {
alert("Error: Name cannot be Empty!");
country.name.focus();
return false;
}
}
</script>
<script type="text/javascript" src="chk/jquery-1.2.6.min.js"></script>
<SCRIPT type="text/javascript">
<!--
pic1 = new Image(16, 16);
pic1.src = "loader.gif";
$(document).ready(function(){
$("#code").change(function() {
var code = $("#code").val();
if(code.length >= 2)
{
$("#status").html('<img src="loader.gif" align="absmiddle"> Checking availability...');
$.ajax({
type: "POST",
url: "check_con.php",
data: "code="+ code,
success: function(msg){
$("#status").ajaxComplete(function(event, request, settings){
if(msg == 'OK')
{
$("#code").removeClass('object_error'); // if necessary
$("#code").addClass("object_ok");
$(this).html(' <img src="tick.gif" align="absmiddle">');
}
else
{
$("#code").removeClass('object_ok'); // if necessary
$("#code").addClass("object_error");
$(this).html(msg);
}
});
}
});
}
else
{
$("#status").html('<font color="red">The code should have at least <strong>2</strong> characters.</font>');
$("#code").removeClass('object_ok'); // if necessary
$("#code").addClass("object_error");
}
});
});
//-->
</SCRIPT>
<SCRIPT type="text/javascript">
<!--
pic1 = new Image(16, 16);
pic1.src = "loader.gif";
$(document).ready(function(){
$("#code").change(function() {
var code = $("#code").val();
if(code.length >= 2)
{
$("#status").html('<img src="loader.gif" align="absmiddle"> Checking availability...');
$.ajax({
type: "POST",
url: "check_con.php",
data: "code="+ code,
success: function(msg){
$("#status").ajaxComplete(function(event, request, settings){
if(msg == 'OK')
{
$("#code").removeClass('object_error'); // if necessary
$("#code").addClass("object_ok");
$(this).html(' <img src="tick.gif" align="absmiddle">');
}
else
{
$("#code").removeClass('object_ok'); // if necessary
$("#code").addClass("object_error");
$(this).html(msg);
}
});
}
});
}
else
{
$("#status").html('<font color="red">The code should have at least <strong>2</strong> characters.</font>');
$("#code").removeClass('object_ok'); // if necessary
$("#code").addClass("object_error");
}
});
});
//-->
</SCRIPT><SCRIPT type="text/javascript">
<!--
pic1 = new Image(16, 16);
pic1.src = "loader.gif";
$(document).ready(function(){
$("#name").change(function() {
var code = $("#name").val();
if(code.length >= 0)
{
$("#stat_2").html('<img src="loader.gif" align="absmiddle"> Checking availability...');
$.ajax({
type: "POST",
url: "check_con.php",
data: "name="+ name,
success: function(msg){
$("#stat_2").ajaxComplete(function(event, request, settings){
if(msg == 'OK')
{
$("#name").removeClass('object_error'); // if necessary
$("#name").addClass("object_ok");
$(this).html(' <img src="tick.gif" align="absmiddle">');
}
else
{
$("#name").removeClass('object_ok'); // if necessary
$("#name").addClass("object_error");
$(this).html(msg);
}
});
}
});
}
else
{
$("#stat_2").html('<font color="red"><strong>The name cannot be empty</strong></font>');
$("#name").removeClass('object_ok'); // if necessary
$("#name").addClass("object_error");
}
});
});
//-->
</SCRIPT>
</head>
<body id="main_body" >
<img id="top" src="form2/top.png" alt="">
<div id="form_container">
<h1><a>Country</a></h1>
<form id="country" class="appnitro" enctype="multipart/form-data" method="post" onsubmit="return checkForm()">
<div class="form_description">
<h2>Country</h2>
</div>
<table border ="0px" width="100%">
<tr>
<td><label class="description" for="element_1">Code</label></td><td><input id="code" name="code" type="text" maxlength="6" Placeholder="Please enter a code" value=""/></td><td width="400" align="left"><div id="status"></div></td>
</tr>
<tr>
<td><label class="description" for="element_1">Name</label></td><td><input id="name" name="name" size="40" type="text" maxlength="40" Placeholder="Please enter a name" value=""/></td><td width="400" align="left"><div id="stat_2"></div></td>
</tr>
<tr>
<td></td><td ><input type="submit" name="save" value="Save"></td>
</tr>
</table>
</form>
这是我的 php 代码。它适用于代码字段,但不适用于名称。
<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = '';
$dbDatabase = 'pts_root';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
if(isSet($_POST['code']))
{
$code = $_POST['code'];
$sql_check = mysql_query("SELECT * FROM country WHERE code='".$code."'") or die(mysql_error());
if(mysql_num_rows($sql_check))
{
echo '<font color="red">The code <STRONG>'.$code.'</STRONG> is already exist.</font>';
}
else
{
echo 'OK';
}
}
?>
<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = '';
$dbDatabase = 'pts_root';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
if(isSet($_POST['name']))
{
$name = $_POST['name'];
$sql_check = mysql_query("SELECT * FROM country WHERE UPPER(`name`)='".$name."'") or die(mysql_error());
if(mysql_num_rows($sql_check))
{
echo '<font color="red">The name <STRONG>'.$name.'</STRONG> is already exist.</font>';
}
else
{
echo 'OK';
}
}
?>
我正在查看此特定部分:
$sql_check = mysql_query("SELECT * FROM country WHERE UPPER(`name`)='".$name."'") or die(mysql_error());
if(mysql_num_rows($sql_check))
无需通读其余所有代码并尝试找出测试用例,了解MySQL可以使用"不区分大小写"排序规则可能会对您有所帮助。
UPPER 函数会将存储的值转换为大写,但如果排序规则不区分大小写,这并不真正影响比较。
您可能需要考虑使用 BINARY 运算符。
SELECT * FROM country WHERE BINARY UPPER(`name`)= 'FOO'
http://dev.mysql.com/doc/refman/5.5/en/charset-binary-op.html
在 MySQL 中检查排序规则的一种快速方法是:
SHOW VARIABLES LIKE 'collation%'
您可能会看到如下值:
utf8_general_ci
latin1_swedish_ci
排序规则名称末尾的_ci
将其标识为"不区分大小写"排序规则,这基本上意味着"ABC"="abc"的计算结果为 TRUE。
也可以在单个表和列级别指定排序规则。
有关更多信息,请参阅 MySQL 参考 http://dev.mysql.com/doc/refman/5.5/en/charset.html
注意:对于 php 5 和 mysqli,不要使用 SET names
查询,而是使用 mysqli_set_charset
。
http://php.net/manual/en/mysqli.set-charset.php
更改
$name = $_POST['name'];
自
$name = strtoupper($_POST['name']);
因此,您正在将大写输入与大写字段进行比较。
您也可以
使用like
SELECT * FROM country WHERE `name` like '$name'
希望这有帮助
相关文章:
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 巨大的数据和PHP错误
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- json-ajax动画防止通过php发送数据
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 将数据保存到数据库(ajax/php)后,使文本字段变灰/禁用
- 为什么数据没有从ajax传递到php
- 如何将JavaScript变量的数据传递到另一个php页面
- 使用外部ajax数据PHP绘制图表
- IE不发送发布数据PHP&jQuery
- 如何将数据 php 更改为 javascript json
- 如何插入数据 PHP JavaScript MySQL 与多个数组
- 将数据PHP(客户端)传递给C#(服务器端)
- 跨会话保存数据- php
- 从AJAX调用操作数据:PHP或Javascript
- 如何在jQuery中获取数据- PHP中的多重标签选择
- Ajax显示动态数据php在html下拉
- 使用azax &获取数据;php