Как передать переменную в прикрепляемый файл?

Тема в разделе "PHP", создана пользователем garisson, 21 июн 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. garisson

    garisson Создатель

    Регистр.:
    25 апр 2008
    Сообщения:
    36
    Симпатии:
    5
    Помогите пожалуйста.
    Необходимо передать переменную в прикрепляемый (require include) файл. Переменная лежит в массиве $_GET и меняется от страницы к странице. То есть необходимо в зависимости от этой переменной по разному выполнять включаемый файл. Включаемый файл состоит как из своих внутренних функций (function) так и из обычных блоков if else, while.
     
  2. Karlasan

    Karlasan Постоялец

    Регистр.:
    7 дек 2007
    Сообщения:
    131
    Симпатии:
    205
    не вижу проблемы. напиши в прикрепляемом файле примерно следующее:
    PHP:
    if($_GET['param']=='значение1')
    {
        
    //делаем чтонибудь
    }
    else if(
    $_GET['param']=='значение2')
    {
        
    //делаем еще чтонибудь
    }
    //и так далее
     
  3. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    PHP:
    switch ($_GET['param']) {
            case 
    'value1' команды при value1;
            case 
    'value2' команды при value2;
            case 
    'valueN' команды при valueN;
            default: 
    команды по умолчанию;
    }
    Конечно лучше вместо "команды при value" написать функцию, и на сколько я помню это функции надо описывать до блока switch.
     
  4. vovaNux

    vovaNux Постоялец

    Регистр.:
    10 апр 2007
    Сообщения:
    125
    Симпатии:
    16
    Может, имелась в виду передача переменной и инклуд в зависимости от неё? Тогда будет include ("./".$_GET['param'].".php"); ну, или что-то в этом роде
     
  5. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    какая разница? при include/require все файлы подключенные в один скрипт вроде сливаются
     
  6. cyberquoter

    cyberquoter Создатель

    Регистр.:
    26 июн 2008
    Сообщения:
    22
    Симпатии:
    6
    Вот то, чего нужно ТС. Прошу обратить внимание, что включать файл по GET/POST-параметрам ооочень нехорошо.
    Намного лучше составить список разрешенных ко включению файлов и проверять наличие параметра-имя-файла в этом массиве.
    Ну а так, в упрощенном варианте, будет выглядеть примерно следующим образом:

    PHP:
    <?php
            $file 
    $_GET['myParam'];
            if(
    substr_count($file'../') == false) {
                if(
    file_exists($file)) {
                    
                    
    // Весьма рисковая операция, кстати говоря
                    
    include $file;
                }
            }
    ?>
    Miraage, у этих двух функций одинаковые последствия, но разные механизмы работы. require загружает файл по ходу разбора скрипта (и, соответственно, требует наличия файла) а include - по ходу исполнения скрипта.
    Поэтому, если вы беспокоитесь об оптимизации и ваш скрипт представляет собой многое количество ветвлений - лучше использовать include с проверками ;)
     
Статус темы:
Закрыта.