За последние 24 часа нас посетили 95455 программистов и 5890 роботов. Сейчас ищут 2344 программиста ...

1 документ, но 2 страницы.

Тема в разделе "PHP для новичков", создана пользователем Sofia, 25 сен 2008.

  1. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    Sofia
    PHP:
    1. <?php $ShowData = array('files', 'user', 'faq', 'videx'); ?>
    muheroes
    во-первых, register_globals
    во-вторых,
    тоже подключится

    Давал же ссылку.
    PHP:
    1. <?php
    2. $mode = 'default';
    3. if ( isset($_GET['mode']) ) {
    4.    if ( !empty($_GET['mode']) ) {
    5.       if ( !preg_match("#[^a-z]#s", $_GET['mode']) ) {
    6.          $mode = $_GET['mode'];
    7.       }
    8.    }
    9. }
    10. $filename = 'modules/module_' . $mode . '.php';
    11. if ( file_exists($filename) ) {
    12.    include $filename;
    13. } else {
    14.    include 'includes/error.php';
    15. }
    16. ?>
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    время от времени приходитсяделать что-то вроде презентации для узкого круга ограниченных людей, 10-15 страниц, иногда с динамикой, иногда без. Мне так нравится:
    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. $SITEASK=1;
    4. require_once 'functions.php';
    5. $content = array('1'=>'Overwiew',
    6.                  '2'=>'Gallery 1',
    7.                  '3'=>'Gallery 2',
    8.                  '8'=>'Leave a comment');// и т.д.
    9.  
    10. RemoveMagic();
    11. $cmd = (isset($_GET['a']))?(int)$_GET['a']:1;
    12. if(!array_key_exists($cmd,$content)){
    13.     header('Location: 404.htm');die;
    14. }
    15. $title = $content[$cmd];
    16. if(file_exists('actions/act_'.$cmd.'.php'))
    17.     require_once 'actions/act_'.$cmd.'.php';
    18. require_once 'tpl/general.tpl';  
    19. ?>
    в act_N.php готовим всё что необходимо для вывода, general.tpl - всякий html-мусор и подключение файла tpl_N.tpl, который выводит сгенеренную в act_N.php информацию. (N — id страницы)
     
  3. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    muheroes ты сначало прочти трид :). Она хочет вообще без инклюдов сделать. Всё в 1 файле. Luge, спасибо за поправку. Sofia могла бы и логически помыслить и понять что я слово array забыл приписать. Я ведь эти скрипты на ходу пишу не проверяя.
     
  4. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Luge тоже не работает :) вроде задачка и не сложная, а даже такие умы как вы голову ломаете как сделать :)
    PHP:
    1. <?php
    2.  $ShowData = array('files', 'user', 'faq', 'videx'); // Это все возможные варианты
    3.  define('DEFAULT_DATA', 'files'); // Это то, что будет грузится по умолчинию, либо если указанный файл не находится в вышеописанном массиве
    4.  
    5.  $show = ( isset($_GET['page']) && in_array($_GET['page'], $ShowData) ? $ShowData : DEFAULT_DATA);
    6.  if ('files' === $show)
    7.  {
    8.      echo 'я бывший files.php';
    9.  }
    10.  elseif('user' === $show)
    11.  {
    12.      echo 'я бывший user.php';
    13.  }
    14.  elseif('faq' === $show)
    15.  {
    16.      echo 'я бывший faq.php';
    17.  }
    18.  elseif('videx' === $show)
    19.  {
    20.      echo 'я бывший videx.php';
    21.  }
    22.  else
    23.  {
    24.      echo 'Никакой страницы не загружено, либо можно грузить любую другую по умолчанию';
    25.  }
    26.  ?>
    файл сохранен в index.php, соответственно и грузится страница define('DEFAULT_DATA', 'files'); при открытии
    index.php?page=user открывает последнее условие Никакой страницы не загружено, либо можно грузить любую другую по умолчанию, у меня уже все варианты закончились... вчера до 3 утра сидела, листала учебник, не выходит... ну что тут говорить что у меня не выходит, даже если у таких умов как Вы не получается :(
     
  5. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    ну да :) тут ещё 1 опечатка

    вместо
    $show = ( isset($_GET['page']) && in_array($_GET['page'], $ShowData) ? $ShowData : DEFAULT_DATA);

    надо
    $show = ( isset($_GET['page']) && in_array($_GET['page'], $ShowData) ? $_GET['page']: DEFAULT_DATA);
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Попов??
    по теме, самое простое решение - модули
    PHP:
    1.  
    2.  <?php
    3.  $ShowData = array('files', 'user', 'faq', 'videx'); // Это все возможные варианты
    4.   define('DEFAULT_DATA', 'files'); // Это то, что будет грузится по умолчинию, либо если указанный файл не находится в вышеописанном массиве
    5.   $show = ( isset($_GET['page']) && in_array($_GET['page'], $ShowData) ? $_GET['page'] : DEFAULT_DATA);
    6.   include "moduls/".$show.".php";
    7. ?>
     
  7. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    Я ещё раз повторюсь :). Девушка без инклюда хочет сделать.
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    это плохо
    надо с инклюдом
    но а если так хочется без инклюда, то его можно заменить скажем на функции или методы
     
  9. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    Ну это понятно, что это извращение. Но желание по извращаться другой раз заставляет в расплох даже таких милых обитателей этого форума :).
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ну тогда (да простит меня и эту милую девушку php интерпретатор )
    PHP:
    1. <?php
    2.   $ShowData = array('files', 'user', 'faq', 'videx'); // Это все возможные варианты
    3.   define('DEFAULT_DATA', 'files'); // Это то, что будет грузится по умолчинию, либо если указанный файл не находится в вышеописанном массиве
    4.  
    5.   $show = ( isset($_GET['page']) && in_array($_GET['page'], $ShowData) ? $_GET['page'] : DEFAULT_DATA);
    6.   if ('files' === $show)
    7.   {
    8.      echo 'я бывший files.php';
    9.   }
    10.   elseif('user' === $show)
    11.   {
    12.      echo 'я бывший user.php';
    13.   }
    14.   elseif('faq' === $show)
    15.   {
    16.      echo 'я бывший faq.php';
    17.   }
    18.   elseif('videx' === $show)
    19.   {
    20.      echo 'я бывший videx.php';
    21.   }
    22.   else
    23.   {
    24.      echo 'Никакой страницы не загружено, либо можно грузить любую другую по умолчанию';
    25.   }
    26.   ?>
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    Mr.M.I.T., тогда уж, чтобы лишнего не городить
    PHP:
    1. <?php
    2. $page = (isset($_GET['page']) && !empty($_GET['page']))?trim($_GET['page']):'index';
    3. switch($page){
    4.     case 'index':
    5.         echo 'index.php';
    6.     break;
    7.     case 'files':
    8.         echo 'files.php';
    9.     break;
    10.     case 'faq':
    11.         echo 'faq.php';
    12.     break;
    13.     default:
    14.         echo '404.php';
    15.     break;
    16. }
    17. ?>
    читабельность от этого, конечно, лучше не станет
     
  12. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    neverlose да я GET тоже ставила, всеравно не вызываются страницы. тут еще что-то.
     
  13. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Mr.M.I.T.
    хм, именно так и работает :) спасибо.
     
  14. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    с тебя ужин =)
     
  15. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    neverlose
    об ужине рано еще думать :) максимум вечерний пирог :)
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а я вот хочу узнать, где ты взяла такой код?
    Код (Text):
    1. if (isset($_GET['id'])) {$id = $_GET['id'];}
     
  17. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Mr.M.I.T. из учебника "PHP+MySQL для начинающих" автор Евгений Попов
     
  18. Anonymous

    Anonymous Guest

    АААААААААААААААААААААААааа!!!!!111
     
  19. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.111
    Симпатии:
    20
    xDDDDDDDDDDDD
     
  20. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    н*х, *лять, на кол Попова!
    Зы. Кстати очень часто замечаю в последнее время эту конструкцию...
     
  21. Sofia

    Sofia Активный пользователь

    С нами с:
    25 сен 2008
    Сообщения:
    972
    Симпатии:
    2
    Mr.M.I.T. видимо Попов пропагандирует скрытые баги :) зато у него самые доступные уроки - видео... даже натуральная блондинка поймет :)
     
  22. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.676
    Симпатии:
    1
    Адрес:
    Минск
    не, он почву готовит для массового хака
     
  23. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    самое страшное что его ученики начали на ВебЛансере Появляться!