مشكل مرورگر با utf8 ونمايش فارسي از بانك

it5

Member
من اطلاعاتم به صورت( persian(fa-utf8 توی دیتابیس ذخیره کردم .
يك صفه login دارم كه اطلاعات را به صفحه ديگر براي چك كردن user و pass از بانك ميفرستد .(cheklogin)
بعد از چك كردن اگر درست بود آنها توسط session ها در صفها مختلف قابل دسترسي هستند
PHP:
<?php 
session_start();
                  if((!$_SESSION['user']) or (!$_SESSION['pass'])){
                      header("Location:login.php");

حالا مشكلات :

1- من اطلاعات را درون( mysql(phpmyadminدستي و فارسي وارد كردم . ولي هنگام نمايش در مرورگر فونت فارسي نيست.بايد راست كليد كنم و encoding ----->utf8 انتخاب كنم تا فونتا فارسي بشه.براي حل اين مشكل بايد چي كار كنم???

2- درdreamwearer ---->page properties ---->title/encoding اگر encoding را utf8 انتخاب كنيم و چك باكس include Unicode signature(bom) را نيز علامت بزنيم .اگر در صفحه ما session نباشد درست است.يعني همون فارسي را از بانك نشون ميده ولي اگر session باشد بانك را با حروف فارسي نشون ميده ولي اين پيغام خطا را ميده!!! راه حل چيه؟؟؟؟؟؟؟؟؟؟؟


کد:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Apache2\htdocs\test1-php\login&logut\show.php:1) in C:\Apache2\htdocs\test1-php\login&logut\show.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Apache2\htdocs\test1-php\login&logut\show.php:1) in C:\Apache2\htdocs\test1-php\login&logut\show.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache2\htdocs\test1-php\login&logut\show.php:1) in C:\Apache2\htdocs\test1-php\login&logut\show.php on line 4
 

tabib_m

Member
این کد رو بعد از session_start بذار.
HTML:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
 

it5

Member
ببين اين كد هست
در اينجا :
PHP:
<?php 
session_start();
                  if((!$_SESSION['user']) or (!$_SESSION['pass'])){
                      header("Location:login.php");
					}
	                else{
    echo('hi:');	}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
آيا منظورت همين بود؟
اگر همين بود كه اين كد از اول بوده ولي اگر منظورت چيز ديگه اي بوده بيشتر توضيح بده
 

mosi20

Active Member
هدر را باید قبل از سشن بفرستی اگه نخواستی اینکارو بکنی باید بافر بگیری اون وقت و خودش درستش میکنه.
فایلت را با فرمت utf8 وقتی سیو کنی یه سری کارکتر قبل کدهات اضافه میکنه که نمیتونی ببینیشون
 
درسته، مشكل كدهايي هست كه در هنگام Save كردن به اول فايل اضافه مي‌شه، اگه با PHP EXPERT EDITOR بازش كني اون سه كاراكتر مزاحم رو ميبيني و وقتي پاكش كني درست مي‌شه....!
 

it5

Member
هدر را باید قبل از سشن بفرستی اگه نخواستی اینکارو بکنی باید بافر بگیری اون وقت و خودش درستش میکنه.
اين جمله بالا يني چي؟ ميشه بيشتر توضيح بدي كه بايد چي كار كنم؟
 

mossy

Member
فکر کنم یعنی کاراکتر ست صفحه رو قبل از هر معرف پی اچ پی تو صفحه بیاری
 

mosi20

Active Member
این را اول کد هات بزار
PHP:
ob_start( 'ob_gzhandler' );

این یکی را هم آخر کدت

PHP:
ob_end_flush();
 

mossy

Member
mosi20 میشه یه توضیح مختصر درباره کاربرد این کد ها بگی؟
ممنون
 

bahy_my

Active Member
PHP:
<?php 
session_start();
                  if((!$_SESSION['user']) or (!$_SESSION['pass'])){
                      header("Location:login.php");
					}
	                else{
    echo('hi:');	}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

سلام
خوب مگه اینو شما ننوشتی ؟
منظور اینه که این کد :
PHP:
                      header("Location:login.php");
قبل از همه چیز باشه.......همین
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
بچه ها یه خواهش. یه سوال از نون شبم هم فری تره..لطفاً کمک کنید.
تا حالا از دونفر جواب گرفتم اما متفاوت......... خیلی مهمه.... تعطیل شدم به خاطر ایم مشکل.
من php 5و یه بار دیگه php 4 هر کدوم رو نصب کردم.... Easyphp رو هم نصب کردم.
جدیداً این طور شده... مثلاً اگه این کد رو بزنم :
PHP:
$X=$_POST['X'];
میگه : undefined variable
برای شژن هم همینطور.... قبل از این که وین عوش کنم اینطوری نبود.....یه توضیح دیگه هم اینکه قبل از نصب این php ها از سایت خودش گرفتم اونو.... فایل نصب نداشت و دو تا فایل رجیستری داشت که اونا رو اجرا کردم.. اینو گفتم شاید کمکی بکنه.(اگه تاپیک به خاطر این سوال نزدم و اگه مورد داشت ببخشید.)
 

it5

Member
mosi20 من كد هايي كه گفته بودي اول و آخر كدم گذاشتم ولي درست نشد و باز هم همون خطاها را داد !!!
PHP:
<?php 
ob_start( 'ob_gzhandler' );  
session_start();
                  if((!$_SESSION['user']) or (!$_SESSION['pass'])){
                      header("Location:login.php");

البته در اين صفحه php چند بار باز و بسته ميشود. اون كد كه مربوط به اول بود كه ميبيني كجا گذاشتم و اون كد مربوط به آخر را قبل از بسته شدن هر تگ php گذاشتم.ولي باز هم پيغام خطاها بود !!!!

اين 3 پيغام خطا:

کد:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Apache2\htdocs\forosh\show.php:1) in C:\Apache2\htdocs\forosh\show.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Apache2\htdocs\forosh\show.php:1) in C:\Apache2\htdocs\forosh\show.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache2\htdocs\forosh\show.php:1) in C:\Apache2\htdocs\forosh\show.php on line 5

بيشتر دوستان در پاسخ ها به خطاي سوم و header كيليد كردن . ولي فكر كنم مشكل من (نمايش فارسي از بانك)مربوط به 2خطاي اول باشه !
 

it5

Member
درسته، مشكل كدهايي هست كه در هنگام Save كردن به اول فايل اضافه مي*شه، اگه با PHP EXPERT EDITOR بازش كني اون سه كاراكتر مزاحم رو ميبيني و وقتي پاكش كني درست مي*شه....!

من با اين نرمافزار هم باز كردم ولي كاركتر مزاحمي نديدم !!!
كجاي كد؟
 

it5

Member
يك نكته ديگه
پيغام خطاهايي كه ميده نگاه كنيد
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Apache2\htdocs\forosh\show.php:1) in C:\Apache2\htdocs\forosh\show.php on line 3
اين 1 كه با قرمز نشون دادم چيه؟
فكر كنم ربط داشته باشه!
 

it5

Member
كمممممممممممممك
بابا يكي كمك كنه
كممممممممممممممك
 

ramin_S

New Member
سلام به همه

دوست عزيز اين اديتور رو دانلود كن
http://www.tooscom.com/software/SciTE.zip
فايل خودتو با هاش باز كن
بعد كل متن فايلتو انتخاب كن
ctrl+a
بعدش برش رو بزن منظورم ctrl+x

حالا از منوي file گزينه encoding رو انتخاب كن و بعدش گزينه آخرش يعني utf-8 cookie
حالا ctrl+v
حالا فايلتو save كن
اميدوارم مشكلت حل بشه
 

it5

Member
نه ramin_S اين روش هم جواب نداد


اصلا" من يك طور ديگه مشكلم مطرح ميكنم
من داخل بانكم اطلاعات را به صورت فارسي (مستقيم توي خود بانك) وارد كردم(تنظيم phpmyadmin هم utf8 بوده)
حالا ميخوام اطلاعاتم را توي يك صفحه با همون فونت فارسي نشون بدم, بايد چي كار كنم؟
 

ramin_S

New Member
با سلام

اون چيزي كه دنبالش هستي
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
كه اصلا ربطي به session_start();
 

ramin_S

New Member
در باره session_start();
چيزي كه در بالا نوشتي من خودم باهاش برخورد كردم و با اديتوري كه بهت معرفي كردم مشكلم حل شده
 

mosi20

Active Member
این دیگه جرو فوتای کوزه گری هستش اما جهنم و ضرر اینم میگم
این کد را بد از کانکت شدن یه بدیتابیست بزار
PHP:
mysql_query("SET NAMES 'UTF8'") or die(mysql_error());
 

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

بالا