用户注册在PHP和SQL中.FARSI输入



这是我的第一个PHP代码,它可能充满了问题:)
我想注册访问我网站的人们的信息。我的主要问题是,SQL中的FARSI单词不是正确的注册,并且显示错误的字符。我试图将其用于使其Unicode,但对我不起作用。也许我正在使用它。我也尝试给所有人一个独特的ID,但我无法弄清楚如何。我在FARSI零件的SQL整理是UTF8 Persian CI。我正在使用phpmy管理员,我尝试在其中制作nvarchar,但仅提供varchar。
这是我的第一个问题,也是第一个PHP代码,所以如果它太基本,请原谅我。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>
<body>
<?php
$name = $_POST["name"];
$familyname = $_POST["familyname"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$pass = $_POST["pass"];
$pass2 = $_POST["pass2"];
$id = 100;
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === true) {
echo("$email صحیح نمی باشد");
} else {

$con = mysqli_connect("localhost","","","register");
$name = mysqli_real_escape_string($con, $_POST['name']);
$familyname = mysqli_real_escape_string($con, $_POST['familyname']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$phone = mysqli_real_escape_string($con, $_POST['phone']);
$pass = mysqli_real_escape_string($con, $_POST['pass']);
$pass2 = mysqli_real_escape_string($con, $_POST['pass2']);

mysqli_query($con,"INSERT INTO users (`name17`, `familyname17`, `email17`, `phone17`, `pass17`, `id17`) VALUES ('$name', '$familyname', '$email', '$phone', '$pass', '$id')");
$result = mysqli_query($con,"select * from users where email17 ='$email' and pass17 = '$pass' and familyname17 = '$familyname'" )
    or die("faild to query database".mysql_error());
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
if (empty($name) || empty($familyname) || empty($email) || empty($phone) || empty($pass) || empty($pass2)) {
echo "لطفا اطلاعات را بطور کامل وارد فرمایید";
}
 else {
if ($row['email17']==$email && $row['pass17'] == $pass2){
echo "<body style='direction: rtl !important;'>";
echo "<b>".$row['name17']." <b>";
echo "عزیز. خوش آمدید<br> ";
echo '<img src="images/takhfif.jpg" alt="تخفیف" />'; 
} else {
echo "خطا در ثبت نام.لطفا دوباره تلاش کنید";
}
}
}

?>
</body>
</html>

确保您正在使用UTF8。
将数据库整理更改为UTF8_General。这应该起作用。
当我学习PHP时,我也有同样的问题。

大家好,感谢您的答案。如果找到解决我的问题的解决方案。对于那些遇到相同问题的人,请将整理到UTF8 General或Unicode。但是您也必须将输入设置为UTF8。我插入了以下代码。我希望这会有所帮助,如果您有问题,请问。我使用mysqli,但普通的mysql连接几乎相同。
$con = mysqli_connect("localhost","db_user","db_pass","db_name");连接到DB后使用此代码: mysqli_set_charset($con,"utf8");

最新更新