صفحة 1 من 1

ارجو المساعدة

مرسل: 08 فبراير 2011, 09:57
بواسطة waleed_kh
السلام عليكم و رحمة الله و بركاته

أولا انا عضو جديد في المنتدي اسمي وليد خالد من مصر

ثانيا انا كنت اعمل علي موقع php و لدي سؤال
ففي الموقع الذي اعمل عليه ا اكثر من لغة
فكيف اجعل اللغة التي اختارها المتصفح مستقلة له
مثلا دخل متصفح الي الموقع الذي صممته و الذي لغته الاساسية عربي
و قام المتصفح بتغيير اللغة الي الانجليزية مثلا
فانا اريد عندما يدخل المتصفح الي الموقع مرة اخري يجده ما زال باللغة الانجليزية التي اختارها

و كنت اريد وضع كود ليبين عدد مشاهدين الصفحة بمعني انه كل ما يدخل احد لهذه الصفحة يقوم بزيادة 1 الي عدد المشاهدين ولكن اذا دخل نفس الشخص الي نفس الصفحة لا يقوم بالتزويد و لكن اذا دخل نفس الشخص الي صفحة اخري يقوم بالتزويد مع العلم اني مزود هيكل في جدول قاعدة البيانات لهاذا الغرض

و شكرا لكم

رد: ارجو المساعدة

مرسل: 08 فبراير 2011, 19:03
بواسطة Saif Alhak
ففي الموقع الذي اعمل عليه ا اكثر من لغة
فكيف اجعل اللغة التي اختارها المتصفح مستقلة له
مثلا دخل متصفح الي الموقع الذي صممته و الذي لغته الاساسية عربي
و قام المتصفح بتغيير اللغة الي الانجليزية مثلا
فانا اريد عندما يدخل المتصفح الي الموقع مرة اخري يجده ما زال باللغة الانجليزية التي اختارها
يتوجب عليك ارسال اللغة المختارة للمتصفح وحفظها بالكوكيز لمدة معينة

كود: تحديد الكل

setcookie("languagecookie",$idlang,time()+604800);
بحيث:
languagecookie مغير اللغة المحفوظة في الكوكيز
$idlang مغير اللغة المطلوبة قد تكون أرقام على شكل id أو اختصارات en , ar بحسب ماتريد
time()+604800 مدة الحفظ بالثواني وهي حالياً 7 أيام ويمكنك تعديلها

ولجلب معلومات اللغة المختارة والمحفوظة في الكوكيز واستخدامها

كود: تحديد الكل

if(isset($_COOKIE['languagecookie']) AND $_COOKIE['languagecookie'] != 0){
$mylang = intval($_COOKIE['languagecookie']);
}else{
$mylang = 1;
}
افترضنا المتغير أرقالم 1,2,3,4 وهكذا وطلبنا المتغير من الكوكيز وإذا لم يكن محدد أرجعناه لقيمة افتراضية 1 ولنفترض أنها اللغة العربية
والمتغير المطلوب هو $mylang وهو عبارة عن اللغة المحددة بحسب المعرف الخاص وبالتالي استخدمه في ملفاتك


و كنت اريد وضع كود ليبين عدد مشاهدين الصفحة بمعني انه كل ما يدخل احد لهذه الصفحة يقوم بزيادة 1 الي عدد المشاهدين ولكن اذا دخل نفس الشخص الي نفس الصفحة لا يقوم بالتزويد و لكن اذا دخل نفس الشخص الي صفحة اخري يقوم بالتزويد مع العلم اني مزود هيكل في جدول قاعدة البيانات لهاذا الغرض
بنفس مبدأ عدادات الزوار العادية ولكن يجب ادخال ال ip للزائر و رقم id الصفحة كمتغيرات وحفظها في قاعدة البيانات والتحقق قبل زيادة العدد

رد: ارجو المساعدة

مرسل: 09 فبراير 2011, 08:32
بواسطة waleed_kh
شكرا علي ردك و لكن لم تعمل

و هذا هو الكود الذي استعملته

كود: تحديد الكل

$idlang=$_GET['idlang'];
if(isset($_COOKIE['languagecookie']) AND $_COOKIE['languagecookie'] != 0)
{
	$idlang = intval($_COOKIE['languagecookie']);
}
if (isset($idlang))
{
	if ($idlang="ar")
	{
		include ('include/languages/ar.php');
		$dir="rtl";
		setcookie("languagecookie","ar",time()+999999999999999999999999999999999);
	}
	if ($idlang="en")
	{
		include ('include/languages/en.php');
		$dir="ltr";
		setcookie("languagecookie","en",time()+999999999999999999999999999999999);
}
}
else
{
	include ('include/languages/ar.php');
	setcookie("languagecookie","ar",time()+999999999999999999999999999999999);
}

رد: ارجو المساعدة

مرسل: 10 فبراير 2011, 02:25
بواسطة saanina
بدل

كود: تحديد الكل

$idlang = intval($_COOKIE['languagecookie']); 
بـ

كود: تحديد الكل

$idlang = preg_replace('![^a-z]!i', '', $_COOKIE['languagecookie']); 

رد: ارجو المساعدة

مرسل: 10 فبراير 2011, 13:44
بواسطة waleed_kh
saanina كتب:بدل

كود: تحديد الكل

$idlang = intval($_COOKIE['languagecookie']); 
بـ

كود: تحديد الكل

$idlang = preg_replace('![^a-z]!i', '', $_COOKIE['languagecookie']); 
شكرا لك و لكن لم تعمل ايضا

كود: تحديد الكل

$idlang=$_GET['idlang'];
if(isset($_COOKIE['languagecookie']) AND $_COOKIE['languagecookie'] != 0)
{
    $idlang = preg_replace('![^a-z]!i', '', $_COOKIE['languagecookie']); 
}
if (isset($idlang))
{
    if ($idlang="ar")
    {
        include ('include/languages/ar.php');
        $dir="rtl";
        setcookie("languagecookie","ar",time()+604800);
    }
    if ($idlang="en")
    {
        include ('include/languages/en.php');
        $dir="ltr";
        setcookie("languagecookie","en",time()+604800);
}
}
else
{
    include ('include/languages/ar.php');
    setcookie("languagecookie","ar",time()+604800);
}
 

رد: ارجو المساعدة

مرسل: 10 فبراير 2011, 16:27
بواسطة saanina

كود: تحديد الكل

if ($idlang="ar")

كود: تحديد الكل

if ($idlang="en")
بدل علامة = بعلامتين هكذا ==

رد: ارجو المساعدة

مرسل: 11 فبراير 2011, 05:47
بواسطة waleed_kh
saanina كتب:

كود: تحديد الكل

if ($idlang="ar")

كود: تحديد الكل

if ($idlang="en")
بدل علامة = بعلامتين هكذا ==
فعلت هذا ايضا و لكن لم تعمل

كود: تحديد الكل

$idlang=$_GET['idlang'];
if(isset($_COOKIE['languagecookie']) AND $_COOKIE['languagecookie'] != 0)
{
    if (isset($idlang))
    {
        if ($idlang == "ar")
        {
            include ('include/languages/ar.php');
            setcookie("languagecookie","ar",time()+604800);
        }
        elseif ($idlang == "en")
        {
            include ('include/languages/en.php');
            setcookie("languagecookie","en",time()+604800);
        }
    }
    else
    {
        $myidlang = preg_replace('![^a-z]!i', '', $_COOKIE['languagecookie']); 
        if ($myidlang == "ar")
        {
            include ('include/languages/ar.php');
        }
        elseif ($myidlang == "en")
        {
            include ('include/languages/en.php');
        }
    }
}
elseif (isset($idlang))
{
    if ($idlang == "ar")
    {
        include ('include/languages/ar.php');
        setcookie("languagecookie","ar",time()+604800);
    }
    elseif ($idlang == "en")
    {
        include ('include/languages/en.php');
        setcookie("languagecookie","en",time()+604800);
    }
}
else
{
    include ('include/languages/ar.php');
    setcookie("languagecookie","ar",time()+604800);
}
 

رد: ارجو المساعدة

مرسل: 30 مايو 2011, 23:30
بواسطة saanina

كود: تحديد الكل

$current_lang = 'ar';
if(isset($_GET['idlang']))
{
    $c = preg_replace('![^a-z]!i', '', $_GET['idlang']);
    $current_lang = ($c == 'ar' or $c == 'en') ?  $c : $current_lang;
}
elseif(isset($_COOKIE['languagecookie']))
{
    $c = preg_replace('![^a-z]!i', '', $_COOKIE['languagecookie']);
    $current_lang = ($c == 'ar' or $c == 'en') ?  $c : $current_lang;
    setcookie("languagecookie",$current_lang,time()+604800);
}

include ('include/languages/' . $current_lang . '.php'); 

رد: ارجو المساعدة

مرسل: 07 ديسمبر 2011, 13:38
بواسطة matrixboy
اعتقد ان session افضل و أأمن