Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация сайта 
V
    Опции темы
nns2009
Дата 7.1.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Думаю создать полноценный сайт, на котором страницы различаются только внутренним содержанием(все менюшки и т.п. на страницах, как на любом нормальном сайте, одинаковые).
В связи с этим возникает идея: сделать одну единственную страницу вида:
Код

<?php
require "begin.php";
include ($currentPageName . ".php");
require "end.php";
?>

А все ссылки делать вида: index.php?currentPageName=имя_страницы_на_которую_ведёт_ссылка

Как вам такой подход? Может быть у него есть скрытые минусы?

А можно ли(чисто для красоты) сделать так, чтобы ссылки были вида: имя_страницы_на_которую_ведёт_ссылка/ (хотя папки "имя_страницы_на_которую_ведёт_ссылка" и не существует)
а какая-нибудь система перенапрявляла результат на: index.php?currentPageName=имя_страницы_на_которую_ведёт_ссылка
хотя в браузере пользователя по прежнему должно отображаться: имя_страницы_на_которую_ведёт_ссылка/ ?
PM MAIL   Вверх
Evghenusi
Дата 8.1.2011, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



 smile , почитай статьи связанные с .htaccess

Это сообщение отредактировал(а) Evghenusi - 8.1.2011, 00:09
PM WWW   Вверх
bars80080
Дата 8.1.2011, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(nns2009 @  7.1.2011,  22:32 Найти цитируемый пост)
Как вам такой подход? Может быть у него есть скрытые минусы?

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

передавать нужно условное имя, лучше всего число index.php?currentPageName=7
где число будет означать идентификатор в базе данных. а в БД будет записан адрес подключаемого скрипта под этим идентификатором


Цитата(nns2009 @  7.1.2011,  22:32 Найти цитируемый пост)
А можно ли(чисто для красоты) сделать так, чтобы ссылки были вида: имя_страницы_на_которую_ведёт_ссылка/ (хотя папки "имя_страницы_на_которую_ведёт_ссылка" и не существует)

можно. для этого надо погуглить на тему "директивы .htaccess перенаправление"
PM MAIL WWW   Вверх
Kefir
Дата 8.1.2011, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



nns2009, вот если честно, то тут надо различать:

1) Ты хочешь понаступать на грабли, подучить язык, сделать всё сам и понять как всё работает? Тогда действительно можно (и даже, наверное, нужно) начинать писать своё (то что указал ты - нормальный вариант, только учти то, что bars80080 сказал).

2) Ты хочешь именно что полноценный сайт? Тогда добрый совет - возьми хотя бы фреймворк какой-нибудь (будь то Zend, CodeIgniter или что-то ещё) и делай на них - проблем у тебя будет сильно меньше, сайт ты сможешь сделать сильно быстрее. Если вообще нет желания мучать себя - возьми готовый MODx (к примеру). Там и напрограммируешься вдоволь создавая нужные фичи, но хоть база (странички, админка) буду готовы.

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

Добавлено через 1 минуту и 24 секунды
Цитата(bars80080 @  8.1.2011,  00:10 Найти цитируемый пост)
для этого надо погуглить на тему "директивы .htaccess перенаправление"

Цитата(Evghenusi @  8.1.2011,  00:08 Найти цитируемый пост)
почитай статьи связанные с .htaccess

Ну что вы буки такие smile Могли бы хоть подсказать, что гуглить можно, в частности, mod_rewrite

PM MAIL WWW Skype   Вверх
bars80080
Дата 8.1.2011, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Kefir @  7.1.2011,  23:59 Найти цитируемый пост)
Могли бы хоть подсказать, что гуглить можно, в частности, mod_rewrite

вот насколько я помню свои заморочки, то мне гораздо быстрее искалось нужное по сочетанию "директивы .htaccess". 
mod_rewrite выводил чёрт знает куда
PM MAIL WWW   Вверх
Kefir
Дата 8.1.2011, 01:14 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



bars80080, а я всегда писал а-ля "mod_rewrite examples" и копипастал всё что под руку попадёт. И в итоге иногда оно даже работало  smile В общем у каждого своё, вполне допускаю, что твой запрос лучше.

Это сообщение отредактировал(а) Kefir - 8.1.2011, 01:14
PM MAIL WWW Skype   Вверх
ayax2005
Дата 8.1.2011, 04:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


echo $smile
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 17.4.2008
Где: Питер

Репутация: 2
Всего: 11



Добавить почти нечего, кроме:
эти ваши инклюд бегин и енд - ssl чистой воды. 
Это неправильный подход.

Барс правильно заметил насчёт БД - вообще, чем меньше юзер догадывается о том, как работает ваш сайт (в частности об именах файлов), тем вам же лучше.
У вас на сервере кроме файлов классов всё остальное должно быть динамическим (ну если вы не фанат xml конечно), хотя чур меня....


--------------------
все вопросы - из-за неверной формулировки задачи
PM MAIL ICQ   Вверх
nns2009
Дата 8.1.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  8.1.2011,  00:10 Найти цитируемый пост)
передавать нужно условное имя, лучше всего число index.php?currentPageName=7где число будет означать идентификатор в базе данных. а в БД будет записан адрес подключаемого скрипта под этим идентификатором

У меня появились ещё два варианта:
1)
Код

<?php
require "pages.php";
if (pageExists($currentPageName))
{
   require "begin.php";
   include ($currentPageName . ".php");
   require "end.php";
}
else
{
   echo "Ха-ха-ха ! Хрен взломаешь мой сайт !";
}
?>


2) У пользователя нет возможности добавлять файлы в папку pages
Код

<?php
if (в $currentPageName нету точек)
{
   require "begin.php";
   include ("pages/" . $currentPageName . ".php");
   require "end.php";
}
else
{
   echo "Ха-ха-ха ! Хрен взломаешь мой сайт !";
}
?>


Как вам такие подходы? В них не придётся лезть в БД.

Правда я слышал, что при использовании include, require поисковые системы плохо индексируют сайт. Это так?

Цитата(ayax2005 @  8.1.2011,  04:19 Найти цитируемый пост)
Это неправильный подход.

Почему именно?

Цитата(Kefir @  8.1.2011,  00:59 Найти цитируемый пост)
1) Ты хочешь понаступать на грабли, подучить язык, сделать всё сам и понять как всё работает? Тогда действительно можно (и даже, наверное, нужно) начинать писать своё (то что указал ты - нормальный вариант, только учти то, что bars80080 сказал).

Всего понемногу, но в конце концов сделать сайт с непомойной структурой(ну и работающий).

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

Цитата(bars80080 @  8.1.2011,  00:10 Найти цитируемый пост)
можно. для этого надо погуглить на тему "директивы .htaccess перенаправление"

Буду искать.

Это сообщение отредактировал(а) nns2009 - 8.1.2011, 14:59
PM MAIL   Вверх
Smorodin
Дата 8.1.2011, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрейший
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 10.4.2006
Где: Пермь

Репутация: нет
Всего: 1



Код

<?php
$pages = array(
  'my_test_page'=>'testPage.php',
  'home'=>'homePage.php'
);
if (isset($pages[$currentPageName]))
{
   require "begin.php";
   include ('pages/'.$pages[$currentPageName]);
   require "end.php";
}
else
{
   echo "404. Not found.";
}
?>

Тоже БД не надо, но на мой взгяд, более разумно, если не 100 страниц.


--------------------
Сделать можно все, только вопрос - когда?
PM MAIL Skype   Вверх
Codd
Дата 8.1.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 8.1.2011

Репутация: нет
Всего: нет



Цитата

А можно ли(чисто для красоты) сделать так, чтобы ссылки были вида: имя_страницы_на_которую_ведёт_ссылка/ (хотя папки "имя_страницы_на_которую_ведёт_ссылка" и не существует)
а какая-нибудь система перенапрявляла результат на: index.php?currentPageName=имя_страницы_на_которую_ведёт_ссылка
хотя в браузере пользователя по прежнему должно отображаться: имя_страницы_на_которую_ведёт_ссылка/ ? 


в .htaccess добавь запись:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/?currentPageName=$1 [L,QSA]
</IfModule>

Все запросы будут идти через index.php
Если будет фавикон, роботс.txt или ещё что-то, то добавляешь 

RewriteCond $1 !^(robots\.txt|favicon\.ico)
PM MAIL ICQ Skype GTalk   Вверх
cia
Дата 9.1.2011, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: 4
Всего: 4



Цитата(nns2009 @  8.1.2011,  14:59 Найти цитируемый пост)
Правда я слышал, что при использовании include, require поисковые системы плохо индексируют сайт. Это так?

Наверное, путаешь с фреймами. Открой html-код сформированной php-страницы (ctrl+u в файрфоксе) - там нет никаких сведений о том, где и сколько раз использовались include и require и, соответственно, поисковики об этом ничего знать не будут.
А вот с фреймами дело обстоит по другому: ведь это разные html-файлы и поисковик вполне может проиндексировать их по отдельности и выдать в результатах поиска ту часть страницы (фрейм), которая не предназначена для вывода напрямую.

Это сообщение отредактировал(а) cia - 9.1.2011, 19:43
PM WWW ICQ   Вверх
InfMag
Дата 9.1.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



cia, мне кажется он имел в виду плохую индексацию когда инклюды явные index.php?inc=file.php в то время как ЧПУ: /file/ - всё про тот же htaccess
PM   Вверх
skyboy
Дата 10.1.2011, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Codd @  8.1.2011,  15:30 Найти цитируемый пост)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Если будет фавикон, роботс.txt или ещё что-то, то добавляешь 

А зачем? Если файл существует, у тебя RewriteCond уже не дадут сработать mod_rewrite директивам


PM MAIL   Вверх
nns2009
Дата 10.1.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  8.1.2011,  00:10 Найти цитируемый пост)
есть один небольшой минус - взломать такой сайт и полностью уничтожить при некоторых условиях - раз плюнуть.

Давно я не был на apple.com

Цитата(cia @  9.1.2011,  19:42 Найти цитируемый пост)
Наверное, путаешь с фреймами.

А я то думал, почему никто фреймы не использует.

Начал эксперементировать с .htaccess:
Содержимое файла такое:
Код

AddDefaultCharset utf8

RewriteEngine on

ErrorDocument 404 /index.php

Redirect /some /index.php


При этом не работает ни Страница Ошибки, ни редирект, ни даже сам index.php. Почему?
А как задать сайту иконку?
PM MAIL   Вверх
skyboy
Дата 10.1.2011, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(nns2009 @  10.1.2011,  20:45 Найти цитируемый пост)
Почему?

в error.log смотрел?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0973 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.