Всем добрый день. Занимаюсь php пару месяцев, написал небольшой сайтец аля homepage и потихоньку осваиваю фрейм CI. Учу для себя, от н.хер делать, поэтому вступать в полемику кто круче программист и т.п. не хочу. А вопрос такого характера-суть пхп это формирование дин. страниц. Насколько я понимаю отличие от обычного html в том что страница генерируется в зависимости от входных параметров со стороны пользователя и формируется не лету, так сказать. Иначе можно было б все на html сделать ручками и через ссылки выдавать,(ну может почти все). Вот, но у меня все структура сайта и вообщее мое видение так и получается через if($_Request['что']-ну доступ к разделам через ссылки фактически) -> подгружаем страничку такую то(и эта страничка уже лежит сверстанная в нужной директории). Отсюда у меня вопрос-где ж тогда эта динамика. Ладно у меня там на сайте с десяток пунктов меню и всё, хотя даже и так простынь приличная получается с if $_Request ..... А что будет если это будет нечто интернет магазина что ли. Да я понимаю что я могу просто передать переменныt через массив в html но это мне не даст получение новой страницы с другим интерфейсом. Ну думаю я выразился понятно. Но навсяк случай резюмирую кратко- неужели сайт строить на по логики if get[..] include!!! И даже вот пример такого говнокода Код (Text): <?php echo "<div class='homepage' align='center'>Домашняя страничка</div>"; require_once "scripts/auth_form.php"; if(isset($_SESSION['login'])) { include_once "scripts/online.php"; echo "<div align='right'>Добро пожаловать ".$_SESSION['login']."</div>"; echo "<div class='menu' align='right'><a href='?out'>Выйти</a></div><br>"; include_once "templates/r.html"; if(isset($_REQUEST['main'])){echo "<div class='f'align='center'><img src='images/me.gif' width='250'> <p style='width: 200;'>Это мой первый сайт.</p></div>";} if (isset($_REQUEST['backbond'])) {?><div align="center"><?php include_once "scripts/guestbook2.php";}?></div><?php if (isset($_REQUEST['contacts'])) echo "<div align='center' class='contacts'> Кому надо, тот знает</div>"; if(isset($_REQUEST['products'])) { include_once "scripts/pagination.php"; } if (isset($_REQUEST['forum'])) { include_once "scripts/forum.php"; } if(isset($_REQUEST['video'])) { echo "<div align='center' style='color: cyan'>Текст......<img src='images/smile.gif'></div>"; echo "<div align='center'> <embed class='video' src='images/me.mp4'></embed></div>"; } function out() { $_SESSION=array(); session_destroy(); } if(isset($_REQUEST['out'])) {out(); header('Location:r.php');} } else { include_once "templates/auth_form.html"; include_once "templates/r.html"; echo "<div align='center' class='contacts'> Страница доступна только авторизованным пользователям</div>"; echo "<embed hidden='true' src='images/Untitled.mp3'></embed>"; } include "scripts/reminder.php"; ?> Добавлено спустя 2 минуты 26 секунд: то есть или я абсолютно не понимаю концепцию php либо скажите как правильно надо.
хз что ты хотел сказать, но правильно начинать с основ и не перепрыгивать через 10 ступенек. люди понимают только внятный короткий вопрос — работай над этим.
печально что ты не понял вопрос, несмотря на то что я для "особых" форумчан резюмировал вопрос в предпоследнем предложении. Думаю тебе пока лучше потренировать память, перед тем как приступать к таким сложным технологиям как форум, несмотря на то что ты зарегистрирован с 2010 года(((((( работай над этим
бабке своей хами. концепцию ты не понял, потому что пхп может быть где угодно и соотв. вся страница может собираться динамически, а не только выбирать что с харда где считать.
я могу твоей бабке похамить..........и не только. давай координаты Добавлено спустя 1 минуту 57 секунд: странно, был задан обычный вопрос реализации формирования страниц на похапе и даже написано предупреждение что меряться х.ями я не собираюсь, и тем не менее все равно тролли залезли. делать что ли нечего.......
В блоге, интернет магазине, или где либе ещё, контент храниться в базе данных, а в виде таблиц. Например, таблица post хранит названия поста, и содержание. Страница, которая отображает пост одна. Она просто подгружает из базы нужные данные. Учите mysql, и ООП
ты реально хочешь стрелу со мной забить чтоли? я ж не один приеду, а с друзьями, на чёрных бэхах, и мы тебя отмудохаем как бомжа. Ты здоров? Добавлено спустя 3 минуты 35 секунд: ************* =) ты с Украины съехал чтоли? Рашка давит твой любимый город? Иди там кулаками помаши.
о, хоть один конструктивный ответ. php и mysql учил но пока не на том уровне видимо чтоб это все реализовывать полностью. Моих знаний в mysql хватает только для написания гостевых книг, регистрация и т.п. Добавлено спустя 1 минуту 25 секунд: маладэц ты меня вычислил, тепер буду не спать бояться))))))))))))))))
у Андрея был конструктивный ответ: хочешь говорить с людьми - говори на их языке. Для этого надо чуток подучить терминологию. У меня был конструктивный ответ: пхп может сформировать страницу налету. Всю. Целиком всю. То что ты там что-то подгружаешь с харда - это твоё частное решение. Можно и без этого. нафиг ты мне нужен. А вот твоё "давай координаты" в тусовке программистов совсем неуместно. Хочешь чтобы люди делились с тобой знаниями, если уж книжки читать тебе лень, то будь вежлив. Хотя судя по request тебе не лень читать, но читаешь ты что-то старое очень. Эта переменная давно не используется в практике. Добавлено спустя 14 минут 33 секунды: Вот темка с книгами viewtopic.php?f=13&t=4537
Воу-воу-воу, шайтан, как ты это делаешь? Я бы понял, если бы ты загуглил, но в гуглах по запросу gix немного-то накопаешь... Как ты это делаешь, а?
подскажите тогда как еще можно наладить связь с пользователем если не через тот же request. то есть как сигнализировать скрипту что если нажал на это то запусти это?
что значит не через реквест? пользователь на клиенте, пых на сервере. пользователь нажал на что-то - браузер делает ЗАПРОС к серверу и тот уже в свою очередь запускает пхп машину, которая в свою очередь запускает подходящий скрипт. реквест это и есть запрос от одной точки к другой. в данном случае от клиента к серверу. а если ты про суперглобальный массив то игорь прав - что-то очень древнее ты читаешь. есть контекстные суперглобальные массивы. реквест это салат из них же, но поскольку ключи уникальны - будут данные из последнего в очереди объявления.
я имею ввиду следующее-представь у меня есть страница на которой 30 ссылок на что либо. То есть что писать 30 раз if request-я про это, то есть как можно такиее вещи писать более компактно, вот вопрос.поэтому спрашиваю как такие вещи реализуются в современном мире. P.S. читаю щас нативно котерова Добавлено спустя 59 секунд: ну и речь конечно идет про суперглобальный массив, где ключ-это имя ссылки
$_GET и $_POST теперь используются вместо $_REQUEST, вот о чем я. Добавлено спустя 2 минуты 19 секунд: Ты давай ссылки на разные пхп файлы или сделай обработку всех урлов в индекс.пхп.
спасибо за ответы. разговор вошел в норм русло. ну если честно не вижу(читай не знаю) как разница принципиальная между get и request, то есть объем кода не поменяется все равно, если я просто заменю $_request на $_get, в обеих случаюх данные в строке url будут отображаться. Post юзаю когда нужно передать личные данные аля пароль логин и т.п. Ну а вообщем так и получается что я даю ссылки на скрипты через get/request.Мне товарищ (матерый программер) рассказывал что через какие то фактори все делается но я пока хз что это
Пришел к понимаю того что необходимо структурировать код. Взял фреимворк, гуд. В приложение должен быть роутинг который получая тот или иной урл определял какой класс какой метод вызывать, и разделяй html от php да бы в твою сторону не посыпались проклятия от виртуозов пыха. Посмотри в гугле как написать простой mvc фреимворк, а дальше думай практикуйся.
спс за совет. я как раз сейчас и занимаюсь нечто подобным Код (Text): class Article extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('articles'); } public function index() { $data=array( 'title'=>'news_3', 'text'=>'Это статья про новости культуры и спорта' ); $this->articles->insert_data($data); } public function show_news() { $this->articles->show_data(); } } Добавлено спустя 54 минуты 44 секунды: ну я это понимаю что все делается динамически, ибо сделать даже какой нибудь простой проект с моей методикой нереально(или ацкей гемор).Другое дело что мне не хватает знаний как это на практике сделать. Хотя я понимаю суть ООП(еще на c# практиковал немного), знаю базовые запросы sql но этого недостаточно.Я понимаю как там с бд вытащить какой то текст и за.башить типа раздел новостей который удачно показывается в мануале CI, НО КАК запихнуть в бд полностью клиентскую часть, дизайн, картинки и прочую херь хз, то есть смена визуализации при переходе на разные страницы. И книги и всякие статьи я постоянно читаю и там же научился этой хрени с html-ю аля href=?puk if $_request['puk'] то....примеров же другой реализации пока не встречал. Добавлено спустя 14 минут 4 секунды: ну я это понимаю что все делается динамически, ибо сделать даже какой нибудь простой проект с моей методикой нереально(или ацкей гемор).Другое дело что мне не хватает знаний как это на практике сделать. Хотя я понимаю суть ООП(еще на c# практиковал немного), знаю базовые запросы sql но этого недостаточно.Я понимаю как там с бд вытащить какой то текст и за.башить типа раздел новостей который удачно показывается в мануале CI, НО КАК запихнуть в бд полностью клиентскую часть, дизайн, картинки и прочую херь хз, то есть смена визуализации при переходе на разные страницы. И книги и всякие статьи я постоянно читаю и там же научился этой хрени с html-ю аля href=?puk if $_request['puk'] то....примеров же другой реализации пока не встречал.
Перед тем, как пытаться что-то сделать на MVC-фрейморке, неплохо бы почитать, что такое mvc В бд всю клиентскую часть никто не пихает - на это есть часть view и шаблоны для неё. Ты, к примеру, вытаскиваешь из базы текст поста (этим занимается слой под названием Модель), передаёшь его в вьюху (это контроллер), а она уже отображает всё, что поста не касается... Картинки спокойно себе лежат на жёстком диске сервера... https://ru.wikipedia.org/wiki/Model-View-Controller
ты наверное хотел сказать что модель вытащила данные, передала в контроллер, контроллер подгрузил вьюху и загрузил в неё данные обработанные моделью. насколько я знаю алгоритм работы этого патерна такой Добавлено спустя 1 минуту 3 секунды: модель и view не должны взаимодействовать напрямую, все через логику контроллера
Модель не передаёт данные в контроллер по своей инициативе - контроллер просит её это сделать. Может у меня в посте и не так сформулировано. Если ты это понимаешь, то почему хочешь пихать в базу всё, что может прийти в голову?
я ничего не собираюсь, я просто задаю вопросы людям, которые предполагается хорошо шарят предмет, и пытаюсь может для себя что то новое выяснить, в части оптимизации кода и т.п. P.S. даже не представляю как модель может что то делать по своей инициативе, если я ее подгружаю в контроллер и из него вызываю те методы модели которые мне нужны. Добавлено спустя 4 минуты 1 секунду: вообщем судя по ответам я сделал такие выводы-взаимодействие с клиентом либо через get/request либо роутинг. текстовая часть хранится в базе данных и подргужается в шаблон(он же вью), остальное же все верстается ручками, ну либо скрипты подгружается, короч смотря что надо вывести.
Не, ну тут всё зависит от того, какой сайт делается. Если у меня сайт с автомобильными объявлениями, то в базе хранится не текст, а все поля, какие должны быть заполнены для таких объявлений - т.е. тип коробки передач, тип кузова, количество дверей и пр. А вьюха уже преобразует это дело в html для вывода клиенту.