-1
我有用于在mysql表中插入一些值的html表单和php脚本。 表字段被设置为utf8_unicode_ci。 虽然插入克罗地亚字母(žšđčć)我得到错误不正确的字符串值:'\ x9A \ xF0 \ xE8 ...等行列1名称。我发现一些帮助搜索谷歌和解决方案之一是将字段更改为ut8mb4但仍然有同样的问题。Croatina字符的字符串值不正确
我在XAMPP运行MySQL 5.6.14,PHP 5.5.11 1.8.3
这是HTML文件:
<!DOCTYPE html>
<html>
<head>
<body>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<form name="Prijava" method="post" action="insert.php">
<fieldset>
<legend>Personal information:</legend>
Ime:<br>
<input type="text" name="_ime" maxlength="50">
<br>
Prezime:<br>
<input type="text" name="_prezime" maxlength="50">
<br>
Spol:<br>
<input type="radio" name="_spol" value="M" checked>M
<br>
<input type="radio" name="_spol" value="Z">Ž
<br>
Godište:<br>
<input type="text" name="_godiste" maxlength="4"<br>
<br>E-mail adresa:<br>
<input type="text" name="_emailadresa" maxlength="50">
<br>
Grad/mjesto:<br>
<input type="text" name="_gradmjesto" maxlength="50">
<br>
Tip:<br>
<input type="radio" name="_tip" value="Klub" checked>Klub
<br>
<input type="radio" name="_tip" value="Udruzenje">Udruženje
<br>
<input type="radio" name="_tip" value="Solo">Solo
<br>
<br>
<p><input onchange="this.setCustomValidity(validity.valueMissing ? 'Molimo Vas potvrdite da prihvaćate uvijete!' : '');" id="field_terms" type="checkbox" required name="terms"> Prihvaćam <u>uvijete</u></p>
<input type="submit" value="Submit">
</fieldset>
<a href="select.php">Pregled popisa prijavljenih natjecatelja</a>
</form>
</body>
</head>
</html>
,这是php:
<?php
include 'config.php';
header("Content-Type: text/html;charset=utf-8");
if (!isset($_POST['_ime']) ||
!isset($_POST['_prezime']) ||
!isset($_POST['_spol']) ||
!isset($_POST['_godiste']) ||
!isset($_POST['_emailadresa']) ||
!isset($_POST['_gradmjesto']) ||
!isset($_POST['_tip']))
{
died ("Nisu popunjena svi podaci!");
} else
{
$ime = $_POST['_ime'];
$prezime = $_POST['_prezime'];
$spol = $_POST['_spol'];
$godiste = $_POST['_godiste'];
$email = $_POST['_emailadresa'];
$grad = $_POST['_gradmjesto'];
$tip = $_POST['_tip'];
$sql_insert = "INSERT INTO prijave (IDUnos, Ime, Prezime, Spol, Godiste, Email, Grad, Tip) VALUES (null, '$ime', '$prezime', '$spol', '$godiste', '$email', '$grad', '$tip');";
mysql_query($sql_insert) or die(mysql_error());
mysql_close($con);
}
// slanje poruke
$to = $email;
$subject = 'Prijava na utrku';
$message = 'Ovdje ide poruka';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (mail($to, $subject, $message, $headers))
{
header('Location: finish.html');
}
?>
还有什么办法来解决这个问题?
你确定它在utf8_unicode_ci上吗?这里工作得很好。我的mySQL是早期的版本。 – PHPhil
是的。我刚刚检查过。不知道该怎么办......表格字段接受特殊字符,但插入和显示数据不显示正确。 – Josef