За последние 24 часа нас посетили 26972 программиста и 1512 роботов. Сейчас ищет 821 программист ...

Обработка ссылок на единый документ

Тема в разделе "Прочие вопросы по PHP", создана пользователем unrecovered, 3 фев 2014.

  1. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Приветствую. Задача следующая. Есть портфолио, состоящее из ~30 ссылок на документы, созданные по шаблону: стандартные шапка и подвал, картинка, описание. Хочу сделать, чтобы документ был один, все ссылки вели на него, а в зависимости от того, по какой ссылке на него перешли, менялись описание с картинкой.

    С чего начать? Реализуемо ли это вообще?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это называется cms
     
  3. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    А меж тем, я нашёл, как это сделать! Но не скажу, как =) И цмс тут не нужна. Кстати, ваша-то цмс такое может? 8)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да, можно обойтись кодом на пхп. цмс работает на пхп. на том же принципе. на этом принципе работает весь веб. приходит запрос, анализируется, отдаётся контент подходящий под запрос. что такого-то там ты наизобретал - не ясно.
     
  5. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    а ты от ответа уклонился, и чего теперь? 8)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я не уклонился ни от чего. ты похоже просто не понимаешь каких-то базовых вещей.
     
  7. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Чего это, например? Того, что ответ
    считается исчерпывающим? :) Мне интересен механизм организации такой генерации страниц, поэтому я и написал "С чего начать?". А эта отписка является флудом в чистейшем виде и, видимо, желанием отметиться в каждой теме на этом форуме.

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

    А то, знаешь, так можно на дофига вопросов ответить.

    Как организовать создание страниц из SQL-базы?
    А как сделать регистрацию пользователей на сайте?
    Ну а вывод новостей в ленту как организовать?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да

    переменные, массивы, классы и далее по нарастающей

    это единственное предназначение языка PHP - генерация страниц. С того, чтобы учить язык, очевидно. =) но уже есть масса готовых и хороших cms. Зачем изобретать свою?

    ты просто не понимаешь ответов. чего психуешь. задавай уточняющие вопросы.

    воистину так
    Какой умный человек это сказал! Согласен с ним!
    В точку!

    чего не так-то?
     
  9. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Разберись в этом примере:
    index.php
    Код (PHP):
    1. <?php
    2. $id = 0;
    3. if (isset($_GET['id'])) {
    4.     $id = (int)$_GET['id'];
    5. }
    6. ?>
    7. <!DOCTYPE html>
    8. <html>
    9. <head>
    10. <meta charset="UTF-8">
    11. <title>title</title>
    12. </head>
    13. <body>
    14.     <menu>
    15.         <ul>
    16.             <li>[url="index.php?id=1"]Документ 1[/url]</li>
    17.             <li>[url="index.php?id=2"]Документ 2[/url]</li>
    18.             <li>[url="index.php?id=3"]Документ 3[/url]</li>
    19.         </ul>
    20.     </menu>
    21.  
    22.     <content>
    23. <?php
    24. if ($id > 0) {
    25.     if (file_exists("inc/$id.html")) {
    26.         include "inc/$id.html";
    27.     } else {
    28.         echo 'file not found';
    29.     }
    30. }
    31. ?>
    32.     </content>
    33.  
    34. </body>
    35. </html>
    В подпапке "inc" пусть будут документы с именами 1.html, 2.html, 3.html и т.д., которые будут подключаться в зависимости от параметра id в адресе. В них может быть часть обычной html разметки, например:
    1.html
    Код (PHP):
    1. <p>
    2.     content of page 1
    3.     <img src="img/1.jpg" alt="">
    4. </p>
     
  10. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Я не психую, я развлекаюсь =)

    Да не, слишком сложно, сначала научить пользоваться клавиатурой и мышью, создавать новые файлы в блокноте и открывать страницы в браузере :D

    Это мне говорит человек, который нафигачил свою цмс? :D

    Задачу я уж не знаю как конкретнее объяснить. Просто мне показалось, что 30 однотипных страниц - это слегка дохрена, и что достаточно одной, с изменяемым контентом. Мне нужно просто, чтобы адрес сохранялся разный. Чтобы не 30 ссылок на один и тот же php-файл, а 30 ссылок на файлы разные, но физически не существующие, генерящиеся по шаблону при запросе к адресу. Если через мод рерайт, например, то, опять же, получаем редиректы на один файл.

    Я вот нашел способ, но меня не покидает ощущение, что я сделал это через жопу %)
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну я-то знаю зачем она и чем хуже/луче. и у меня какой-никакой опыт имеется. а вам зачем такие страдания? :D

    Покаж фотку способа, а мы поставим диагноз.
     
  12. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Ну у меня, положим, тоже есть опыт с джумлой и вордпрессом, матьихтак... Но вообще для саморазвития :)

    Кстати, а вот товарищ YSandro выложил годный пример, спасибо ему :D Но дело в том, что
    я всё-таки хочу вообще избавиться от лишних файлов. Я уверен, что достаточно одного, и что это реализуемо. Впрочем, file_exists мне пригодится, ибо моя реализация...
    Код (Text):
    1.  
    2. <?php
    3. include "php/portlist.php";
    4. if (in_array($_SERVER['REQUEST_URI'], $port_list)) {
    5.     include "php/template.php";
    6. }
    7. else
    8. {
    9.     include "php/true404.php";
    10. }
    11. ?>
    ...предполагает генерацию из ВНЕЗАПНО 404 страницы :) В стиле "чувак, я не нашел чего ты ищешь, поэтому щас попробую сгенерить" %). Я догадывался, что, в общем-то, посредник в виде сервера не нужен и php может запросы к несуществующим страницам сам перехватывать. В переменную $port_list в данном случае загоняются имена таких страниц. Есть в массиве имя - генерируем. Нет - переходим на настоящую страницу 404 и объявляем, что не нашли.

    Почему именно так? Просто при обращении к, например, http://имясайта/jdfhdfyug, переход осуществляется на 404, но адрес в браузере остаётся таким. Что, собственно, мне и нужно =)
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    достаточно. просто очень неудобно.
     
  14. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Да, но тебе сильно удобно будет копаться в одном большом файле, если нужно будет сделать небольшие правки где-то в середине?
    Используй БД.

    PS. Кстати, вспомнился случай. Один парень на работе изучал PHP, и его первый сайт был именно таким - подключался один большой файл, в котором была сотня if-else и в каждом блоке контент. Не знаю, как его взяли, но выгнали быстро.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это правильно. и кстати я еще раз рекомендую тебе цмски потыркать.
     
  16. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Это будет следующий шаг =) Пока что нужное подгружается из файла, дальше буду разбираться с работой с базой. Я, конечно, сначала сам с гуглом попытаюсь разобраться, но... ждите новую аццкую тему "как сделать..." :D

    В большом файле не придётся копаться, там страница небольшая и разобрана на запчасти, подключаемые через include(Игорь, наверное, помнит мою прошлую тему, где я познал этот метод :D). Там всего блоков-то - подвал, шапка, две картинки, текст описания и форма обратной связи. Негде потеряться =)

    В том и дело, что сайт изначально задумывался как одностраничник, поэтому делался на чистом html. Да и сейчас пока что усилия по переносу на цмс не окупят результат. К тому же, я могу его использовать как полигон, тренировать свой навык в пхп :3
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Добавлено спустя 1 минуту 31 секунду:
    Скоро родится цмс для одностраничников...
     
  18. unrecovered

    unrecovered Новичок

    С нами с:
    24 янв 2014
    Сообщения:
    45
    Симпатии:
    0
    Не говори, что тебя это не радует =)) Ну или, как минимум, забавляет :D
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А че б нет? Модный тренд. Все ссылки на одну страницу, а там хоть трава не рaсти. =)
     
  20. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    веселая тема:-D