За последние 24 часа нас посетили 62126 программистов и 1791 робот. Сейчас ищут 929 программистов ...

Создание или образование url

Тема в разделе "Прочие вопросы по PHP", создана пользователем ruteam, 8 май 2015.

  1. ruteam

    ruteam Новичок

    С нами с:
    8 май 2015
    Сообщения:
    5
    Симпатии:
    0
    Не могу найти нужной информации, решил задать вопрос на форуме программистов php.
    Имею сайт http://www.moisait.com. Есть несколько страниц главная, контакты и о нас.
    Но я не хочу создавать файлы и структуру типо http://www.moisait.com/ПАПКА/ПАПКА/ФАЙЛ.
    Нужно чтобы(если я правильно понимаю) всегда сначало запускался файл в корне сайта, наш index.php.
    Анализировал данные.
    И после чего выдавалась нужная страница пользователю. Как это реализовать и через что?
    Коротко:
    1. Человек заходит на сайт http://www.moisait.com
    2. Переходит на страницу через get на http://www.moisait.com/doc?server=что-то
    3. Данные обрабатываются index.php в корне и выдается страница(страницы храняться в базе данных MyQsl)

    Если можно с простым примером, будто на сайте 2 страницы, главная и еще.
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Что именно интересует? "как это работает" или "надо сделать"?
    Если надо сделать, то тут проще всего без познаний обратится к CMS, в смысле брать готовую CMS и использовать, например Wordpress.
     
  3. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  4. ruteam

    ruteam Новичок

    С нами с:
    8 май 2015
    Сообщения:
    5
    Симпатии:
    0
    VLK
    Да, как это работает, через что работает(примитив: создается это, функция 1, потом 2, 3, еще ... и готово), что гуглить. Я хочу научиться делать это. С регистрацией авторизацией,куками, запись и чтение из mysql, версткой вроде разобрался(по минимуму). Дошло до создания других страниц Приехал
     
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Всё это пишут в книгах обычно, читай свежие за 2014/2015 год
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    В MysQl шаришь? умеешь таблицы создавать? делать выборку из таблицы?
     
  7. ruteam

    ruteam Новичок

    С нами с:
    8 май 2015
    Сообщения:
    5
    Симпатии:
    0
    VLT
    http://habrahabr.ru/post/13726/ вот по этой статье и читал еще дополнительно

    Как понимаю я должен проверить get запрос, разобрать его, обратиться к базе - есть ли такая страница и вывести ее. Но тут появляется вопрос. В корне файл index.php, он должен срабатывать 1, а я перехожу по ссылке http://www.moisait.com/text?id=4. Как запустить index.php 1, и как конечно выдать нужный урл, или он так и останется, я только выведу нужное на страницу из базы

    + Дошло
    Так как учусь и сайт должен быть простой, буду использовать такой способ.
    Создам в корне файлы с нужными разделами, а после запроса к ним (пример файл doc.php) .../doc?test=9_mai
    разбираю get запрос, отправляю в базу данных эти 9_mai и ищу, если нет вывожу ошибку.
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Ну так если знаешь в чем проблема, создаешь файл index.php который будет являться единой точкой входа, создаешь в БД таблицу posts, с полями id, title, content, соответственно у тебя ссылки будут site.ru/index.php?post_id=$ где за место знака $ будет цифра, эту цифру в файле index.php ты вытаскиваешь, вот так вот:
    Код (Text):
    1. $id = $_GET['post_id'];
    потом проверяешь что бы этот $id был цифрой а ни чем то другим и вообще задано ли это значение

    потом формируешь запрос к БД, куда подставляешь этот $id

    Код (Text):
    1. $query = "SELECT * FROM posts WHERE id='".$id  ."'   ";
    выполняешь запрос, получаешь ответ, вытаскиваешь из него то, что тебя интересует. Вписываешь в переменные допустим $title и $content

    Потом создаешь еще один файл - view.php в переводе с иноземного view это вид, т.е. это файл с HTML кодом для вывода текста, примерно так:
    Код (Text):
    1. <!doctype html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title><?php echo $title; ?></title>
    6. </head>
    7. <body>
    8. <h3><?php echo $title; ?></h3>
    9. <div><?php echo $content; ?></div>
    10. </body>
    11. </html>
    и потом в самом конце в файле index.php подключаешь этот файл - view.php
    Вроде как все.

    Добавлено спустя 11 минут 45 секунд:
    PS используй единую точку входа, т.е. все запросы, короче все должно идти через один файл и файл этот как правило index.php
     
  9. ruteam

    ruteam Новичок

    С нами с:
    8 май 2015
    Сообщения:
    5
    Симпатии:
    0
    VLK
    Большое Спасибо, буду пробовать. Отпишусь 10 числа об успехах.
     
  10. ruteam

    ruteam Новичок

    С нами с:
    8 май 2015
    Сообщения:
    5
    Симпатии:
    0
    Возник вопрос. http://habrahabr.ru/post/140693/ написано что запрос может быть оправлен не 1 раз и предлогают такой кастыль
    Код (Text):
    1. RewriteEngine On
    2. #Don't favicon!
    3. RewriteCond %{REQUEST_FILENAME} !^favicon\.ico
    4. RewriteCond %{REQUEST_FILENAME} !-d
    5. RewriteCond %{REQUEST_FILENAME} !-f
    6. RewriteRule ^(.*)$ index.php [L,QSA]
    Встречаются и другие примеры создания, какой будет правильный?
     
  11. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    правильным будет тот, который будет работать и решать поставленную задачу. разные фреймворки могут иметь разные подходы к разрешению запроса и как следствие разные набор правил рерайтера. в приведенном примере костыль решает на самом деле очевидно простую задачу: не запускает фреймворк для поиска фавикона. то есть если иконки в нужном месте не лежит - большинство горепрограммистов через рерайтер запустят пхп-машину. добавление кондишна заранее исключает из обработки иконку сайта. если её физически нет - веб-сервер сам разрешит запрос статусом 404 и нужным документом.
     
  12. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Не туда лезешь, сначала без mod_rewrite сделай, пойми все как пашет, потом почитай и сделай MVC, пойми как все работает и только потом лезь в mod_rewrite.