نمایش نتایج 1 تا 4 از 4

نام تاپیک: استفاده از متغیر ها در Url

  1. #1

    Question استفاده از متغیر ها در Url

    سلام
    من یک کوکی lang داخل برنامه تعریف کردم که زبان رو تعیین میکنه و متغیر translations رو عوض میکنه دو تا پوشه داخل برنامه هستن که یکی زبان فارسی و دیگری انگلیسیه میخوام به صورت زیر اسکریپت رو تغییر بدم جوری که اگر متغیر فارسی بود زبان فارسی و اگر متغیر انگلیسی بود زبان انگلیسی انتخاب بشه داخل اسکریپت به این صورته:

    require_once(DIR . '/../translations/user_translations/trans-thanks.php');
    میخوام اینطوری باشه(قسمت translations بر اساس متغیر تعریف شده تغییر کنه):
    require_once(DIR . '/../$translations/user_translations/trans-thanks.php');

    مثلا اگر انگلیسی بود بشه:

    require_once(DIR . '/../english/user_translations/trans-thanks.php');


    ولی وقتی به این حالت در میاد به جای جایگزین کردن متغیر translations ، کلمه $translations رو داخل url میذاره و پوشه $translations رو باز میکنه

    کسی میدونه چطور این متغیر رو داخل url بذارم؟ اگر امکانش هست لطفا راهنمایی کنید ممنون از توجهتون

  2. #2

    نقل قول: استفاده از متغیر ها در Url

    سلام

    یکی از دو روش زیر را امتحان کنید:

    (به جایگزین شدن دابل کوتیشن بجای کوتیشن دقت کنید)


    require_once(DIR . "/../$translations/user_translations/trans-thanks.php");
    //یا این
    require_once(DIR . '/../'.$translations.'/user_translations/trans-thanks.php');



    به این نکته امنیتی توجه داشته باشید که تمامی متغییرهای دریافتی از سمت کاربر باید اعتبارسنجی شود علاوه بر این باید مقدار پیش فرض آن نیز مشخص شود مثلا اگر کوکی زبان خالی بود کدام زبان به عنوان پیش فرض در نظر گرفته شود. به عنوان مثال:

    $translation = $_COOKIE['lang']=='english' ? 'english':'persian';
    آخرین ویرایش به وسیله ali_sed : پنج شنبه 23 خرداد 1398 در 13:33 عصر

  3. #3

    نقل قول: استفاده از متغیر ها در Url

    سلام
    خیلی متشکرم از راهنماییتون
    راه پیشنهادیتون جواب داد


    به نکته خوبی اشاره کردید،
    به این کد توجه کنید
    <?php
    if (isset($_COOKIE["translations"])){
    $translations = $_COOKIE['translations'];
    } else {
    $translations = "translations";
    }
    ?>

    منظورتون همینه دیگه؟

  4. #4

    نقل قول: استفاده از متغیر ها در Url

    نقل قول نوشته شده توسط erfansaberi مشاهده تاپیک
    سلام
    خیلی متشکرم از راهنماییتون
    راه پیشنهادیتون جواب داد


    به نکته خوبی اشاره کردید،
    به این کد توجه کنید
    <?php
    if (isset($_COOKIE["translations"])){
    $translations = $_COOKIE['translations'];
    } else {
    $translations = "translations";
    }
    ?>

    منظورتون همینه دیگه؟
    خیر منظورم اینه نباید به داده‌های دریافتی از سمت کلاینت اعتماد کنید. مثلا کاربر بیاد دستی مقدار کوکی را تغییر بدهد و چیزی غیر از مقادیر مورد انتظار شما english یا persian درج کند. بنابراین شما باید مقدار کوکی را بررسی کنید که حتما یکی از این دو مقدار باشد.

    چون دو تا بیشتر نیست همین یک خط کفایت می کند:
    $translation = $_COOKIE['lang']=='english' ? 'english':'persian';


    برای تعداد بیشتر میتوانید مقادیر مجاز را در یک آرایه بریزید و از دستور in_array استفاده کنید:

    $langs = ['persian', 'english'];
    $translation = in_array($_COOKIE['lang'], $langs) ? $_COOKIE['lang'] : 'english';//default value

تاپیک های مشابه

  1. دلیل استفاده متد Class.forName بدون تخصیص به متغیر؟! ( در استفاده از دیتابیس )
    نوشته شده توسط vahid-p در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 5
    آخرین پست: پنج شنبه 05 تیر 1393, 22:04 عصر
  2. سوال: استفاده از متغیر در تعریف متغیر
    نوشته شده توسط nourooz در بخش VB.NET
    پاسخ: 2
    آخرین پست: دوشنبه 01 مهر 1392, 10:25 صبح
  3. متغیرهایی که با _ شروع می شوند چه نوع متغیری هستند؟
    نوشته شده توسط A_2006 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: چهارشنبه 04 اردیبهشت 1392, 19:25 عصر
  4. روش استفاده از متغیرهای session سطح solution استفاده کنم
    نوشته شده توسط حمید رضا منتظران در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: پنج شنبه 19 خرداد 1384, 14:37 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •