PDA

View Full Version : سوال: ثبت كوئري با انكدينگ western



numberone1
دوشنبه 16 اسفند 1389, 02:11 صبح
سلام
وقتي insert ميكنم توي ديتابيس اين شكلي ثبت ميشه
لينك م&Osl
وقتي هم كه خروجي ميگيرم هم به همين شكل نشون ميده
encoding صفحه روي utf-8 هست ولي موقع insert اين شكلي ميشه

numberone1
سه شنبه 17 اسفند 1389, 15:05 عصر
كسي نيست كمك كنه؟
من خيلي رو اين انجمن حساب ميكردم

alonemm
سه شنبه 17 اسفند 1389, 16:00 عصر
نوع فیلد رو درون جدول رو text بزارید.
صفحه فرم رو انکدینگ رو روی utf-8 ست کنید.
در موقع ساخت پایگاه داده هم از همین اینکدینگ استفاده کنید.


موفق باشد.

numberone1
چهارشنبه 18 اسفند 1389, 17:53 عصر
نوع فیلد رو درون جدول رو text بزارید.
صفحه فرم رو انکدینگ رو روی utf-8 ست کنید.
در موقع ساخت پایگاه داده هم از همین اینکدینگ استفاده کنید.


موفق باشد.
همه اين كار هائي كه فرمودين و انجام دادم ولي مشكل حل نشد
وقتي فرم پر ميكنم و تائيد ميكنم وقتي توي ديتابيس ثبت ميشه بصورت وسترن ثبت ميشه
aolation ديتا بيسم روي utf-8 persian ci هستش ولي خودم فكر ميكنم مشكل از اين باشه كه
من اول كه شروع به نوشتن برنامه php كردم انكدينگ صفحه روي windows-1256 بود و بعدا به utf-8 تغييرش دادم
فكر ميكنم موقع ثبت با همون انكدينگ قبلي ثبت ميشه با اينكه تغييرش دادم.
چجوري مشه اين مشكل و بر طرف كرد؟؟؟

fcsooti
چهارشنبه 18 اسفند 1389, 23:07 عصر
بعد از کانکت شدن به دیتابیس این کدها رو بزار و چک کن

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");

numberone1
چهارشنبه 18 اسفند 1389, 23:43 عصر
بعد از کانکت شدن به دیتابیس این کدها رو بزار و چک کن

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");
توي ديتا بيس هنوز بصورت وسترن ثبت ميشه
ولي يه مشكل تازه هم پيدا كردم. اگر فرم و فارسي پر كنم لينكي كه ميفرستم به صفحه ديگه مقدار id شو خالي ميفرسته ولي اگر انگليسي پر كنم مقدار id درست ارسال ميشه . خيلي عجيبه


header("location: show.php?link=$link&id=$id");



/show.php?link=لينك ما&id=

توي ديتا بيس كه نگاه ميكنم id درست ثبت شده و مقادير هم همشون بصورت وسترن ثبت شدن ولي موقع نمايش id خالي ميشه توي لينك نميدونم چرا!!!!

hamedfarahabady
چهارشنبه 18 اسفند 1389, 23:50 عصر
دوست عزیز یکی از ویژگی های دیتابیس mysql همینه! اطلاعات شما به طور فارسی وارد دیتابیس می شن اگه شما می خواهید اطلاعات دیتابیس را درست مشاهده کنید خودتون باید کد select * را بنویسید

numberone1
پنج شنبه 19 اسفند 1389, 00:09 صبح
دوست عزیز یکی از ویژگی های دیتابیس mysql همینه! اطلاعات شما به طور فارسی وارد دیتابیس می شن اگه شما می خواهید اطلاعات دیتابیس را درست مشاهده کنید خودتون باید کد select * را بنویسید
فكر كنم شما منظور منو بد متوجه شدين
همه دستورات و خودم مينويسم هم insert و كه وسترن ثبت ميشه هم select * رو كه براي بدست آوردن id استفاده ميكنم.
مقدار id در ديتابيس auto_incerement هست . من يكبار فرم و پر ميكنم توي صفحه بعد با يه دستور select مقدار id اون سطر رو بدست ميارم بعد داخل اين لينك قرار ميدم ولي وقتي فرم فارسي پر ميشه مقدار id بغلش چاپ نميشه ولي اگر با كاراكتر هاي انگليسي بنويسم مقدار id چاپ ميشه !!!


$result = mysql_query("SELECT `id` FROM `admin` WHERE link='$link' ") or
die(mysql_error());
$row = mysql_fetch_array($result);
$id = $row['id'];
header("location: show.php?link=$link&id=$id");

numberone1
پنج شنبه 19 اسفند 1389, 01:59 صبح
فهميدم مشكلش چيه
من همه پارامتر هائي كه توي صفحات استفاده ميكنم و با اين تابع ها چك ميكنم اول


$var = strip_tags($var);
$var = htmlentities($var);
$var = stripslashes($var);
return mysql_real_escape_string($var);

يه بار بدون استفاده از اينا پرينت گرفتم درست شد.
ولي حالا براي فيلتر كردن كاراكتر ها بايد چيكار كنم؟؟؟
كدوم يكي از اين تابع ها با انكدينگ UTF-8 مشكل داره؟؟؟ و بجاش از چي ميتونم استفاده كنم؟؟