php mysql web应用程序中的波兰字符
我的php/mysql应用程序正在尝试将以下内容插入到varchar字段中: ł …但是,表中的数据存储为: ł 这是我必须在php或mysql中处理的事情吗 非常感谢您的建议 谢谢你,保罗 进一步的信息——数据是用户输入的,输入文本框,然后将其值插入mysql 更新:代码php mysql web应用程序中的波兰字符,php,mysql,character-encoding,special-characters,Php,Mysql,Character Encoding,Special Characters,我的php/mysql应用程序正在尝试将以下内容插入到varchar字段中: ł …但是,表中的数据存储为: ł 这是我必须在php或mysql中处理的事情吗 非常感谢您的建议 谢谢你,保罗 进一步的信息——数据是用户输入的,输入文本框,然后将其值插入mysql 更新:代码 function addNewCustomer($data, $aid){ $now = date('Y-m-d H:i:s'); $row = mysql_fetch_array
function addNewCustomer($data, $aid){
$now = date('Y-m-d H:i:s');
$row = mysql_fetch_array(mysql_query("SELECT MAX(CustomerID) FROM tbl001_Customer"));
$query = "INSERT INTO tbl001_Customer
(CustomerID,CustomerName,Country,Address1,Address2,Address3,Address4,Postcode,PhoneNumber)
VALUES ('".str_pad($row[0]+1,5,'0',STR_PAD_LEFT)."','{$data['quote_customer_name']}','{$data['quotecountry']}',
'{$data['quote_address1']}','{$data['quote_address2']}','{$data['quote_town_city']}',
'{$data['quote_country']}','{$data['quote_postcode']}','{$data['quote_primary_phoneno']}')";
if (!mysql_query($query)) {
$isError = true;
echo mysql_error();
}
在插入数据库之前使用html_encode(),在从数据库中选择后使用html_decode()对数据进行解码。这是您不应该在php中处理的事情。
您正在某处调用
htmlentities()
函数,这绝对是无用的
所以,只要去掉这个函数调用,让您的数据保持不变
要针对XSS注入过滤用户输入,必须使用
htmlspecialchars()
函数。数据来自何处?在我看来,好像它是在那里编码的。看起来htmlentities()在这里被调用了。你有密码吗?Mysql不会这样转换它。如果你想在没有编码的情况下存储波兰字符等,你需要检查mysql中表的字符集。如果我们没有看到一些代码,我们就看不到编码的来源。然而,将其转换为HTML实体并不是一个坏主意,因为这将始终正确保存,并且可以在输出时直接使用。CustomerID创建非常惊人。这就是我所能说的,因为代码中没有与编码问题相关的内容。我遇到问题的字段是在插入“CustomerName”时。html#u encode()会将“ł”而不是“ł;”保存到数据库中吗?是的,只是不在那个确切的符号中。嘿,我刚刚在我的项目中搜索了“htmlentities()”没有结果,所以我没有使用它,这很奇怪。试着调试一下。你知道,表单和数据库之间有一些代码。只要试着在几个地方打印出你的数据,并试着找出它被改变的地方。