مشکل کوچیک در نمایش متن فارسی

shadecute

Member
سلام
شرمنده اساتید یه سوال دارم برای شما خیلی سادس ممنون می شم کمکم کنید
فکر کنم اکثرا این سیستم استارینگ رو دیده باشید .

http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar

وقتی کاربر رو ستاره ها کلیک میکنه مینویسه Thanks for voting! خوب من می خوام یه پیغام فارسی نمایش داده شه اما به صورت علامت سوال در میاد .Unicode utf-8 هم که میزارم دیگه تو اجرا به مشکل بر می خوره چون فایلش کامل پی اچ پیه
یکی از دوستانم که بی سواد تر از خودمه گفت این کد رو بریز توش ریختم اما جواب نداد باز
$headers .= 'Content-type: text/html; charset=utf-8' . ;​

اساتید چه کنم پیغام فارسی نمایش بده
PHP:
<?php
/*
Page:           rpc.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
This page handles the 'AJAX' type response if the user
has Javascript enabled.
--------------------------------------------------------- 
ryan masuga, masugadesign.com
[email][email protected][/email] 
Licensed under a Creative Commons Attribution 3.0 License.
[url]http://creativecommons.org/licenses/by/3.0/[/url]
See readme.txt for full credit details.
--------------------------------------------------------- */
header("Cache-Control: no-cache");
header("Pragma: nocache");

require('_config-rating.php'); // get the db connection info

//getting the values
$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);
$id_sent = preg_replace("/[^0-9a-zA-Z]/","",$_REQUEST['q']);
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);
$ip = $_SERVER['REMOTE_ADDR'];

if ($vote_sent > $units) die("Sorry, vote appears to be invalid."); // kill the script because normal users will never see this.


//connecting to the database to get some information
$query = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
$count = $numbers['total_votes']; //how many votes total
$current_rating = $numbers['total_value']; //total number of rating added together and stored
$sum = $vote_sent+$current_rating; // add together the current vote value and the total vote value
$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote

// checking to see if the first vote has been tallied
// or increment the current number of votes
($sum==0 ? $added=0 : $added=$count+1);

// if it is an array i.e. already has entries the push in another value
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
$insertip=serialize($checkIP);

//IP check when voting
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id_sent."' "));
if(!$voted) {     //if the user hasn't yet voted, then vote normally...

	if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { // keep votes within range, make sure IP matches - no monkey business!
		$update = "UPDATE $rating_dbname.$rating_tableName SET total_votes='".$added."', total_value='".$sum."', used_ips='".$insertip."' WHERE id='$id_sent'";
		$result = mysql_query($update);		
	} 
} //end for the "if(!$voted)"
// these are new queries to get the new values!
$newtotals = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($newtotals);
$count = $numbers['total_votes'];//how many votes total
$current_rating = $numbers['total_value'];//total number of rating added together and stored
$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote

// $new_back is what gets 'drawn' on your page after a successful 'AJAX/Javascript' vote

$new_back = array();

$new_back[] .= '<ul class="unit-rating" style="width:'.$units*$rating_unitwidth.'px;">';
$new_back[] .= '<li class="current-rating" style="width:'.@number_format($current_rating/$count,2)*$rating_unitwidth.'px;">Current rating.</li>';
$new_back[] .= '<li class="r1-unit">1</li>';
$new_back[] .= '<li class="r2-unit">2</li>';
$new_back[] .= '<li class="r3-unit">3</li>';
$new_back[] .= '<li class="r4-unit">4</li>';
$new_back[] .= '<li class="r5-unit">5</li>';
$new_back[] .= '<li class="r6-unit">6</li>';
$new_back[] .= '<li class="r7-unit">7</li>';
$new_back[] .= '<li class="r8-unit">8</li>';
$new_back[] .= '<li class="r9-unit">9</li>';
$new_back[] .= '<li class="r10-unit">10</li>';
$new_back[] .= '</ul>';
$new_back[] .= '<p class="voted">'.$id_sent.'. Rating: <strong>'.@number_format($sum/$added,1).'</strong>/'.$units.' ('.$count.' '.$tense.' cast) ';
$new_back[] .= '<span class="thanks">Thanks for voting!</span></p>';

$allnewback = join("\n", $new_back);

// ========================

//name of the div id to be updated | the html that needs to be changed
$output = "unit_long$id_sent|$allnewback";
echo $output;
?>
 
آخرین ویرایش:

shadecute

Member
ممنون
با این فایلی که شما هم دادی همین مشکل رو داره -مشکلش اینه که وقتی utf-8 رو انتخواب می کنی و رو ستاره ها کلیک می کنی دیگه همون جوری باقی می مونه در حالت لود .تا موقعی در حالت لود می مونه که صفحه رو ریفرش کنی . یه عکس گرفتم ببینید.در حالت لود باقی مونده . نباید اینجوری باشه باید بلافاصله پیغام فارسی رو نمایش بده .

2hwfwy.jpg
 
آخرین ویرایش:

jhoseini

Member
اگر ممکنه همه ی فایل ها رو اینجا بزارید، تا من هم بتونم این خطا رو ببینم
 

shadecute

Member
باشه
این لینک خود سایتش

http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar

اینم لینک دانلود نسخه کاملش

http://www.masugadesign.com/download.php?ajaxstarrater_v122.zip

هیچ مشکل دیگه ای نداره فقط utf-8 رو که انتخواب می کنیم برای نمایش پیغام فارسی قاطی می کنه دیگه مثل قبل کار نمی کنه .
همون طور که تو عکس قبلی که گذاشتم در حالت لود باقی می مونه و نظر ثبت نمیشه
 

jhoseini

Member
بله، حق با شماست
فکر میکنم توابع مربوط به اسال از طریق ajax یونیکد تعریف نشده
نمیدونم بهش چی میگن، اما میتونید مثلا به جای "مرسی" از "مرسي" استفاده کنید، تست کردم جواب میده
 

shadecute

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

k2-4u

Well-Known Member
این اتفاق شامل چند دلیل محدود میشه
1 . از همه مهم تره از چه ویرایش گر متنی استفاده میکنید (خب بهترینش Notepad هست ولی
برای کار های بزرگ جواب نمیده ) در این مورد از Frontpage استفاده کنید

2 . ممکنه (همون طور که دوستان گفتن ) یونیکد باشه که بازم اگر در Frontpage کار کنید براتون کارکتر های فارسی رو یونیکد
می کنه و ممکنه ازتون بپرسه که بهترینش UTF-8 است اگر هم نپرسید در تنظیمات برنامه هست
 

jhoseini

Member
این اتفاق شامل چند دلیل محدود میشه
1 . از همه مهم تره از چه ویرایش گر متنی استفاده میکنید (خب بهترینش Notepad هست ولی
برای کار های بزرگ جواب نمیده ) در این مورد از Frontpage استفاده کنید

2 . ممکنه (همون طور که دوستان گفتن ) یونیکد باشه که بازم اگر در Frontpage کار کنید براتون کارکتر های فارسی رو یونیکد
می کنه و ممکنه ازتون بپرسه که بهترینش UTF-8 است اگر هم نپرسید در تنظیمات برنامه هست
منظور شما رو درک میکنم، اما مشکل ایشون به این چیزا ختم نمیشه، یخورده پیچیده تره، شما کد رو دانلود کنید + خودتون چک کنید، متوجه میشید : )
 

shadecute

Member
من تو انجمن ای جکس هم مطرح کردم اما باز بی نتیجه بوده تا الان . یک سایت سراغ دارم که فارسیش کرده خیلی خوبم دار کار میکنه
http://www.shereno.com/show.php?op=showalbum&id=2272
فقط روی سروده ها کلیک کنید تا وارد آرشیو تکی نوشته ها شه . برای هر شعر جدا داره این رای گیری رو - جالبه اگه این مشکل فارسیش حل شه خیلی کارا میشه کرد .
 

shadecute

Member
خوب، مثلاً چه کاری؟
164.gif

میتونی خودت اینو بنویسی، هیچی نداره
297.gif

این مشکل فارسیش حل شه یه عالمه میشه تغییرات داد -بازی با کد یه چیزایی رو اضافه و کم کنیم خیلی بهتر میشه .

اصلا تاحالا ندیده بودم همچین مشکلیو نمی دونم چیکار باید کرد اینم میزارم رو تجربه کمم .حالا تو انجمن های ای جکس اینگاری داره روش کار میشه :lol: 2روزه کسی اصلا جواب نداده
یا خیلی سخته کسی بلد نیست (شرمنده همه استاید ):oops:
یا خیلی آسونه جواب دادنش خنده داره برای همین جواب نمی دن ( بازم شرمنده اساتید):oops:

کمک :cry:

:)
 

kianaroz

New Member
سلام
من تو نصب این رو لوکال مشکلی ندارم اما رو سرور به مشکل بر خوردم همه راه ها رو درست رفتم اما این اررور رو میده
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: NO)
in
:cry: Error connecting to mysql

اول یه data base ساختم بد از php admin کد ها ی جدول رو ایمپورت کردم توش . مثل لوکال .رو لوکال کار کرد اما رو سرور چرا جواب نمی ده .
ممنون میشم کمک کنید مگه همین مراحل رو نباید می رفتم؟:oops::oops:


//Connect to your rating database
$rating_dbhost = 'localhost';
$rating_dbuser = 'root';
$rating_dbpass = '';
$rating_dbname = 'vot';
$rating_tableName = 'ratings';
$rating_path_db = ''; // the path to your db.php file (not used yet!)
$rating_path_rpc = ''; // the path to your rpc.php file (not used yet!)
 

siavashmusic

Active Member
خوب این ارور که مشخصه چی میگه !!!
اتصال دیتابیس شما برقرار نشده
این اطلاعات

PHP:
//Connect to your rating database
$rating_dbhost = 'localhost';
$rating_dbuser = 'root';
$rating_dbpass = '';
$rating_dbname = 'vot';
$rating_tableName = 'ratings';
$rating_path_db = ''; // the path to your db.php file (not used yet!)
$rating_path_rpc = ''; // the path to your rpc.php file (not used yet

رو تکمیل نکردی ؟!! یا نمونه اینجا گذاشتی ؟!!!
 

kianaroz

New Member
خوب این ارور که مشخصه چی میگه !!!
اتصال دیتابیس شما برقرار نشده
این اطلاعات

PHP:
//Connect to your rating database
$rating_dbhost = 'localhost';
$rating_dbuser = 'root';
$rating_dbpass = '';
$rating_dbname = 'vot';
$rating_tableName = 'ratings';
$rating_path_db = ''; // the path to your db.php file (not used yet!)
$rating_path_rpc = ''; // the path to your rpc.php file (not used yet
رو تکمیل نکردی ؟!! یا نمونه اینجا گذاشتی ؟!!!

ممنون دوست عزیز
مگه کامل نیست؟
راستشو بخوای روی لوکال که با اطلاعات بالا کار می کرد .یه دیتا بیس ساختم جدول رو ایمپورت کردم . اما برای اجرا رو سرور باید چیز دیگه ای اضافه کنم ؟؟شرمنده من مبتدیم
 
آخرین ویرایش:

kianaroz

New Member
آقا یکی مردونگی کنه بگه من چیکار کنم به کدای بالا باید چیزی اضافه کنم که به دیتا بیس وصل شه
 

jhoseini

Member
دوست عزیز شما باید رو سرور تون دیتابیس با اسم دلخواه تون بسازید
کاربر براش بسازید
به کاربر ساخته شده اجازه دسترسی به دیتابیس ساخته شده رو بدید
و نهایتاً کاربر + کلمه عبور + اسم دیتابیس رو جایگزین کنید تو کد بالا
کاری از دست ما بر نمیاد، کد خاصی هم وجود نداره برای این مشکل شما
 

kianaroz

New Member
دوست عزیز شما باید رو سرور تون دیتابیس با اسم دلخواه تون بسازید
کاربر براش بسازید
به کاربر ساخته شده اجازه دسترسی به دیتابیس ساخته شده رو بدید
و نهایتاً کاربر + کلمه عبور + اسم دیتابیس رو جایگزین کنید تو کد بالا
کاری از دست ما بر نمیاد، کد خاصی هم وجود نداره برای این مشکل شما

آقا منم
1- دیتا بیس ساختم
2 یوزر براش تعریف کردم
3- رفتم تو php admin اونجا کد رو اینپورت کردم
بعد تو این کد
PHP:
$rating_dbhost = 'localhost';
$rating_dbuser = 'vote';
$rating_dbpass = 'asdha@@d';
$rating_dbname = 'vot';
$rating_tableName = 'ratings'

4 تو کد بالا یوزر و نام دیتا بیس و پس وردی که اونجا داده بودم رو دادم پس چرا به my sql وصل نمیشه خب منم تمام مراحل رو درست رفتم دیگه لطفا کمکم کنید

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'vote'@'localhost' (using password: NO)
in

Error connecting to mysql


 
آخرین ویرایش:

jhoseini

Member
اگه از cpanel استفاده میکنی، باید اول اسم دیتابیس و نام کاربری یه پریفیکس اضافه کنی، به این صورت که مثلا اگه نام کاربری cpanel شما باشه myhostacc و دیتابیسی که ساختی باشه mydb ، دیتابیس شما نهایتاً با اسم myhostacc _mydb شناخته میشه
 

جدیدترین ارسال ها

بالا