Перейти до вмісту

Як краще організувати сайт


Повідомлень в темі: 37

#1 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 30.07.2005 – 23:30

  • 37
Скажімо придумали ми сайт, нехай є 3 частини: лого, меню, контент.
Як з'єднати це в одне ціле? Зразу спадають на думку такі варіанти:

1. Можна зробити це все у фреймах. Недоліки - фрейми прив'язані до вікна, тому для контенту фактично лишається менше місця на екрані; без певного скрипта буде погано індексуватись в пошуківках. Але все ж фрейми вже не популярні.... ;)

2. Можна скористатись PHP і монтувати сторінки на сервері:
а) На кожній сторінці робити підключати лого і меню: <?php include("logo.htm"); ?> і <?php include("menu.htm"); ?>
б) Зробити сторінку-контейнер і в неї передавати назву сторінки яку треба завантажити через адресу, наприклад http://wasja.com/ind...=storinka01.htm
а на index.php вписуєм: <?php if( isset($target) ) include("$target") ?>

3. Можна скористатись Javascript: на кожній сторінці дописати лінки на файли із скриптами (<script type="text/javascript" src="logo_and_menu.js"></script>), які дописують на кожну сторінку лого і меню за допомогою document_write();
На перший погляд - тупо, але ж файли із скриптами кешуються браузером! Тобто браузер загрузить лого і меню, а потім буде брати з сервера тільки контент, а у випадку з пгп - весь час тянеться вся сторінка.... :)
Тільки не у всіх юзерів включений javascript (~2-3%)

Ну от ніби все, цікаво у кого які думки з цього приводу?

#2 Germis

    йож-флудератор

  • Користувачі
  • PipPipPipPipPipPip
  • 202 повідомлень
  • Місто:Біла Церква

Відправлено 31.07.2005 – 08:03

Варіант з РНР більше подобаєься (випадок А), а на фрейми краще забити :)
  • 0

#3 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 31.07.2005 – 14:00

Є ще один варіант для тих, хто хоче скористатися пхп.
Суть та сама, тільки лінк виглядатиме таким чином:

http://www.somesite....ger?param=value

Це робиться через мод-реврайт (мод до апача, зазвичай є) і настройки вказуются в файлі .htaccess

цікавить, пиши на асю, там подробно розкажу...

:)
  • 0

#4 Germis

    йож-флудератор

  • Користувачі
  • PipPipPipPipPipPip
  • 202 повідомлень
  • Місто:Біла Церква

Відправлено 31.07.2005 – 16:10

Цитата

Це робиться через мод-реврайт
А якщо хостер - жмот?
  • 0

#5 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 01.08.2005 – 09:01

Germis (31.07.2005 18:06) писав:

А якщо хостер - жмот?

Перегляд допису


мод-реврайт не підтримує? То прийдеться через index.php?target=val&param=value

Все одно варіант з пхп найкращий

:)
  • 0

#6 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 01.08.2005 – 13:05

Цитата

мод-реврайт
Я так зрозумів, що цей мод варто використовувати для зручності або щоб важче було комусь заглючити сторінку ;).

Цитата

Варіант з РНР більше подобаєься (випадок А)
Так, це мабуть найрозповсюдженіший варіант ;)

Але все ж, якщо робити через скрипти, то від цього користувач тільки виграє: йому не грузиться наново вся сторінка з меню і лого кожного разу, а тільки контент, і від цього збільшується швидкість завантаження...

До речі у випадку 2.б) теж є свої переваги: можна легко поміняти дизайн сайту: треба лише змінити сторінку-контент, а у випадку 2.а) требуде міняти всі сторінки... :)
  • 0

#7 MrGALL

    Старійшина

  • Адміністратори
  • 2545 повідомлень
  • Стать:Чоловік
  • Місто:San Diego, CA || Kyiv, UA

Відправлено 24.08.2005 – 11:33

Я свою персональну сторінку зробив за 2a, інші варіанти мені не подобаються.
  • 0

#8 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 24.08.2005 – 12:06

Цитата

Але все ж, якщо робити через скрипти, то від цього користувач тільки виграє: йому не грузиться наново вся сторінка з меню і лого кожного разу, а тільки контент, і від цього збільшується швидкість завантаження...


а ти не чу про кешування браузером і проксьою?
ніхто наново перегружати малюнки не буде. В кеш браузера загрузятся і потім будуть звідти підставлятися.

Один мій співробітник з Software відділу пропонував зробити жабаскріптовий фреймворк, в якому ти загружав тільки раз сторінку, а фсі лінки, то були якісь функціїї які б динамічно підгружали контент. Це було б класно, але поки що неможливо, бо немає часу :)
  • 0

#9 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 29.08.2005 – 22:53

Цитата

Я свою персональну сторінку зробив за 2б, інші варіанти мені не подобаються.
Я теж так хочу зробити, хочу мати на домашній сторінці декілька дизайнів між якими можна переключатись ;) .

Цитата

а ти не чу про кешування браузером і проксьою?
ніхто наново перегружати малюнки не буде. В кеш браузера загрузятся і потім будуть звідти підставлятися.
Ну та само-собою-зрозуміло що кешування... Я маю на увазі що крім малюнків закешується і сторінка без контенту: з серверу буде тягнутись Тільки контент, а вже на машині користувача буде ліпитись все до купи.
Приклад вигляду такої сторінки:
<html>...<body>
...
  <script type="text/javascript" src="top_logo.htm"></script>
  <script type="text/javascript" src="left_menu.htm"></script>

  <?php include("AnekdotNo15903799.htm"); ?>

  <script type="text/javascript" src="right_flud.htm"></script>
  <script type="text/javascript" src="down_copyright.htm"></script>
...
</body></html>
Тобто крім малюнків і результуючої сторінки закешуються і всі 4 частинки сайту (top_logo.htm, ...)

Якщо ці 4 частинки займатимуть разом десь 1кб і користувач перегляне десь 20 000 000 анекдотів то він, економлячи на кожній сторінці по 1кб, зЕкономить ~20 мб трафіку ;) :) .
(Я тут хотів поставити 7-ий смайл - чувак брови піднімає, але в мене він глюкає при відображенні, адміни, що за трабли?)
  • 0

#10 Nolex

    Старійшина

  • Адміністратори
  • 1047 повідомлень
  • Стать:Чоловік
  • Місто:Житомир

Відправлено 29.08.2005 – 23:09

а я робив зробив по методу 2[a] :)

офф-топ: Lukom, чому, ніби цей смайл нормально показується... ;)
  • 0

#11 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 30.08.2005 – 16:16

Народ, як ви хочете шось кешувати жабаскріптом. про шо мова взагалі. я стараффся бути ввічлифим, але більше не можу. Яке в попі підгружання контенту?
про шо ви тут говорите? браузер полюбе отримує потік даних від сервера. а якщо ти щось прикріплюєш в html, то браузер сам по тому урлу лізе і витягує, що треба. варіант з жабаскріптом підходить для тих, кому треба вихідного трафіка, або для повних ідіотів.

2 адміни і модери:

вибачаюся, але вже стриматися не міг. тому і наругаффся. можете трошки поміняти вирази, що вам не сподобалися, але попрошу суть залишити.
  • 0

#12 Гість_djpavlik_*

  • Гості

Відправлено 06.10.2005 – 14:01

Lukom (31.07.2005 01:26) писав:

... Зробити сторінку-контейнер і в неї передавати назву сторінки яку треба завантажити через адресу, наприклад http://wasja.com/ind...=storinka01.htm
а на index.php вписуєм: <?php if( isset($target) ) include("$target") ?>

А от так робити не можна ні в якому разі!!! Інакше "добродії" відкриють і пробровзають всю файлову систему сервера.:brovy: А зробити це дуже просто, ну хоча би так:
http://wasja.com/index.php?target=../../....../../etc/passwd
Так стається через те, що як правило php-файли виконуються від імені користувача, під яким запущений веб-сервер.
Це звучить ну дуже вже примітивно, але я завжди не гребую перевірити один другий сайт Нету на дану вразливість і ... майже третина поражається. :)
  • 0

#13 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 06.10.2005 – 15:25

Можливо можна якось цей скрипт захистити? Наприклад перевірити чи є в адресі дві крапки підряд - ".."? Це би виглядало приблизно так: if(strpos($target,"..") !== false){ include(error_page.php) }else{ ... }
По ідеї index.php (головна сторінка) має знаходитись десь в корені тому парних крапок в адресі не мало би бути.

Ще можна було б перевірити чи там одне слово (назва сторінки)
if(!empty($target) && !preg_match( '/^([a-z0-9_\-\.])+\.([a-z0-9_\-])+$/' ,$target)){ include(error_page.php) }
Це якщо сайт організований так, що всі потрібні сторінки в одному каталозі.

Взагалі можна було б перевірити чи є наш файл у дозволених каталогах, або взагалі зробити масив дозволених файлів... Але це вже брєд :brovy:

Ех, за всім треба слідкувати... "Добродіїв" у нас багато :)
  • 0

#14 Xobb

    Doctor What'son

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1481 повідомлень
  • Стать:Чоловік

Відправлено 09.10.2005 – 09:13

djpavlik (6.10.2005 15:57) писав:

А от так робити не можна ні в якому разі!!! Інакше "добродії" відкриють і пробровзають всю файлову систему сервера.:brovy:  А зробити це дуже просто, ну хоча би так:
http://wasja.com/index.php?target=../../....../../etc/passwd
Так стається через те, що як правило php-файли виконуються від імені користувача, під яким запущений веб-сервер.
Це звучить ну дуже вже примітивно, але я завжди не гребую перевірити один другий сайт Нету на дану вразливість і ... майже третина поражається.  :)

Перегляд допису



Примітивно...........нормальним українським
Якщо програміст читав хоч одну статтю по написанню сайтів, то в кожній статті написано жирними буквами: НЕ ДОВІРЯЙТЕ ДАНИМ, ЯКІ ПРИЙШЛИ ВІД КОРИСТУВАЧА.
коментарів не потрібно.
  • 0

#15 Ластiвочка

    перчинка

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 5828 повідомлень
  • Стать:Не скажу
  • Місто:Україна вул Любая8

Відправлено 09.10.2005 – 20:34

можна втикнути свої 5 коп. в тему?
1. Я так і не зрозуміла який сайт має бути? Особиста сторіночка чи щось інше?
2. Я свій сайт писала руцями в htm. Спочатку довго-довго виношувала в голові, малювала в уяві. Чогосьхотіла щоб він був лише моїм і ні в які шаблони, стандарти не вписувався...Не знаю.........може він не такий високопрофесійний, але дорогий, бо мій...
  • 0

#16 MrGALL

    Старійшина

  • Адміністратори
  • 2545 повідомлень
  • Стать:Чоловік
  • Місто:San Diego, CA || Kyiv, UA

Відправлено 09.10.2005 – 20:47

Ластівочка (9.10.2005 21:30) писав:

можна втикнути свої 5 коп. в тему?
1. Я так і не зрозуміла який сайт має бути? Особиста сторіночка чи щось інше?
2. Я свій сайт писала руцями в htm. Спочатку довго-довго виношувала в голові, малювала в уяві. Чогосьхотіла щоб він був лише моїм і ні в які шаблони, стандарти не вписувався...Не знаю.........може він не такий високопрофесійний, але дорогий, бо мій...

Перегляд допису

Тут обговорюється двигуни для сайту написані на php чи чомусь подібному. Писати вручну сайти, де більше 20 сторінок довго і важко. Бо, наприклад, щоб змінити меню треба відредагувати всі сторінки. А так в одному файлі змінив і воно кругом помінялося. Який саме писати сайт не має значення - моя персональна сторінка теж використовує хоч і елементарний, але двигун.
  • 0

#17 Ластiвочка

    перчинка

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 5828 повідомлень
  • Стать:Не скажу
  • Місто:Україна вул Любая8

Відправлено 09.10.2005 – 20:50

до MrGALLа
ну не знаю, я напевно неправильна, але скажи - в мене не так вже й погано...(хочеться вірити)
  • 0

#18 MrGALL

    Старійшина

  • Адміністратори
  • 2545 повідомлень
  • Стать:Чоловік
  • Місто:San Diego, CA || Kyiv, UA

Відправлено 09.10.2005 – 20:58

Я не кажу що погано, просто в тебе сайт маленький.
Представ що на Теревенях треба було б кожну сторінку редагувати щоб наприклад лічильник поставити. Це я мав пару днів редагувати всі сторінки :brovy:
  • 0

#19 Ластiвочка

    перчинка

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 5828 повідомлень
  • Стать:Не скажу
  • Місто:Україна вул Любая8

Відправлено 09.10.2005 – 21:06

йоли-пали...я ж спитала: який сайт?
Якщо розважальний, портал, ще там щось агромне....а якщо дом сторіночка то трошки інше...от до чого я :brovy:
  • 0

#20 MrGALL

    Старійшина

  • Адміністратори
  • 2545 повідомлень
  • Стать:Чоловік
  • Місто:San Diego, CA || Kyiv, UA

Відправлено 09.10.2005 – 21:10

Я ж написав що розмір сайту не має значення. На маленьких сайтах просто не видно недоліків створення кожної сторінки окремо.
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних