ФорумПрограммированиеPHP для идиотов → Поблочная структура сайта

Поблочная структура сайта

  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 3:50

    Здравствуйте!
    Прошу всего лишь пару советов.

    Суть… Делаю сайт, с самописным форумом и личным кабинетом.
    Решил, разделить его поблочно. То есть хедер, например содержится в файле header.php, который находится в папке includes/forms
    Его подключаю require_once ко всем файлам.
    Форум содержится в папке forum. Для того чтобы подключить, скажем header.php, прописываю переменную path типа $path="../"
    А в самом header.php есть и другие require_once, например на регистрацию. Соответственно тут и пригодится переменная $path, чтобы все ссылки работали корректно.

    Если я понятно изложил принцип, то вот сообственно…
    Может быть я делаю все не так, посоветуйте или дайте что нибудь почитать.

    Кроме хедера делю и боди и футер. Содержимое боди находиться в файле content.php
    Если вы на главной странице, то в index.php прописываю $content="index";
    B содержимое берется из content.php

    К тому же наткнулся на мысль - как скрыть папки и доступ к этим самым хедер.пхп и т.д.?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 декабря 2009 г. 3:50, спустя 6 секунд

    посмори в стороноу шаблонизаторов
    Сапожник без сапог
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 5 декабря 2009 г. 3:53, спустя 2 минуты 53 секунды


    К тому же наткнулся на мысль - как скрыть папки и доступ к этим самым хедер.пхп и т.д.?  
    Скрыть можно многими способами. Самый простой - разместить их на уровень выше корня виртуального серврера.

    О чем первые четыре абзаца не понял. Точнее понял, но в чем собственно вопрос?
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 4:01, спустя 7 минут 34 секунды



    К тому же наткнулся на мысль - как скрыть папки и доступ к этим самым хедер.пхп и т.д.?  
    Скрыть можно многими способами. Самый простой - разместить их на уровень выше корня виртуального серврера.

    О чем первые четыре абзаца не понял. Точнее понял, но в чем собственно вопрос?


    В правильном направлении ли я иду, или же такой метод полная ерунда? ))
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 5 декабря 2009 г. 4:04, спустя 2 минуты 55 секунд


    В правильном направлении ли я иду, или же такой метод полная ерунда? ))
    Вообще это дело вкуса. Но я обычно перехватываю все запросы и направляю на общий обработчик, а в нем уже анализирую url.
    Решается сразу две проблемы: с доступом к тому чему не надо и с путями для include- они все от одного места.

    Ну и про шаблоны Дуд верно заметил.
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 4:09, спустя 5 минут



    В правильном направлении ли я иду, или же такой метод полная ерунда? ))
    Вообще это дело вкуса. Но я обычно перехватываю все запросы и направляю на общий обработчик, а в нем уже анализирую url.
    Решается сразу две проблемы: с доступом к тому чему не надо и с путями для include- они все от одного места.

    Ну и про шаблоны Дуд верно заметил.


    Дуд конечно верно говорит, но мне бы хотелось все сделать своими ручками.)
    Если честно - это мой первый проект и это небольшая браузерная игрушка. 60-70% кода готово, но продвигаясь дльше и деля все по папкам наткнулся на проблемы с урлами и код превратился в говно код. Поэтому решил спросить у Вас)

    Получается вы создаете файл, в котором анализируете урлы и даете тот или иной кусок туда куда нужно?
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 4:17, спустя 8 минут 29 секунд

    Вот как, к примеру, выглядит мой index.php


    <?
    session_start();

    $path="";
    $_SESSION['content']=''; // Условие для content.php, чтобы вытащить из него содержимое для данной страницы

    require_once('includes/forms/begin.php'); // Это для Титла
    require_once('includes/forms/global.php'); // Здесь различные таблицы и if'ы
    require_once('includes/forms/end.php'); // Ну а это закрытие
    ?>
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 5 декабря 2009 г. 4:43, спустя 26 минут 14 секунд


    Скрыть можно многими способами. Самый простой - разместить их на уровень выше корня виртуального серврера.


    ололо. А чем .htaccess c deny не подходит?
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 7:05, спустя 2 часа 22 минуты 4 секунды

    relictx, гы, это ты что, через пользовательский браузер (вернее даже через пользователя) передаешь скрипту параметры для отображения? Зачем тут юзать $_SESSION['content'] ?
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 8:26, спустя 1 час 20 минут 42 секунды


    relictx, гы, это ты что, через пользовательский браузер (вернее даже через пользователя) передаешь скрипту параметры для отображения? Зачем тут юзать $_SESSION['content'] ?


    Обычной переменной лучше?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 декабря 2009 г. 8:36, спустя 9 минут 33 секунды

    relictx, логичнее минимум. сессиии совсем не для этой хуйня которую ты заюзал
    Сапожник без сапог
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 9:03, спустя 27 минут 41 секунду


    relictx, логичнее минимум. сессиии совсем не для этой хуйня которую ты заюзал


    Спасибо, сейчас как раз весь контент правлю.
    А то что на каждой страничке делаю проверку на авторизацаю пользователя и передаю сессии, с целью защитить страницу, не опасно?
    if(md5(crypt($_SESSION['user'],$_SESSION['password'])) == $_SESSION['SID']) {
    header("Location: '".$_SERVER['HTTP_HOST']."'");
  • relictx

    Сообщения: 307 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 9:10, спустя 6 минут 15 секунд

    И еще парочку вопросов:

    1) Каким образом защить файлы скриптов? Например файл проверки на заполнение полей при регистрации или же папка с админскими скриптами - admin?
    2) У меня куча sql запросов в content.php. Достаточно ли для защиты приводить их к типу?
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2009 г. 15:55, спустя 6 часов 45 минут 38 секунд

    relictx, не знаю как ситуация сейчас, но в целом, СЕССИИ, как сказал Дуд, не для этого предназначены. И вообще, думаю поисковики могут их не схавать нормально, а следовательно, они не получат страницы с определенными параметрами, передаваемыми через сессии.

    По поводу "защиты" скриптов, то вставляй в папку .htaccess с полным запретом для всех, либо же в файлах делай проверку на авторизованность (это в случае с админкой). В общем, лучший вариант как по мне, так это предложенный Алексом: один файл-обработчик, остальное нахер посылается, а точнее на этот же обработчик. Все это тем же .htaccess делается.
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 5 декабря 2009 г. 23:24, спустя 7 часов 28 минут 50 секунд

    защита есть от разного.

    - чтобы твои куски страницы нельзя было причитать в обход главного скрипта - закрывай доступ к папке с кусками в .htaccess или храни их вне DocumentRoot

    - админку как место повышенной опасности можно также держать в отдельном месте и закрыть доп. паролем через htpasswd и ограничение на IP

    - чтобы хитрый хакер не открыл что не положено - контролируй параметры и никогда не делай типа include 'folder/'.$_GET['param']

    - от sql-инъекции защищайся через mysql_real_escape_string или через биндинг параметров в PDO.

    вобщем в твоем первом посте все достаточно стандартно, косяков нет. я поддерживаю предыдущих товарищей про одну точку входа, но на самом деле — непринципиально.

    про апачевский htaccess почитай. описаний море.
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!