PDA

View Full Version : نحوه ذخیره داده فارسی و پیغام فارسی



job_job
دوشنبه 01 دی 1393, 14:01 عصر
سلام . من از کد زیر برای درج استفاده کردم ولی وقتی درج انجام میشه یه warning بهم میده .

<?php
$con=mysqli_connect("localhost","dadashi","125050","dbdadashi");
// Check connection
if (mysqli_connect_errno())
{
echo "امکان برقراری با دیتابیس وجود ندارد " . mysqli_connect_error();
}

$sql="INSERT INTO contact(Name,email,subject,message)
VALUES('$_POST[Name]','$_POST[email]','$_POST[Subject]','$_POST[message]')";


if (!mysqli_query($con,$sql))
{
die('خطا در پایگاه داده رخ داده است ' . mysqli_error($con));
}
echo "اطلاعات با موفقیت ذخیره شد";

mysqli_close($con);
?>


2- متن هایی که به صورت فارسی نوشتم برای خطا ها در هنگام نمایش بهم ریخته نشون میده و اصلا فارسی هم نیست چکار کنم درست بشه ؟

H:Shojaei
دوشنبه 01 دی 1393, 14:17 عصر
سوال اول: چه warning ای میده؟

2:این کد رو تو <head> کدهای html بذارید:

<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
اگر درست نشد باید صفحه رو با کد گذاری utf-8 without bom ذخیره کنید (با notepad++ یا هر ادیتوری که بشه توش انکودینگ صفحه رو مشخص کرد)

job_job
دوشنبه 01 دی 1393, 14:21 عصر
نمایش فارسی پیغام درست شد . الان چکار کنم که داده فارسی هم تو دیتابیس به درستی ذخیره بشه ؟
از کد زیر برای mysql استفاده کردم ؟

$sql="INSERT INTO contact(Name,email,subject,message)
VALUES('$_POST[Name]','$_POST[email]','$_POST[Subject]','$_POST[message]')";


if (!mysqli_query($con,$sql))
{
die('خطا در پایگاه داده رخ داده است ' . mysqli_error($con));
}

H:Shojaei
دوشنبه 01 دی 1393, 14:37 عصر
بخش کد های اتصال به mysqli این رو هم اضافه کنید:

mysqli_set_charset('utf8'(

job_job
دوشنبه 01 دی 1393, 14:45 عصر
دقیقا باید به کجای کد زیر اضافه اش کنم ؟ ممنون میشم بهم بگید . کل کد من در زیر قرار میدم .




<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$con=mysqli_connect("localhost","dadashi","125050","dbdadashi");
// Check connection
if (mysqli_connect_errno())
{
echo "امکان برقراری با دیتابیس وجود ندارد " . mysqli_connect_error();
}

$sql="INSERT INTO contact(Name,email,subject,message)
VALUES('$_POST[Name]','$_POST[email]','$_POST[Subject]','$_POST[message]')";


if (!mysqli_query($con,$sql))
{
die('خطا در پایگاه داده رخ داده است ' . mysqli_error($con));
}
echo "اطلاعات با موفقیت ذخیره شد";

mysqli_close($con);
?>

H:Shojaei
دوشنبه 01 دی 1393, 14:53 عصر
بعد از mysqli_connect:

mysqli_set_charset($con, "utf8")

job_job
چهارشنبه 03 دی 1393, 18:26 عصر
سلام .کاری رو که شما گفتین انجام دادم ولی بازم تو دیتابیس به صورت علامت سوال ذخیره میشه . لطفا راهنمایی کنید . آیا مربوط به تنظیمات دیتابیس نیست؟
الان کد من به صورت زیر هستش:


$con=mysqli_connect("localhost","dadashi","125050","dbdadashi");
mysqli_set_charset($con, "utf8");