←  Інтернет та сайтобудування

Теревені

»

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

 світлина Lukom 30.07.2005

Скажімо придумали ми сайт, нехай є 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%)

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

 світлина Germis 31.07.2005

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

 світлина Xobb 31.07.2005

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

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

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

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

:)
Відповісти

 світлина Germis 31.07.2005

Цитата

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

 світлина Xobb 01.08.2005

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

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

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


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

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

:)
Відповісти

 світлина Lukom 01.08.2005

Цитата

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

Цитата

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

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

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

 світлина MrGALL 24.08.2005

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

 світлина Xobb 24.08.2005

Цитата

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


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

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

 світлина Lukom 29.08.2005

Цитата

Я свою персональну сторінку зробив за 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-ий смайл - чувак брови піднімає, але в мене він глюкає при відображенні, адміни, що за трабли?)
Відповісти

 світлина Nolex 29.08.2005

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

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

 світлина Xobb 30.08.2005

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

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

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

Гість_djpavlik_* 06.10.2005

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-файли виконуються від імені користувача, під яким запущений веб-сервер.
Це звучить ну дуже вже примітивно, але я завжди не гребую перевірити один другий сайт Нету на дану вразливість і ... майже третина поражається. :)
Відповісти

 світлина Lukom 06.10.2005

Можливо можна якось цей скрипт захистити? Наприклад перевірити чи є в адресі дві крапки підряд - ".."? Це би виглядало приблизно так: 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:

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

 світлина Xobb 09.10.2005

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

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

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



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

 світлина Ластiвочка 09.10.2005

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

 світлина MrGALL 09.10.2005

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

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

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

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

 світлина Ластiвочка 09.10.2005

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

 світлина MrGALL 09.10.2005

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

 світлина Ластiвочка 09.10.2005

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

 світлина MrGALL 09.10.2005

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