PDA

View Full Version : عدم ثبت صحيح اطلاعات فارسي در بانك



bps20590
جمعه 07 فروردین 1388, 08:54 صبح
با سلام
من تا حالا بوسيله روش submit فرم اطلاعاتم را داخل جداول ذخيره مي كردم وهيچ مشكلي هم نداشت حالا يك فرم جديد ايجاد كردم كه اطلاعات از طريق دستورات آژاكس استفاده شده وبا صدا زدن يك فيل php اطلاعات را داخل جدول ذخيره مي كنم ولي هنگام نمايش آنها بصورت كدهاي عجيب غريب ميباشد لطفا راهنمايي كنيد كه علت چيست وچگونه بايد حل شود

sama01
جمعه 07 فروردین 1388, 09:52 صبح
آیا انکودینگ صفحه‌ها را UTF-8 گذاشته‌اید؟ db را چه طور؟

bps20590
شنبه 08 فروردین 1388, 08:09 صبح
بله گذاشته ام

bps20590
شنبه 08 فروردین 1388, 22:09 عصر
كسي نميتونه جواب ماروبده

amir.s
یک شنبه 09 فروردین 1388, 01:09 صبح
سلام

یه تست ساده انجام بدید . مقداری رو که با آجاکس برای ذخیره ارسال میکنید رو بررسی کنید( با دیباگر ، فایل یا نمایش و... )

احتمالا مشکل از ذخیره سازی در دیتابیس نیست . از همون متد انتقال هست( آجاکس ) .
اگه این احتمال درست باشه باید یه سرچ در انجمن بکنید و ....

bps20590
یک شنبه 09 فروردین 1388, 07:11 صبح
دوست عزيز از پيشنهادت متشكرم اينكار رو هم كردم همان طور مقدار تشكيل شده از كدهاي عجيب غريب هستش

webnevis
یک شنبه 09 فروردین 1388, 12:24 عصر
سلام دوستان
من هم اين مشكل را با ajax,php دارم، set name, collation,unicode را امتحان كرده ام ولي جواب نگرفته ام
هر كس بلده راهنمايي كنه......

hamid67fathi
دوشنبه 10 فروردین 1388, 09:25 صبح
سلام
اين مشکل به دليل مشکل جاوا اسکريپت هستش.
بهتره شما يک نمونه از کد هاتون رو بزاريد شايد بتونيم کمکی کنيم.

bps20590
چهارشنبه 12 فروردین 1388, 11:44 صبح
اينهم برنامه اي كه فايل ديگررا براي ذخيرهع سازي اطلاعات صدا ميزند


<script language='javascript' >
var xmlHttp;
function transData() {
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null) {
alert ('مرورگر شما Ajax را پشتیبانی نمی کند.');
return;
}
var v1 = document.lig_form.name_ligs.value;
var url = 'get_name_lig.php';
url = url + '?name_lig=' + v1;
url = url + '&sid=' + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
}
function stateChanged() {
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {


var myarray=xmlHttp.responseText;
document.getElementById('response').innerHTML = xmlHttp.responseText;

}
}
function GetXmlHttpObject() {
var xmlHttp = null;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
}
return xmlHttp;}
</script>

اينهم فايلي كه اطلاعات را دربانك ذخيره مي كند


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

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="fa">
<link href="../css.css" rel="stylesheet" type="text/css" />
</head>

<body >

<?php // PHP Is Love :D

include 'db_connect.php';
$name_ligs =$_GET['name_lig'];
$result = mysql_query("select * from category where category='$name_ligs' ");
$row=mysql_num_rows($result);
if (empty($row))
{
mysql_query("INSERT INTO category VALUES('', '$name_ligs');");
echo "اطلاعات با موفقیت ثبت شدند.";
}
else {
echo "نـام اين ليگ قبلاًثبت شده است.";
}

?>

</body>
</html>

bps20590
چهارشنبه 12 فروردین 1388, 23:31 عصر
آقا جان يعني كسي نيست به ما بگه چرا اطلاعات بصورت كدهاي عجيب غريب دربانك ذخيره ميشن وبه همان صورت نيز نمايش داده ميشن درحالي كه هنگامي كه از آژاكس استفاده نمي شود درست ذخيره مي شوند

ali_sed
پنج شنبه 13 فروردین 1388, 00:56 صبح
چرا عجله! گر صبر کنی ز قوره حلوا سازی

اطلاعات فارسی باید قبل از ارسال کد بشند پس از تابع زیر استفاده کنید:


encodeURIComponent()

یعنی سطر زیر باید به کد شما اضافه بشه.


v1 = encodeURIComponent(v1);

همین.

payamsalami
پنج شنبه 13 فروردین 1388, 18:34 عصر
کاری که آقای علی گفتن رو حتما انجام بدید و برای اینکه اطلاعات به درستی ذخیره شن کوئری زیر رو هم پس از اتصال به دیتابیس اجرا کنید


mysql_query("SET CHARACTER SET utf8;")or die (mysql_error());

bps20590
جمعه 14 فروردین 1388, 07:06 صبح
دوست عزيز ازكمك شما متشكرم