这是我的第一个PHP代码,它可能充满了问题:) 我想注册访问我网站的人的信息。我的主要问题是sql中的FARSI字没有正确注册,它显示错误的字符。 我试图使用N来使它成为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>
答案 0 :(得分:0)
确保您使用的是utf8。
将数据库排序规则更改为utf8_general。这应该工作。
当我学习php时,我遇到了同样的问题。
答案 1 :(得分:0)
大家好,感谢您的回答。
如果找到我的问题的解决方案。对于那些有相同问题的人,将collation设置为utf8 general或unicode。但是你也必须将输入设置为utf8。我插入以下代码来执行此操作。
我希望这有帮助,如果你有问题,请问。
我使用mysqli,但正常的mysql连接几乎是一样的
$con = mysqli_connect("localhost","db_user","db_pass","db_name");
连接到db后使用此代码:
mysqli_set_charset($con,"utf8");