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

كل مايخص سكربتات وتساؤلات لغة PHP
مغلق
waleed_kh
عضو جديد
مشاركات: 4
اشترك في: 08 فبراير 2011, 08:59

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

مشاركة بواسطة waleed_kh »

السلام عليكم و رحمة الله و بركاته

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

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

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

و شكرا لكم
Saif Alhak
عضو مفيد
مشاركات: 107
اشترك في: 24 مارس 2009, 20:45
مكان: Damascus - Syria
اتصال:

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

مشاركة بواسطة 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 الصفحة كمتغيرات وحفظها في قاعدة البيانات والتحقق قبل زيادة العدد
waleed_kh
عضو جديد
مشاركات: 4
اشترك في: 08 فبراير 2011, 08:59

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

مشاركة بواسطة 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);
}
saanina
عبدالرحمــــن
مشاركات: 3762
اشترك في: 30 أغسطس 2004, 13:54

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

مشاركة بواسطة saanina »

بدل

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

$idlang intval($_COOKIE['languagecookie']); 


بـ

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

$idlang preg_replace('![^a-z]!i'''$_COOKIE['languagecookie']); 
waleed_kh
عضو جديد
مشاركات: 4
اشترك في: 08 فبراير 2011, 08:59

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

مشاركة بواسطة 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);
}
 
saanina
عبدالرحمــــن
مشاركات: 3762
اشترك في: 30 أغسطس 2004, 13:54

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

مشاركة بواسطة saanina »

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

if ($idlang="ar")

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

if ($idlang="en")


بدل علامة = بعلامتين هكذا ==
waleed_kh
عضو جديد
مشاركات: 4
اشترك في: 08 فبراير 2011, 08:59

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

مشاركة بواسطة 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);
}
 
saanina
عبدالرحمــــن
مشاركات: 3762
اشترك في: 30 أغسطس 2004, 13:54

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

مشاركة بواسطة 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'); 
matrixboy
عضو جديد
مشاركات: 31
اشترك في: 20 يونيو 2009, 17:28

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

مشاركة بواسطة matrixboy »

اعتقد ان session افضل و أأمن
مغلق