Автор Тема: Создание файла и вывод содержимого файла через include  (Прочитано 1014 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Здравствуйте.

Люди подскажите пожалуйста, можно-ли так делать и правильно ли это:

Создал я отдельный файл /inc/footer2.php который хочу вывести (подключить) через <?PHP include("inc/_footer2.php"); ?> на определенной странице в ФФ.

И вот у меня вопросы, а именно:
1) будет ли это считаться правильным решением и можно ли так делать?
2) если все нормально исходя из вопроса 1, то нужно-ли прописывать данный файл где-то в самом скрипте в конкретном файле?
3) в файле inc/_footer.php был прописан такой код и нужно ли этот код прописывать в файл inc/_footer2.php ?

Сам код в файле inc/_footer.php:
<?PHP
if(!isset($_GET["menu"]) OR $_GET["menu"] != "adminka"){
?>
<?PHP } ?>

P.S.
Я через include вывел файл footer2.php и все работает, содержимое файла выводится на той странице которой планировал, но хочется узнать все-ли правильно я делаю и т.п.
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Какая цель у этого файла?

Отсюда вопрос о том, что значит "будет ли считаться это правильным?" ))
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Какая цель у этого файла?

Отсюда вопрос о том, что значит "будет ли считаться это правильным?" ))

Цель такая - мне нужно вывести 3 футера. Попробую объяснить как я хочу чтобы это все работало.

В файле footer.php прописан код:

<?PHP
if(isset($_SESSION["user_id"])){
}else {
футер до авторизации
}
?>

это я оставляю, чтобы один футер показывался только до авторизации на главной и на всех страницах в верхнем меню в шапке.

И такая штука получается. Я не могу прописать в код выше код для футера, который должен показываться после авторизации потому, что если пропишу, то он будет отображаться после авторизации при переходе на страницах которые в меню в шапке. А мне нужно чтобы после авторизации отображался (на страницах в меню в шапке) футер, который прописан до авторизации.

И по этому я создал еще 2 файла footer1.php и footer2.php и попробовал во всех файлах которые находятся в папке /pages/account/ прописать include footer1.php , а в файлы в папке /pages/ я прописал include footer2.php.

И после этого у меня получилось как я хочу:
- до авторизации выводится footer.php на главной и на страницах в меню которое в шапке
- после авторизации footer1.php выводится на всех страницах меню пользователя
- после авторизации footer2.php выводится только в на страницах в меню в шапке (html код такой же как и в footer.php)

Будет ли считаться правильным! Я имею ввиду так можно делать или можно но не желательно, так как я в php полный ноль или может если я сделаю таким образом, то это навредит работе скрипта, или может это грубейшая ошибка с точки зрения php/

Не понимаю можно ли так сделать, так как php не знаю и как вообще это все делается тоже не понимаю и видимо додумался только до такого варианта.
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
Ну просто инклюдить только в нужных файлах футер - это тоже выход. Но что, если понадобиться его убрать, или заменить его на нужный? )) Открывать все эти файлы снова и вносить изменения? - времязатратно очень, я думаю.

Если нужно вывести на определенных страницах футер после авторизации, можно воспользоваться параметром GET, который будет проверять адресную строку ))
if ($_GET['sel']=='bonus' OR $_GET['sel']=='config' OR .... ) {
include ("footer1.php");
}else
include ("footer2.php");
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Ну просто инклюдить только в нужных файлах футер - это тоже выход. Но что, если понадобиться его убрать, или заменить его на нужный? )) Открывать все эти файлы снова и вносить изменения? - времязатратно очень, я думаю.

Если нужно вывести на определенных страницах футер после авторизации, можно воспользоваться параметром GET, который будет проверять адресную строку ))
Код: [Выделить]
if ($_GET['sel']=='bonus' OR $_GET['sel']=='config' OR .... ) {
include ("footer1.php");
}else
include ("footer2.php");

Да, это точно, все файлы открывать это времени много тратиться, а с изменениями как-то не подумал.
Я не понимаю как этим кодом с параметром GET пользоваться и куда прописывать((( Для меня это трудно без подробного/наглядного объяснения.
 

whoohaw

  • *
  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! За помощь пользователям Более 250 сообщений За финансовую помощь форуму !!! Репутация более 15 За время в онлайне на форуме Более 10 созданных тем
  • Дата регистрации: Апр. 2018
  • Расположение: Тверь
  • Возраст: 35
  • Сообщений: 320
  • Страна: ru
  • Поблагодарили: 27 раз(а)
  • Репутация +17/-1
  • Пол: Мужской
  • Дата рождения:
    1988-09-21
    Социальные сети:
    ВКонтакте
У тебя есть в корневом индексе свитч, прогоняющий параметр GET. В зависимости от того, что забито в GET-меню - отсюда инклюдится нужный файл (если menu = news, то инклюдим новости, если rules - то rules и тд). Посмотри. Там же ты добавляешь правила для новых файлов, если в этом есть необходимость. То есть у тебя есть переменная, которая ловится из адресной строки, это menu.

Если же ты посмотришь файлы аккаунта, то в роли переменной выступает sel, в файле pages/_account.php (sel = bonus, инклюдим bonus и тд.)

соответственно теперь ты знаешь какие переменные чекать, для того, чтобы проверить.
Ты кстати можешь открыть ссылку на сайте независимо от правила в htaccess, например:
сайт.ру/?menu=account&sel=config

Обрати внимание, menu = account, а sel = config
С учетом правил сервера, эта же страница будет доступна по адресу сайт.ру/account/config. Но для понимания работы - надо переводить для себя в голове хотя бы обратно, на ссылку вида не ЧПУ ))

Админские файлы еще используют GET для динамического генерирования страницы. В зависимости от №. Админский файл пользователей. А именно редактирование пользователей. Посмотри какой параметр GET отвечает за id
 пользователя и выводит его инфу.
Только представь, на проекте более 10 тыс человек и для того, чтобы редактировать каждого нужно было бы заводить отдельную страницу на каждого пользователя. Как раз параметр GET тебе и здесь помогает, он именно помогает генерировать новую страницу, в зависимости от написанного id пользователя в адресной строке.

Так же работают форумы, новостные порталы и тд. Это всего лишь 1 файл, однако он позволяет генирировать тысячи или даже миллионы новых страниц.
 

nikogdaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 50 созданных тем Топ 10 по созданным темам
  • Дата регистрации: Июль 2016
  • Сообщений: 201
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
У тебя есть в корневом индексе свитч, прогоняющий параметр GET. В зависимости от того, что забито в GET-меню - отсюда инклюдится нужный файл (если menu = news, то инклюдим новости, если rules - то rules и тд). Посмотри. Там же ты добавляешь правила для новых файлов, если в этом есть необходимость. То есть у тебя есть переменная, которая ловится из адресной строки, это menu.

Если же ты посмотришь файлы аккаунта, то в роли переменной выступает sel, в файле pages/_account.php (sel = bonus, инклюдим bonus и тд.)

 


соответственно теперь ты знаешь какие переменные чекать, для того, чтобы проверить.
Ты кстати можешь открыть ссылку на сайте независимо от правила в htaccess, например:
сайт.ру/?menu=account&sel=config

Обрати внимание, menu = account, а sel = config
С учетом правил сервера, эта же страница будет доступна по адресу сайт.ру/account/config. Но для понимания работы - надо переводить для себя в голове хотя бы обратно, на ссылку вида не ЧПУ ))

Админские файлы еще используют GET для динамического генерирования страницы. В зависимости от №. Админский файл пользователей. А именно редактирование пользователей. Посмотри какой параметр GET отвечает за id
 пользователя и выводит его инфу.
Только представь, на проекте более 10 тыс человек и для того, чтобы редактировать каждого нужно было бы заводить отдельную страницу на каждого пользователя. Как раз параметр GET тебе и здесь помогает, он именно помогает генерировать новую страницу, в зависимости от написанного id пользователя в адресной строке.

Так же работают форумы, новостные порталы и тд. Это всего лишь 1 файл, однако он позволяет генирировать тысячи или даже миллионы новых страниц.


Я посмотрел файл корневой. Инклудится меню в шапке, админка, страница входа и т.д. кроме меню пользователя. Теперь стало понятно и в этот код надо прописывать новые страницы которые я хочу увидеть в меню.

Также я вижу что там инклудится футер inc/_footer.php и он общий для всего сайта получается. Значит нет необходимости прописывать каким-то образом @include("inc/_footer1.php"); и @include("inc/_footer2.php"); - так что-ли получается...
Вообще не понимаю(

# Шапка
@include("inc/_header.php");

      if(isset($_GET["menu"])){
      
         $menu = strval($_GET["menu"]);
         
         switch($menu){
         
            case "404": include("pages/_404.php"); break; // Страница ошибки
            case "rules": include("pages/_rules.php"); break; // Правила проекта
            case "about": include("pages/_about.php"); break; // О проекте
            case "contacts": include("pages/_contacts.php"); break; // Контакты
            case "news": include("pages/_news.php"); break; // Новости
            case "login": include("pages/_login.php"); break; // Вход
            case "adminka": include("pages/_admin.php"); break; // Админка
                                и т.д.   
         # Страница ошибки
         default: @include("pages/_404.php"); break;
         
         }
         
      }else @include("pages/_index.php");


# Подвал
@include("inc/_footer.php");

# Заносим контент в переменную
  :flud:
Если мне прописать в /pages/_account.php после строк
   # Страница ошибки
   default: @include("pages/_404.php"); break;   
   }      
}else @include("pages/account/_user_account.php");

следующее:

# Подвал
@include("inc/_footer1.php");

То получается будет выводиться html код футера на всех страницах меню пользователя из файла _footer1.php ... Это то, что нужно. Я попробовал и получилось.

Но ведь после авторизации я посмотрел и  показывается в меню в шапке футер inc/_footer1.php, а мне нужен будет inc/_footer.php

Опять что-то не то(((
 
Теги: