PDA

View Full Version : مشکل نمایش متن به صورت علامت سوال در php



beh9am
پنج شنبه 17 اسفند 1391, 14:41 عصر
سلام

من فایل هام یک قسمتی برای ارسال فیدبک داره که وقتی ارسال میشه و توی صفحه کاربر به صورت ؟؟؟؟ نمایش داده میشه

جستجو کردم کوئری ست کردن utf-8 رو هم گذاشتم اما کار نمیکنه

مثلن مینویسی سلام به صورت ؟؟؟؟ نمایش داده میشه

اما کلمه سلام رو به صورت

101056


مینویسی اونوقت درست نمایش داده میشه

فایل مربوط به ارسال فیدبک هم کدهاش اینه :






<?php
/************************************************** *************************
*
* since v4.4.7.1
*
************************************************** *************************/


global $wpdb;
mysql_query('SET NAMES \'utf8\'');
$id = $wp_query->query_vars['rid'];
mysql_query('SET NAMES \'utf8\'');
$s = "select * from ".$wpdb->prefix."auction_ratings where id='$id'";
mysql_query("set names 'utf8'");
$result = $wpdb->get_results($s);

$row = $result[0];
$pid = $row->pid;
$user = get_userdata($row->touser);
$post_au = get_post($row->pid);

$my_uid = $row->touser;
$my_uid2 = $row->fromuser;

get_header();
?>


<div id="content" >

<div class="my_box3">
<div class="padd10">

<div class="box_title"><?php printf(__("Review User %s for item %s",'AuctionTheme'), $user->user_login, $post_au->post_title ) ; ?></div>
<div class="box_content">

<?php
$nok = 1;

if(isset($_POST['rateme']))
{

$rating = $_POST['rating'];
$comment = nl2br(strip_tags($_POST['commenta']));

if(empty($comment)):

$nok = 1;

echo '<div class="error">';
echo __('Please leave a comment with your review.','AuctionTheme');
echo '</div>';

else:

$tm = current_time('timestamp',0);
mysql_query("set names 'utf8'");
$s = "update ".$wpdb->prefix."auction_ratings set grade='$rating', datemade='$tm', comment='$comment', awarded='1' where id='$id'";
mysql_query("set names 'utf8'");
$wpdb->query($s);

$link = get_permalink(get_option('AuctionTheme_my_account_ page_id'));
printf(__("Your rating has been posted. <a href='%s'>Return to your account area</a>","AuctionTheme"),$link);

$nok = 0;


AuctionTheme_send_email_when_review_has_been_award ed($pid, $my_uid, $my_uid2);
//---------------------------

$cool_user_rating = get_user_meta($my_uid, 'cool_user_rating', true);
if(empty($cool_user_rating)) update_user_meta($my_uid, 'cool_user_rating', 0);

//---------------------------

$cool_user_rating = get_user_meta($my_uid, 'cool_user_rating', true);

global $wpdb;
$s = "select grade from ".$wpdb->prefix."auction_ratings where touser='$my_uid' AND awarded='1'";
$r = $wpdb->get_results($s);
$i = 0; $s = 0;

if(count($r) > 0)
{
foreach($r as $row) // = mysql_fetch_object($r))
{
$i++;
$s = $s + $row->grade;

}

$rating2 = round(($s/$i)/2, 2);
update_user_meta($my_uid, 'cool_user_rating', $rating2);

}


//---------------------------

endif;
}

if($nok == 1)
{

?>
<form method="post">
<ul class="post-new3">
<li>
<h2><?php echo __('Your Rating','AuctionTheme'); ?>:</h2>
<p><select class="do_input" name="rating"><?php for($i=5;$i>0;$i--) echo '<option value="'.($i*2).'">'.$i.'</option>'; ?></select></p>
</li>

<li>
<h2><?php echo __('Your Comment','AuctionTheme'); ?>:</h2>
<p><textarea name="commenta" class="do_input" rows="5" cols="40" ></textarea></p>
</li>



<li>
<h2>&nbsp;</h2>
<p><input type="submit" name="rateme" value="<?php _e("Submit Rating","AuctionTheme"); ?>" /></p>
</li>



</ul>
</form> <?php } ?>


</div>
</div>
</div>
</div>

<?php AuctionTheme_get_users_links(); ?>

<?php get_footer(); ?>






اگر میشه بگید مشکل در کجاست

و اگر هم میشه بگید آیا کدی وجود داره که بزاری اول همه کدها تا هرجایی که به دیتابیس متصل میشه به صورت خودکار کوئری utf-8 هم اجرا بشه و دیگه هیچ جای کدها به صورت ؟؟؟؟ ذخیره نشه در دیتابیس


تشکر

colors
پنج شنبه 17 اسفند 1391, 14:48 عصر
اینجا (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C) رو ببین

beh9am
پنج شنبه 17 اسفند 1391, 15:08 عصر
اینجا (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C) رو ببین

اونجارو خوندم قبلا جستجو کردم و خوندم

اگر سوال من رو نگاه کنید میبینید که نوشتم این کارارو انجام دادم و داخل کدها هم گذاشتم کوئری رو اما بازم ؟؟؟؟؟ نمایش داده میشه !

css-man
پنج شنبه 17 اسفند 1391, 15:18 عصر
شاید colattion دیتا بیستون رو درست انتخاب نکردید utf8-unicode-ci برای فارسی مناسبه

beh9am
پنج شنبه 17 اسفند 1391, 15:29 عصر
شاید colattion دیتا بیستون رو درست انتخاب نکردید utf8-unicode-ci برای فارسی مناسبه


هر 3 نوع utf8 رو امتحان کردم اما بازم درست نمیشه

naftboys
یک شنبه 08 شهریور 1394, 19:03 عصر
هر 3 نوع utf8 رو امتحان کردم اما بازم درست نمیشه
منم دقیقا همین مشکل دارم با سرور هاستم که تماس میگیرم میگه با برنامه نویست صحبت کن من برنامه نویس کلا همه کاره خودمم:لبخند:

naftboys
یک شنبه 08 شهریور 1394, 19:05 عصر
من 5 سال اینجا عضوم هنوز کاربر جدیدم؟:متعجب:

naftboys
یک شنبه 08 شهریور 1394, 19:15 عصر
من الان امتحان کردم شد یه دیتا بیس روی سیستم خودت درست کن و ازش اسکریپت بگیر و روی هاستت اجراش کن و قتی داری نوع داده انتخاب میکنی نوعشو بزار روی nvarchar
به این کار میگن اپلود دیتابیس روی هاست یا به اختصار اپره:چشمک: شوخی کردم اسم خاصی نمیدونم داشته باشه یا نه
http://iranhost24.com/upload-database-to-host
امید وارم متوجه شده باشی

SCoder
یک شنبه 08 شهریور 1394, 21:11 عصر
برا من این جواب میده(با COLLATION :utf8_persian_ci)



$mysqli = new mysqli();
$mysqli->connect($host,$user,$pwd,$db);
$mysqli->set_charset('utf8');