PDA

View Full Version : Записи сумасшедшего или красный уголок кодера...


stalker[fox]
11-07-2005, 05:39 PM
а началось всё с тихого поста где-то тут...

Сообщение от Дрон01
...
А ты кстати, чем занимаешься щас?

Сообщение от St@lkeR{FoX}
я на данный момент сидю за компом и пялюсь в монитор в поисках знакомых букв! вооот)) а если совсем серьёзно то я щас занят написанием некоего подобия учебника для студентов родного универа по асьме... к тому же на той же асьме занимаюсь ярко выраженным геморроем типа обработчик мыши и клавы писякаю... точнее сказать я его уже написякал бякаю теперь эти функшены в дэлелельку знаешь сколько я вот эти две процедуры рожал?
...

;процедура обработки клавиатуры
keyw proc
wt: mov ah,01H
int 16H
jnz gotK
jz @F
jmp wt

gotK: mov ah,00H
int 16H
cmp ah,01h
je exit
cmp ah,1ch
je enter

...

@@: ret
keyw endp

;процедура обработки мыши
mouse proc
mov ax,0001h
int 33h

mov cx,00h
@@: push cx
mov ax,0005h
mov bx,0000h
int 33h
cmp bx,1
je mbtn0
mov ax,0005h
mov bx,0001h
int 33h
cmp bx,1
je mbtn1

...

pop cx
inc cx
cmp cx,01h
je @F
jmp @B

@@: ret
mouse endp

...

start macro
...
zero: call keyw
call mouse
jmp zero
...
endm


ГЫ)) вобщем неважно)) но факт остаётся фактом а фактически я сейчас с кое-каким народом разрабатываю новое ядро новой ОС... х.з. чё из этого получицЦа лиж бы не линух

Сообщение от Ten
к тому же на той же асьме занимаюсь ярко выраженным геморроем типа обработчик мыши и клавы писякаю... :D :D Сталкер, сенкс, развеселил, давно я так не ухохатывался... глядя на знакомые строчки ;) Ток в какую дллку ты хочешь их запихнуть? Эт же под ДОС код, 0x16-тым интом ведает биос, а 33-им вообще загружаемый драйвер мыша (пардон, 33h-ным, а то 33 десятичное ;) это дос-сервисы). 98я (и ей подобные), юзая защищённый режим, совсем им себя не защищает, отчего её запросто на раз-два подвесить, а НТ-подобные системы либо это всё съэмулируют, либо вообще не пустят (и правильно, кстати, сделают, работа с девайсами ислючительно прерогатива ядра).

а фактически я сейчас с кое-каким народом разрабатываю новое ядро новой ОС... х.з. чё из этого получицЦаКак правило, людей хватает на мечты и лоадер :D (вспоминаю подобного рода эксперименты двухгодичной давности ;)) Кстати, а слабо клаву и мыша (ну и всё прочее) напрямую потрогать (через in/out)? Для операционки нет смысла зацикливаться на прерываниях (а то перейдёшь в защищённый режим и все они торжественно придут в непригодность ;)).

stalker[fox]
11-07-2005, 05:41 PM
Ток в какую дллку ты хочешь их запихнуть? Эт же под ДОС код, 0x16-тым интом ведает биос, а 33-им вообще загружаемый драйвер мыша (пардон, 33h-ным, а то 33 десятичное это дос-сервисы). 98я (и ей подобные), юзая защищённый режим, совсем им себя не защищает, отчего её запросто на раз-два подвесить, а НТ-подобные системы либо это всё съэмулируют, либо вообще не пустят (и правильно, кстати, сделают, работа с девайсами ислючительно прерогатива ядра). ГЫГЫГЫ :D а то я нинаю))) ну вобщем там не один голимый ДОС... извини меня, но! ДОС прерывание есть ни что иное как int 21h... а всё остальное есть напрямую... мона конечно и через порты и через контроллер... но! к тому же, нам это надо для осы ;) а так если подумать, то под виндовоз для верности особенно, как ты верно заметил, под NT и дальше, там уже идёт галимый ВинАПИ :) так что это я туда ещё добавлю... дело времени :) к тому же DLL это тока для видимости... яж так для общего развития... там не тока длля под винду буит, но и под др. ос... так что ;) к тому же ты не прав, говоря что под винду от NT и выше я 16 и 33 юзаю... это знаешь ли не прав)) ибо NT'ёвые системки не дают работать чисто с контроллером клавы(имею ввиду конкретно вкл/выкл индикаторы клавы)... вот и всё... мыша же)) и остальное работают на ха!) протестено не однократно.

Итак, товарищи кодеры)) Развиваем тему ;)

stalker[fox]
11-07-2005, 06:00 PM
а слабо клаву и мыша (ну и всё прочее) напрямую потрогать (через in/out)? легко :) тока вот пока что нинада было :) ...

2Администрация:
Тему из вселенной прошу не переносить ибо философия кодера есть осмысливание вселенной и её законов :) а так же написания их заново...

Дрон01
11-08-2005, 02:46 AM
Хм...строчки кода, непонятные...нет, меня вы не убедите - машинник он и есть машинник! Я вот большей частью на Паскалинах и Сиплюсплюсах люблю проги делать. Скажем, увидел чё-нить хитрое и идиотское, но красивое!!! абалдеть!!! скажем, хоть скринсэйвер! И всё, подьём творчества обеспечен недели на две! Вот сделаю так, чтобы работало, и без глюков, и фсякие там финтифлюшки типа контекстного меню и другой лямбды были - вот тада сидишь и прога греет взгляд, особенно если есть холодное пиво!

stalker[fox]
11-08-2005, 06:57 AM
ха! ну када пиво греет взгляд :D ... то и прога радует)))

ну, товаришчь Дрон01, эт ты вобщемто прав, но тока от части... кодить надо уметь на фсём и подофсё :) имхо. си и пас эт канено халасо но... как я уже говорил есть одно НО на букву Г... так что)) вот я кодил кодил на сях, а потом в один прекрасный день меня торкнуло. какжешь так? знаю много чего... и пас и си и явы там всякие с всх... а вот как они работают... и полез я копацЦа в разные разности... раскопал первое чё попалось, это был exe'шник, и увидел там страшное... странно непонятные тогда строчки: .stack .data .code... а потом кучу всякой белеберды. и тут случилось невероятное. Пришли Бентузи и сказали: "Купи книжку по асьме и не имей себе мозги..." так я и поступил, и после первых же страниц до меня дошло что вся эта бня типа си, паскаей и т.п. транслитицЦа в asm. вот тут то я подумал и решил. а зачем я буду чё та делать и писать, мучить свой проц ненужными трансляциями исходников при компиляции... один фиг в асьму перегоняет же)) и решил ударится копчиком... да да да :) именно им. чтобы проснулось нижнее полушарие мозга. А знаешь ли ты, уважаемый Дрон01, как радуется взгляд когда написанный тобой код того же "Hello world" на асьме начинает работать как надо :) обычно это случается сразу и быстро... но иногда... вобщем, лично мне асьма дала большее понимание принципов работы языков высокого уровня :)

ЗЫ: как бы там нибыло, но у низкоуровневых кодеров философия немного другая нежели у обычных... :)
ДАЁШЬ НЕ БОЛЕЕ 10 СИМВОЛОВ В ОДНОЙ СТРОЧКЕ КОДА! :D


Сталк, в общем, как ты и просил, весь оффтоп из той темы переместил сюда, где ему саамое место ;)
Также отквотил в удобочитаемый вид и разнёс по разным постам - если всё в одном, неудобно читать - слишком много.
Ну, а теперь и за развитие ;)

PS. Да, и ещё. Я таки перемещаю тему, сорри ;) Всё же, как ни крути, к вселенной ХВ и вселенным, созданными различными писателями-фантастами (см. описание подфорума), она имеет весьма слабое отношение. Зато в разделе "Наше сообщество" ей самое место - этот раздел как раз создан для обсуждения самых различных вопросов, которыми интересуются наши участники.
=T=

Дрон01
11-09-2005, 03:42 AM
жЖошь! Я б тоже занялся асьмой да всё времени нет! (это я так мстю!)
пойду карты делать, там есть где развернуться. Даёшь сто астероидов в трёх строчках кода! :D Мне (а может и вам) повезло, что я ещё не всё успел забыть по математике, помню уравнения всякий кренделей в координатах, осталось только в карты внедрить!

stalker[fox]
11-09-2005, 08:47 AM
2 Дрон01, Ten и остальным темболее:
совершенно недавно, в поисках альтернативных компиляторов наткнулся на оч хороший проект (http://www.bloodshed.net/). там, как вы сможете увидеть есть пара компиляторов паса и си. Так вот, этот проект полностью халявный и фриварный, что лично меня особенно порадоволо :) Народ, разрабатывающий проект далеко пойдёт. Да, конечно это не MSVisual и не Borland, пока ещё не отличается выбором создания множества приложений, но в нём есть основные. А что ещё нудно для полного счастья?) особенно когда есть драйвер прямые_руки.sys :)

Ten
11-11-2005, 10:42 AM
и после первых же страниц до меня дошло что вся эта бня типа си, паскаей и т.п. транслитицЦа в asm. вот тут то я подумал и решил. а зачем я буду чё та делать и писать, мучить свой проц ненужными трансляциями исходников при компиляции... один фиг в асьму перегоняет же))Ну, ассемблер не отменяет языки высокого уровня. Они отлично дополняют друг друга. Но писать всю программу на асме... :rolleyes: имхо бессмысленно. Я тоже года три назад "переболел" подобной болячкой ;) Как известно, всё хорошо в меру, и асм здесь не исключение ;) Вот представь себе более/менее серьёзную программу, например на 5-6К строк (пусть это будет pas). Пока ты её всю напишешь на ассемблере, будут просрочены все разумные сроки реализации и заказчик, мягко говоря, будет недоволен. Теперь другой момент. Программа активно работает с некоторым железом (стандартным, самодельным - не важно, как правило, если с одним, то и с другим ;)). Эти опреации должны выполняться быстро и быть наглядными. Тут-то asm и покажет себя с очень хорошей стороны, так как позволяет добиться необычайной скорости и компактности, а также (ИМХО) наглядности кода: всё видно, как на ладони. Ведь непонятно, какой критично ненужной "отсебятины" может добавить в ответственный момент компилятор языка высокого уровня, если эти процедуры писать на нём. Так что имхо, всё хорошо в меру. Да, я не беру в расчёт "asm for fun", это совершенно другая реальность ;) :D

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

Ten
11-11-2005, 10:47 AM
а слабо клаву и мыша (ну и всё прочее) напрямую потрогать (через in/out)?легко :) тока вот пока что нинада было :) ...Ну, в любом случае тяжелее, чем через сервисные прерывания. К тому же, в разы интереснее (нет чувства зависимости от авторов этих сервисов, полная свобода :) :rolleyes: ). Попробуй (если ещё не) - те понравится. Cтопроцентную гарантию даю ;) :D

ДОС прерывание есть ни что иное как int 21h... а всё остальное есть напрямую... мона конечно и через порты и через контроллер... но! к тому же, нам это надо для осы а так если подумать, то под виндовоз для верности особенно, как ты верно заметил, под NT и дальше, там уже идёт галимый ВинАПИ так что это я туда ещё добавлю... дело времени к тому же DLL это тока для видимости... яж так для общего развития... там не тока длля под винду буит, но и под др. ос... так что к тому же ты не прав, говоря что под винду от NT и выше я 16 и 33 юзаю... это знаешь ли не прав)) ибо NT'ёвые системки не дают работать чисто с контроллером клавы(имею ввиду конкретно вкл/выкл индикаторы клавы)... вот и всё... мыша же)) и остальное работают на ха!) протестено не однократно.Если честно, в упор не понимаю, зачем "воззвания" к 16h и 33h запихивать в dll. Если работать с клавиатурой/мышью в Win, проще использовать API. Если это нужно в DOS ("чёрной пеленой экран заполнил мой" ;) :rolleyes: ), проще писать под чистый ДОС. Если же охота работать с железом, но в Win, ИМХО, лучше "играть по правилам" (я имею ввиду написание драйвера). Хотя, работать с пром. агрегатом в Win (любой)... Чушь, ввиду сложности -> ненадёжности системы. Повиснет она во время движения какого-нить узла, а оператор выйдет "покурить" - и всё, силовой шаговик так и будет работать, пока не сгорит. Или ещё хуже - подаватель кыык схватит кого-нить праздношатающегося за шиворот да кык потащит к силовой части (это может окончиться совсем не смешно :(). Я, конечно, утрирую (против подобных казусов предусматривается защита), но стабильность работы Форточек оставляет желать лучшего, а когда к твоим ошибкам добавляются ещё и чужие - увольте. Кроме того, вспомните лицензию - разработчик не несёт ответственности ни за что. Так что ДОС, только чистый ДОС.

stalker[fox]
11-11-2005, 03:45 PM
ASM FOR FUN :D Вот именно, дарагой :D вот именно!)) к тому же я посмотрю как ты на fasm'e или nasm'е будешь чё-нить ляпать :) темболее под иX-сы :) имхо импосибля)) так что предпочитаю всему остальному асьму :) и ещё)) за время написания кучи кода, вырабатывается определённые куски кода, которые потом складываются и юзаются как готовые методом Ctrl+C Ctrl+V ;) :D например обработка и вывод строки или же массива... это ведь как два пальца об асфальт... вобщем, думаю ты меня понял :) к тому же некоторые куски инициализации идентичны под различное железо и платформы... меняется всего лишь пара строчек)) вот и думай, так ли плохо писать на одном асме?) к тому же, если будет конкретный заказ, то всё это будет естессна не на асьме)) я там гляну на чём оно лучше писать будет... к тому же приоритет любого процесса можно поднять ручками, с помощью той же асьмы :) было бы желание :D

Ten
01-01-2007, 02:01 PM
ASM FOR FUN Вот именно, дарагой вот именно!Хех, это весёлое занятие. Я, правда, давненько таким не маялся, ща занят fun'ом на PHP, но это скорее насущная необходимость :(

к тому же я посмотрю как ты на fasm'e или nasm'е будешь чё-нить ляпать :) темболее под иX-сы :) имхо импосибляНу почему же? Асм - ещё один язык программирования, иксы, условно говоря - набор сервисов со строго унифицированным интерфейсом. Задача сводится к тому, чтобы написать на асме куски кода, которые используют возможности иксов. Накой это всё надо - совершенно иной вопрос, к сути дискуссии никакого отношения не имеющий :D Как и вопрос трудоемкости.

так что предпочитаю всему остальному асьму :) и ещё)) за время написания кучи кода, вырабатывается определённые куски кода, которые потом складываются и юзаются как готовые методом Ctrl+C Ctrl+VОй, какая гадость :( Я тоже так раньше делал, покудова количество операций Ctrl+C / Ctrl+V не превысило несколько десятков... Потом в голове начинается каша. ИМХО, намного изящнее написать автономный блок, тщательно отладить его и потом инклюдить в основной текст программы. Чем меньше придётся менять отлаженный код, тем лучше - уменьшается шанс подхватить ошибку. Этот принцип свят, ибо природа этих ошибок очень коварна - ты ведь никогда не подумаешь худого на старый, проверенный, но "слегка" изменённый код. И будешь изо всех сил лопатить последние наработки, как наименее надёжные из всех (и лишь для того, чтобы через два часа понять, что ошибка где-то "не тут" :)).

к тому же некоторые куски инициализации идентичны под различное железо и платформы... меняется всего лишь пара строчекВообще, при написании серьёзных приложений аппаратно-зависимый код, как правило, отделяется от аппаратно-незвависимого. Плюсы очевидны - переносимость кода при минимальных изменениях. В мире OpenSource-программ это очень распространённая практика: возьмите тот же Апач, или, что гораздо ближе к теме форума, движок первого ХВ :) Его исходники (большей частью писанные на си без плюсов) весят порядка 10 Мб. Patch-файл, который позволяет перелопатить сырцы хомки так, чтобы она компилировалась/запускалась под xNIX-системами - всего полтора метра. Причём это не сами сырцы, это файл разниц, в котором не только содержится информация "что куда вшить", но и "что откуда выкусить". То есть, истинные объёмы изменений ещё меньше. Вообще, написание переносимых программ - это своего рода искусство, и программисты, которые этим искусством овладели, очень высоко ценятся (во всяком случае, за бугром :)).

вот и думай, так ли плохо писать на одном асме?Плохо. В подавляющем большинстве случаев нецелесообразно. Разве что забавы ради :)

к тому же, если будет конкретный заказ, то всё это будет естессна не на асьме)) я там гляну на чём оно лучше писать будет...Уже лучше :)

к тому же приоритет любого процесса можно поднять ручками, с помощью той же асьмы было бы желаниеНу, программирование – это не жонглирование приоритетами да пописывание в порты ввода/вывода. Заказчику глубоко фиолетово, если ты можешь мигать индикаторами клавиатуры словно жутко урезанная елочная гирлянда, писать на винт в обход биоса или заставить дисковод сыграть чижик-пыжик. Его интересует выполненная работа. Хотя, подобные фокусы иногда могут призвести некоторое впечатление, но практического толку в них ноль.

ЗЫ: Давненько я не писал в этой теме... тут ещё у кого-нить есть желание продолжить столь интересное обсуждение?

stalker[fox]
01-04-2007, 10:02 PM
Ну вот я дома) Родной форум, родная жизнь. Как-будто вернулся на Кхарак =) Чтоже, продолжим наш забавный уголок кодера. Должен сказать что много воды утекло с тех времён как рухнул форум. Жизнь кидала то в одну сторону то в другую. Было не легко, но пришлось выжить) Вобщих чертах, уже полгода я не принимаю участие в каких либо разработках или же проектах команды. Занимаюсь исключительно вебом. Жизнь заставила) Да и как то по душе мне это. Вобщем слова php, java, html, mysql, apache и bred3 стали родными и вписались в ДНК =)

Ладно, хватит трепаться по чём зря, пора бы уже и честь знать. А начну я своё краткое повествование сегодня именно с web'а, а конкретрней разберём простенький "движок" сайта... с примерами конечно =) Будем писать мы его на php используя естесственно html и JS. Сегодня мы разберём пример простенького информационного сайта с выпадающем меню. Причём будет две версии сайта. Одна - с выпадающем меню вниз. Соответственно меню будет у нас распологаться сверху полоской, под логотипом и названием сайта. И второй вариант это - выпадающее меню вправо. Собственно это рабочие варианты и их можно смело использовать в разработках более серьёзных проектов =)

Теперь от слов к делу. Для начала нам потребуется установить пакет Denver. Его вы можете скачать с моей странички http://webtestphp.h17.ru/ (так же на моей странице вы сможете найти различную информацию как по web'у так и по другим языкам программирования :о).
Устанавливаем его, там собственно нет ничего сложного, просто лично я в конце установки выбираю второй вариант (это когда виртуальный диск не создаётся при загрузке системы, а грузится патом уже в процессе работы. делается это автоматически как только мы запускаем комплекс). Так, причина номер раз по которой я выбрал Denver. Во первых этот комплекс соответствует структуре большинства интернет-серверов. В него встоено уже всё что нужно, а именно apache+php+mysql. Соответственно не нужно склеивать все три утилиты в одну долгими мутарствами (если вы новичёк в этом деле) чтобы начать работать. Причина номер два: перенос сайта на любой linux'овый сервер происходит с минимальными усилиями, что просто незаминимо. Единственная нехорошая ситуация с денвером да и вообще с сервером apache может возникнуть у людей имеющих Windows 2003 Server, ибо в него уже интегрирован IIS (виндовый сервак) который конфликтует с апачем. Я бы им посоветовал пересадить апач на другой порт или же совсем снести IIS =)

После того как вы установили Denver (Если по дефалту, то рабочая директория со всеми причендалами у вас именно C:\WebServers\) Вобщем всё что нам необходимо для работы у нас есть. Скажу сразу что место где мы будем создавать сайт - это папка HOME. в ней нужно создать каталог с именем url которое вы будете потом набирать в строке браузера. Ну к примеру если у вас сайт имеет имя z-test, то соответственно в папке HOME нужно создать каталог "z-test". В нём нужно создать ещё один каталог с именем "www". И только уже в каталоге WWW мы и будем работать. Т.е. путь к главной странице сайта будет таким: C:\WebServers\home\z-test\www\index.php. Да да да. именно index.php а не .html или там .asp. Тепереча перейдём непосредственно к созданию сайта. Открываем файл с именем index.php и пишем следующее (должен сказать что php очень похож на c++):

//главная страница сайта
<?
//***********************************************************************************************//
$show = 2; //переменная на отработку главной страницы
//***********************************************************************************************//

//***********************************************************************************************//
// подготовка форм кнопок меню и самого меню //
//***********************************************************************************************//
$space = "<td width=\"16\"></td>";

//кнопка ГЛАВНАЯ СТРАНИЦА
$main = '<td width="126" height="40">
<form action="index.php">
<input type="submit" name="main" value="Главная страница" style="border: 0; background: url(menu.jpg); background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; width: 130; height: 40; cursor: pointer;">
</form>
</td>';

$tspace = ' </td>
</table>
</div>
</div>
</td>';

//кнопки меню Информация
$form_info = "
<form action=\"index.php\" class=\"form_m\">
<input type=\"submit\" name=\"info\" value=\"Информация\" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; width: 120; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\"><br>
<input type=\"submit\" name=\"shem\" value=\"Схема проезда\" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; width: 120; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\">
</form>";

$form_00 = ' <td>
<div style="position: absolute;">
<div onMouseOut="hide_menu(1);" onMouseOver="show_menu(1);" style="position: absolute; width: 56; height: 40; visibility: hidden; left: 0; top: 20;" id="m1">
<table class="menu" width="120" cellpadding="0" cellspacing="0" border=0>
<tr><td>';

$form_01 = '
<td width="86" height="40" onMouseOut="hide_menu(1);" onMouseOver="show_menu(1);" style="cursor: pointer;">
<font class="menu">Информация
</td>';

//кнопки меню О Проекте
$form_proj = "
<form action=\"index.php\" class=\"form_m\">
<input type=\"submit\" name=\"price\" value=\"Сроки обучения и стоимость\" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; width: 250; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\"><br>
<input type=\"submit\" name=\"otdel\" value=\" Отделения \" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; text-align: right; width: 250; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\"><br>
<input type=\"submit\" name=\"pract\" value=\"Производственная практика\" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; text-align: right; width: 250; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\"><br>
<input type=\"submit\" name=\"work\" value=\"Учебно-исследовательская работа\" style=\"border: 0; background-color: #114477; color: #ffffff; font-family: system; font-size: 10pt; width: 250; height: 20; cursor: pointer;\" onMouseOut=\"Fade(this, '6699cc', '114477');\" onMouseOver=\"Fade(this, '114477', '6699cc')\">
</form>";

$form_10 = ' <td>
<div style="position: absolute;">
<div onMouseOut="hide_menu(2);" onMouseOver="show_menu(2);" style="position: absolute; width: 56; height: 40; visibility: hidden; left: 0; top: 20;" id="m2">
<table class="menu" width="240" cellpadding="0" cellspacing="0" border=0>
<tr><td>';

$form_11 = '
<td width="150" height="40" onMouseOut="hide_menu(2);" onMouseOver="show_menu(2);" style="cursor: pointer;">
<font class="menu">О Проекте
</td>';

//***********************************************************************************************//
// вывод заголовка и скриптов //
//***********************************************************************************************//

echo "<html>
<head>
<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=windows-1251\">
<title>z-test</title>
<link rel=\"SHORTCUT ICON\" href=\"icon.ico\"/>

<script type=\"text/javascript\">
function show_menu(Code){
document.getElementById(\"m\"+Code).style.visibility=\"visible\";
}
function hide_menu(Code){
document.getElementById(\"m\"+Code).style.visibility=\"hidden\";
}
function openurl(s_url){
window.open(s_url, target=\"mainfr\");
}

var s, c1, c2, r1, g1, b1, r2, g2, b2;
var fTimeout, fObj, fSteps = 25, fDelay = 5;

function Fade(obj, color1, color2){
if (fTimeout) {
clearTimeout(fTimeout);
if (fObj) fObj.style.backgroundColor = c2;
}
fObj = obj; c1 = color1; c2 = color2;
r1 = eval('0x' + c1.substring(0,2));
g1 = eval('0x' + c1.substring(2,4));
b1 = eval('0x' + c1.substring(4,6));
r2 = eval('0x' + c2.substring(0,2));
g2 = eval('0x' + c2.substring(2,4));
b2 = eval('0x' + c2.substring(4,6));
s = 0;
DoFade();
}

function DoFade(){
var d = s/fSteps, m = 1 - d;
fObj.style.backgroundColor = \"#\" + Dec2Hex(r1 * m + r2 * d) + Dec2Hex(g1 * m + g2 * d) + Dec2Hex(b1 * m + b2 * d);
if (s < fSteps) fTimeout = setTimeout('DoFade()', fDelay);
s++;
}

function Dec2Hex(Dec){
var hexChars = new Array(\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\");
var a = parseInt(Dec) % 16, b = (parseInt(Dec) - a)/16;
var hex = \"\" + hexChars[b] + hexChars[a];
return hex;
}
</script>
</head>
<body vlink=\"#000000\" alink=\"#000000\" link=\"#000000\">
<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"style.css\">

<!--MAIN TABLE-->

<table cellpadding=\"0\" cellspacing=\"0\" height=\"100%\" width=\"100%\"> <!--height=\"1024\"-->
<tr height=\"200\" valign=\"top\">
<td>
<!--таблица с логотипом-->
<table class=\"top_menu\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"table-layout:fixed;\">
<tr>
<td width=\"374\" height=\"200\" align=\"left\" background=\"cr.jpg\" style=\"background-position: center; background-repeat: no-repeat;\"></td>
<td width=\"100%\"></td>
<td width=\"395\" height=\"200\" align=\"right\" background=\"top00.jpg\"></td>
</table>
</td>
</tr>
<tr height=\"40\" valign=\"top\">
<td align=\"center\" valign=\"middle\">
<table class=\"menu\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" height=\"40\" width=\"100%\">
<tr>
<td>
<table cellpadding=\"0\" cellspacing=\"0\" align=\"left\" height=\"40\" width=\"1000\" style=\"table-layout: fixed;\">
<tr>";

//***********************************************************************************************//
// вывод меню //
//***********************************************************************************************//
print "$space"; print "$main";
print "$space"; print "$form_00"; print "$form_info"; print "$tspace"; print "$form_01";
print "$space"; print "$form_10"; print "$form_proj"; print "$tspace"; print "$form_11";
print "$space"; print "<td width=\"100%\"></td>";

echo " </tr>
</table>
</td>
</tr>
</table>
</td>
</tr>";

//***********************************************************************************************//
// обработка кнопок меню и кнопок страниц //
//***********************************************************************************************//
//КОЛЛЕДЖ
if (@$info) {$show = 1; include("00_main/info.php");} else {$show = 0;}
if (@$shem) {$show = 1; include("00_main/shem.php");}
//ОБУЧЕНИЕ В КОЛЛЕДЖЕ
if (@$price) {$show = 1; include("01_ln/price.php");}
if (@$otdel) {$show = 1; include("01_ln/otdel.php");}
if (@$pract) {$show = 1; include("01_ln/pract.php");}

//КНОПКИ НА ДРУГИХ СТРАНИЦАХ
//Информация
if (@$license) {$show = 1; include("00_main/license.php");}
if (@$accred) {$show = 1; include("00_main/accred.php");}

//ГЛАВНАЯ
if ($show==0) {include("main.php"); $show = 1;}
?>

я постарался прокоментировать максимальное количество всего этого безобразия, но думаю стоит начать по порядку...
Краткий экскурс в php. В php переменные объявляются со знаком $<имя_переменной>. Вывод содержимого, насколько мне помниться производится функцией либо print "$<имя_переменной>" либо echo "$<имя_переменной>" либо одно из двух =) Теперь смотрим на кусок кода. В самом начале я объявил переменную логическую $show. Она сразу равна 2, это просто чисто мера предосторожности чтобы даже ни в друг чего =) Далее мы подготавливаем пункты меню. Да, кто-то может сказать что их можно сразу было бы вывести перед обработкой кнопок. Не знаю, как вам, а мне если что, править удобнее одну переменную нежели выискивать нужный кусочек в общей мешанине...

Теперь разберём меню. Оно представляет сабой таблицу, каждый пункт меню есть кнопка. У кнопки стоит тип "submit", т.е. Кнопка с запросом. Хочу заметить, то что каждую кнопку или группу кнопок необхадимо засунуть в тег "<form>" для того чтобы php понял где висит обработчик кнопок необходимо в action указать файл содержащий обработчик. В данном случае все кнопки меню естесственно обрабатываются главной страницей.

Что-то как-то я не по русски излагаю. Совсем забыл... Структура сайта представляет собой таблицу. Начало которой висит в INDEX.PHP, а завершение в остальных файлах сайта =) Многие пробегаясь по куску кода спросят: А где обработчик кнопки "Главная страница"? На что у меня есть ответ: А ЗАЧЕМ? Посмотрите внимательней... Нажимая каждый раз на кнопку, форма реагирует на нажатие и отправляет нас в поисках обработчика кнопки на соответствующую страницу... Нажав на "Главную страницу", скрипт увидит сначала переменную $show, которая равна изначально 2, далее он выведет меню и будет искать чтоже делать с кнопкой. Пробежав по всем IF'ам и ненайдя нужной переменной отвечающей за главную страницу скрипт наткнётся на последний IF где дословно написано что если нету такой кнопки->вывести главную страницу.

Теперь наверняка у новичков возникнет вопрос: Зачем в условиях обработки кнопок перед переменными написана @ (собака)? Поясню, что если этого не сделать, php по дефалту будет выдавать "Warning'и" потому что переменные объявлены в html но лежат в других переменных php... вот такие заморочки, но так было всегда :о)

Теперь для совсем полного счастья нам не достаёт написать ещё пару файликов. Это собственно главная страница, и пару файлов для того чтобы показать как отрабатывать кнопки в других директориях сайта :о)

Итак, создаём файл main.php, в который помещаем дословно следующее:

<?
echo " <tr>
<td height=\"100%\" width=\"100%\">

<table border=\"0\" width=\"100%\" height=\"100%\">
<tr height=\"8\"><td colspan=\"3\"></td>
<tr><td width=\"10\">&nbsp;</td><td width=\"100%\" valign=\"top\">
<font><div align=\"justify\">

&nbsp;&nbsp;&nbsp;<u class=\"dark_blue\">z-test</u> - The debate over our past on this world reaches back through the entire documented history of civilization, a period covering over 1300 years. The harsh conditions across this world, Kharak, [A1] fueled the myths of other places and times where we did not have to spend so much of our strength on simple survival. While the issue of our distant past was primarily a religious matter [A2], it wasn’t until the dawning of the Time of Reason [A3] that advances in the biological and chemical sciences revealed a disturbing lack of commonality between our biochemical makeup and that of most Kharakid life. Ironically, it was the birth of the Daiamid Movement, with its many scientific breakthroughs, that created a philosophical environment where the oldest myths and the newest theories could be wedded into what we now have accepted as the XenoGenesis Theory. Except for a small variety of bacteria and a single species of small forager, our helix proteins are completely different from all other forms of life on Kharak. We are left with no other choice but to seriously consider the theory that we are aliens to this world. Of course, this answer only led to more questions.

</div></td><td width=\"10\">&nbsp;</td>
<tr height=\"8\"><td colspan=\"3\"></td>
</table>

</td>
</tr>
</table>
</body>
</html>";
?>

в принципе, по идее оно же пофигу чё писать на главной, вот и я взял кусок прям из мануала по первому Хомке. Так что не обессудьте. Здесь, как видите, идёт наше продолжение таблицы... и как итог закрываем полностью весь документ. Да, у когото возникнет вопрос, зачем я понаставил столько обратных слешей. Ответ прост. Дело в том что php одинаковые кавычки воспринимает неадекватно и ругается на них, так что если хотите вывести "", то пишите либо " \"\" " либо ' "" '. вот. Кстати Bred3 это всё понимает и подсвечивает. Советаю скачать. Ну а чтобы не рыться по рунету в поисках оного также можете у меня на "сайте" его скачать)

Тепереча создаём папку с именем 00_main к примеру. И в ней создаём пару файлов с именами info.php, shem.php, accred.php, license.php. Приведу их код в том порядке как они записаны а разъясню только первый.

//файл info.php
<?
if (@$license || @$accred) {include("../index.php");} else {

$lic = '<form action="index.php">
<input type="submit" name="license" value="Лицензия" style="border: 0; background: url(00_main/license_s.jpg); background-color: #cccccc; color: #336699; font-family: system; font-size: 10pt; width: 178; height: 256; cursor: pointer;">
</form>';
$acr = '<form action="index.php">
<input type="submit" name="accred" value="Аккредитация" style="border: 0; background: url(00_main/accred_s.jpg); background-color: #cccccc; color: #336699; font-family: system; font-size: 10pt; width: 178; height: 256; cursor: pointer;">
</form>';

echo " <tr>
<td height=\"100%\" width=\"100%\">

<table border=\"0\" width=\"100%\" height=\"100%\">
<tr height=\"8\"><td colspan=\"3\"></td>
<tr><td width=\"10\">&nbsp;</td><td width=\"100%\" valign=\"top\">
<font><div align=\"justify\">

&nbsp;&nbsp;&nbsp;<u>Информация</u><p>";

echo "<table><tr><td width=\"100%\" height=\"100%\" valign=\"top\">";
echo "
<font>бла бла бла и всё такое
<p>пишем тут всякий разный текст... думаю понятно =)
";
echo "</td><td valign=\"top\">"; print "$lic"; print "$acr"; echo"</td></table>";

echo "

</div></td><td width=\"10\">&nbsp;</td>
<tr height=\"8\"><td colspan=\"3\"></td>
</table>

</td>
</tr>
</table>
</body>
</html>";}
?>

здесь значит что мы видим... тут как раз две кнопки, на которых были картинки... по нажатию на которые соответственно должны выводится эти самые картинки в увеличенном виде. Собственно разъясняю как это работает:
1. если была нажата какая либо из двух кнопок, то мы подключаем файл и корневой директории с именем index.php иначе подготавливаем кнопки-картинки и выводим информацию с кнопками-картинками.
2. php, как только мы ткнулись на одну из двух картинок-кнопок смотрит где лежит обработчик, а лежит он в index.php. я его незря положил именно туда, т.к. в итоге мы получим цельную красивую страницу с логотипом, менюшкой и картинкой в большом формате. думаю тут всё понятно =)

да... поскольку я использовал файл со стилями, в котором по умолчанию поставил отступы для страницы по нолям, поэтому внутри таблицы, там где мы выводим текст файлов, я использую ещё одну таблицу ячейки которой "работают" за эти самые отступы...

вот. следуем далее:

//файл shem.php
<?
echo " <tr>
<td height=\"100%\" width=\"100%\">

<table border=\"0\" width=\"100%\" height=\"100%\">
<tr height=\"8\"><td colspan=\"3\"></td>
<tr><td width=\"10\">&nbsp;</td><td width=\"100%\" valign=\"top\">
<font><div align=\"justify\">

&nbsp;&nbsp;&nbsp;<u>Схема проезда</u><p>

<center><img src=\"00_main/tmc_map.jpg\" width=\"724\" height=\"732\"></img></center>

</div></td><td width=\"10\">&nbsp;</td>
<tr height=\"8\"><td colspan=\"3\"></td>
</table>

</td>
</tr>
</table>
</body>
</html>";
?>

//файл accred.php
<?
echo " <tr>
<td height=\"100%\" width=\"100%\">

<table border=\"0\" width=\"100%\" height=\"100%\">
<tr height=\"8\"><td colspan=\"3\"></td>
<tr><td width=\"10\">&nbsp;</td><td width=\"100%\" valign=\"top\">
<font><div align=\"justify\">

<center><img src=\"00_main/accred_f.jpg\"></img>

</div></td><td width=\"10\">&nbsp;</td>
<tr height=\"8\"><td colspan=\"3\"></td>
</table>

</td>
</tr>
</table>
</body>
</html>";
?>

//файл license.php
<?
echo " <tr>
<td height=\"100%\" width=\"100%\">

<table border=\"0\" width=\"100%\" height=\"100%\">
<tr height=\"8\"><td colspan=\"3\"></td>
<tr><td width=\"10\">&nbsp;</td><td width=\"100%\" valign=\"top\">
<font><div align=\"justify\">

<center><img src=\"00_main/license_f.jpg\"></img>

</div></td><td width=\"10\">&nbsp;</td>
<tr height=\"8\"><td colspan=\"3\"></td>
</table>

</td>
</tr>
</table>
</body>
</html>";
?>

теперь текст файла с таблицей стилей, который необходимо разместить рядом с index.php

//файл style.css
body{
scrollbar-face-color: #114477;
scrollbar-highlight-color: #336699;
scrollbar-3dlight-color: #225588;
scrollbar-darkshadow-color: #000000;
scrollbar-shadow-color: #000000;
scrollbar-arrow-color: #5588bb;
scrollbar-track-color: #336699;

background-image: url();
background-repeat: no-repeat;
background-attachment: fixed;
text: #000000;
text-align: justify;
background-color: #ffffff;
margin: 0;
padding: 0;
}

font{
font-family: verdana, cursor, utopia;
font-size: 10pt;
color: #000000;
}

font.menu{
font-family: system, cursor, utopia;
font-size: 10pt;
color: #ffffff;
}

font.menu2{
font-family: system, cursor, utopia;
font-size: 12pt;
color: #ffffff;
}

b{
font-family: system, arial, cursor, utopia;
font-size: 10pt;
color: #000000;
}

i{
font-family: arial, cursor, utopia;
font-size: 12pt;
color: #000000;
}

u.dark_blue{
font-family: verdana, cursor, utopia;
font-size: 10pt;
color: #114477;
}

font.h2{
font-family: arial;
font-size: 12pt;
color: #000000;
}

table{
border-style: hidden;
border-collapse: collapse;
empty-cells: hide;
}

table.top_menu{
border-style: hidden;
border-collapse: collapse;
background-image: url();
background-repeat: repeat-x;
empty-cells:hide;
}

table.menu{
border-collapse: collapse;
background-image: url(menu.jpg);
background-repeat: repeat-x;
background-color: #114477;
empty-cells: hide;
}

table.bt{
border-collapse: collapse;
background-image: url(menu.jpg);
background-repeat: repeat-x;
background-position: top;
background-color: #114477;
empty-cells: hide;
}

pre{
font-family: arial;
font-size: 10pt;
color: #f4f4f4;
}

form.form_m{
font-family: system, verdana, arial cyr;
border: solid 1 #000000;
background-color: #000000;
padding: 0;
margin: 0;
font-size: 8pt;
}

form.form_link{
font-family: verdana, arial cyr;
border: solid 0 #ffffff;
background-color: #ffffff;
padding: 2;
margin: 0;
font-size: 10pt;
}

собственно на этом первый вариант "движка" простейшего информационного сайта можно считать рассмотренным. Ах да, меню... что могу сказать... меню реагирует на выпадение по id'шнику... т.е. для каждого пункта меню свой id. для пункта информация это 1, для пункта О проекте это 2... и т.д. Подробно описывать работу меню просто уже лень) так что сори) если хотите сами покопайтесь в скрипте =)

рабочую версию прилагаю вложением тут же. а завтра отпишусь по "движку" с выпадающим меню вправо.

stalker[fox]
01-05-2007, 12:32 PM
на затравку, приведу маленький сэмпл на скрещивание явы и php. у многих новичков с этим возникают проблемы =) думаю это будет полезно...


<script language="JavaScript">
function func(s){
if (s.selectedIndex==0) {s_form.inf.disabled=true; s_form.dst.disabled=true;}
if (s.selectedIndex==1) {s_form.inf.disabled=true; s_form.dst.disabled=false;}
if (s.selectedIndex==2) {s_form.inf.disabled=false; s_form.dst.disabled=true;}
}
</script>
<?
$form = '
<form name = "s_form" action="index.php">
<select name = "i_d" onChange="func(i_d)">
<option value=""></option>
<option value="dist">distribution</option>
<option value="info">information</option>
</select>

<select name = "dst">
<option value="a">a</option>
<option value="b">b</option>
</select>
<select name = "inf">
<option value="c">c</option>
<option value="d">d</option>
</select>
<br><input type = "submit" name = "bt" value = "next >>">
</form>
';
echo '<body onLoad = "func(s_form.i_d)">';
print "$form";

if (@$bt) {
if (@$dst)
print "$dst";
if (@$inf)
print "$inf";
}
?>
</body>


естесственно этот кусок лежит отдельным файлом с расширением .php

Pol
01-10-2007, 06:02 PM
гы.. знакомые слова.. МарАЗМ и иэе с ним. ;-) Но чисто знакомые. Я как простой смертный кодю на барсике, когда у меня до кодинга руки доходят, или когда сильно деньги надо..
А по сайтоделанью.. Ограничиваюсь кривыми знаниями Вивера...

stalker[fox]
01-18-2007, 09:33 PM
краткий РТФМ... возможно кому то это будет интересно... например людям у которых есть сеть в доме, или между ними... вобщем у меня однозначно сеть есть. на два компа в одной кухне. спросите зачем? да я если честно и сам не знаю... наверное чтобы диплом тестить)

итак. не знаю кто и как, но сегодня я сидел и долго долго (аж целых 40 минут) вспоминал как же таки слепить апач с сетью чтобы в локальной сети было видно доменные имена сайтов... сначала я поставил апач, потом полез копаться в настройках... потом мне стало лень, я снёс апач и начал капаца в денверовском апаче... но поскольку у меня нифига невышло (ибо я умудрился загадить денвер), то принял решение установить денвера по новой и тестить это всё сколько душе угодно. Итак. Берём чистенький установленный денвер. интегрируем в него парочку рабочих, под него же написанных, проектов... далее лезем в конфигурационный файл апача WebServers\usr\local\apache\conf\httpd.conf и в самом конце меняем вот это:

#
# Следующая директива необходима для того, чтобы подключить файл со всеми
# виртуальными хостами, доступными в системе. Этот файл модифицируется
# автоматически при запуске, поэтому любые внесенные в него изменения
# не сохраняются. Если вы хотите повлиять на содержимое файла, то измените
# шаблон виртуального хоста, идущий выше.
#
Include conf/vhosts.conf


#
# Конец файла
#

на, к примеру (у меня то прожект как никак), вот это:

NameVirtualHost 10.10.10.10:*
<VirtualHost 10.10.10.10>
# ServerAdmin webmaster@webdll
ServerName webdll
DocumentRoot "z:/home/webdll/www"
ErrorLog z:/home/webdll/error.log
</VirtualHost>

NameVirtualHost 10.10.10.10:*
<VirtualHost 10.10.10.10>
# ServerAdmin webmaster@webdll-a
ServerName webdll-a
DocumentRoot "z:/home/webdll-a/www"
ErrorLog z:/home/webdll-a/error.log
</VirtualHost>

#
# Следующая директива необходима для того, чтобы подключить файл со всеми
# виртуальными хостами, доступными в системе. Этот файл модифицируется
# автоматически при запуске, поэтому любые внесенные в него изменения
# не сохраняются. Если вы хотите повлиять на содержимое файла, то измените
# шаблон виртуального хоста, идущий выше.
#
Include conf/vhosts.conf


#
# Конец файла
#

сохраняем. и лезем на машину клиента в папочку по адресу: SystemRoot\system32\drivers\etc\

очутившись в этой папке на МАШИНЕ КЛИЕНТА (Того кто будет к вам подключатся. у него к примеру IP адрес 10.10.10.11) в файлик hosts в конец добавляем следующие магические строчки:

#server
10.10.10.10 webdll
10.10.10.10 webdll-a

сохраняем, закрываем.. тыркаемся в браузер (набираем там к примеру вот как у меня webdll) и о чудо... оно работает... кстати перед тем как тыркаца, не забудьте у себя запустить DENWER :D

ЗЫ: если у вас в сети инет через прокси-сервер то я пока ещё не знаю что будет... по идее ничего... всмысле ничего страшного :D... позже протестю и скажу точно чё происходит. Всем спасибо, все свободны)

ЗЗЫ: да, чуть не забыл... в файле на сервере который httpd.conf после директивы Listen нужно прописать следующее (иначе нифига оно не йожык)...

Listen 8648
Listen 80
Listen 10.10.10.10:80

другие Listen'ы мона закоменьтить чтобы не мешались)

Дрон01
01-19-2007, 03:39 PM
Вглядываюсь в знакомые строчки и думаю: "А не проще ли поставить на компе в локалке DNS?")))) А на машине клиента прописать просто айпишник твоего компа в качестве Nameservers. Правда, я их под винду не знаю ни одного такого сервера, но пускай уж Линукс будет в сети? У нас так. Более того, ещё и сервер у меня выставлен, и форум, и всё через тот же "sh: service httpd start", апач родимый, то бишь. А в Виндовозном Денвере хрен разберёшься - я полчаса голову ломал, как же апач из виртуального сделать и внешним тоже)) Ещё и вирусни к его эгзешникам налипло - ёмаё...
З.Ы. К слову сказать, всё же весьма интересный метод у тебя, я завтра попробую. Ох, и побегать придётся по этажам))...

stalker[fox]
01-19-2007, 09:43 PM
2 Дрон01:
насчёт "А не проще ли поставить на компе в локалке DNS?"

отвечу что ой как не проще... ибо не тру сафсем... доменная сеть недаёт ничего ровным счётом кроме как имя компа типа mycomp.net.ru
тупо, фигово и хрен работает нормально... потом оно же ведь полюбой нужно IIS чтобы был... а это дополнительный гемор...
ставить линух как сервак... тоже вариант НО! этож с SAMBOй мудохаца (спец клиент для виндовых сетей, наскока я помню)

а насчёт денвера ты зря... пакет отличный. главное разобраться ... насчёт вирусни... это кароче лезь на http://webtestphp.h17.ru/ смотри в самый низ странички и читай... и будет те щастье...

ЗЫ: а под хорошо поставленный и настроенный денвер можно прогрузить любой проект... включая форум и гостевую... вобщем все прелести интернетовских фишек)
точно могу сказать что форум phpBB2 работает на денвере на все 100% :)

stalker[fox]
01-27-2007, 07:37 PM
так так так....

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

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

ЗЫ: мои извинения за старую привычку выводить теги html print'ом... в большинстве случаев обычно нормальные люди ставят <? ?> там где надо, а не сразу на весь документ) такая уж идиотская привычка :wallbash: :o

stalker[fox]
01-31-2007, 07:51 PM
ЗЫ: мои извинения за старую привычку выводить теги html print'ом... в большинстве случаев обычно нормальные люди ставят <? ?> там где надо, а не сразу на весь документ) такая уж идиотская привычка

кстати сказать... данная идиотская привычка действительно идиотская, ведь если мы будем писать, например так:
...
<?
скрипт php;
?>
теги html и js
<?
скрипт php;
?>
...

ТО, при такой организации, при загрузке нашей страницы сайта картинки будут должны кешироватся и сайт будет работать гораздо быстрее... нежели при варианте типа:

<?
скрипт php;
print "теги html и js";
скрипт php;
?>


2All:
все кто брал шаблоны "движков" сайтов выложенных мной, пожалуйста исправьте всё на то как я только что написал)

Дрон01
02-04-2007, 06:18 AM
Слушай, а Денвер ведь обновляется? У него ж где-то домашняя страничка есть....в связи с этим вопрос - как его обновлять?? И не смотри на меня так, ты не то подумал. Дело в том, что я за базу форума и сайта боюсь - как там с ней выйдет. Вдруг более новая версия не поддерживает старых баз?? Или это уже психоз у меня начинается?
З.Ы. Вот у тебя денвер как идёт, инсталятор, то бишь сам? Пакетом MSWInstaller? Он же просто распаковывается и на установки предыдущего денвера даже не смотрит!!

stalker[fox]
02-04-2007, 01:52 PM
просто распаковывается и на установки предыдущего денвера даже не смотрит
прав, не смотрит... и смотреть не будет... это типа твои проблемы о сохранении предыдуших настроек... к тому же тебе никто не мешает сохранить кофигурационные файлы и потом просто заменить новые ихними

обновлять его просто) качаешь новую версию с официального сайта. где адрес сайта? запусти денвер и набери в строке браузера http://localhost ... где то там был :)

базы муськи хранятца по адресу:
\WebServers\usr\local\mysql4\data\

вывод... берёшь базы, создаёшь там папку с нужным названием, кидаешь туда базы и не паришься) тестируй.... кстати в денвере, после того как зайдёшь на localhost есть там в списке замечательная тулза под названием phpmyadmin если уж боишься ручками втыкать базы, попробуй импортировать через эту тулзу.

да, ещё уж савсем для параноиков но рабочий 100% метод... это установить форум на денвер, посмотреть куда он кинул базы от него, и потом свои старые базы сунуть вместо нулёвых ;)

базы... всё что в ходит в состав денвера т.е. муска, пхп и дры поддерживает предыдущие форматы) иначе смысл?..

ЗЫ: у тебя психоззз :D тебе срочно нужно принять один из препаратов (http://www.2c-foto.ru/121.htm) :D

ЗЗЫ: денвер у всех и всегда все версии идуть инсталяхами)

Ten
02-04-2007, 05:01 PM
Дело в том, что я за базу форума и сайта боюсь - как там с ней выйдет.Ооо, за совместимость баз не боись :) Сталкер прав, у мускула полная совместимость снизу вверх - более новые версии прекрасно понимают файлы таблиц (*.frm/*.MYD/*.MYI) от предыдущих версий. Я наш родной форум вообще на пятом мускуле начинал возрождать (а точнее, 5.0.18 - тогда это была самая последняя версия, как сейчас помню :)). Потом перешёл на 4.0.20 - проблем с кодировкой стало меньше. Сейчас вообще 4.1.х - это версия хостера, с ней желательно дружить во избежание ненужных эксцессов ;)

А вообще, как мне кажется, лучше брать и ставить всё по отдельности - Денвер, AppServ и прочие подобные им пакеты, ИМХО, приучают к тому, что что-то уже сделано за тебя. Они не заменимы, когда нужно быстро развернуть веб-сервер из подручных средств. Но начинать освоение этих технологий с Денвера я специально не стал - привычка приходить на готовенькое в один прекрасный миг может вылезти тем ещё боком. Нужно уметь всё делать самому - иначе какой же ты спец?

Или это уже психоз у меня начинается?Это не психоз :) Это закономерное желание точно знать, что форум и сайт не склеит ласты от неудачного обновления ПО сервера. Как уже опытный в таких вещах товарищ рекомендую делать бэкап перед каждой сменой обстановки (апгрейд движка форума, сервера и т.д.). Бэкап в нужное время и в нужном месте способен сэкономить немало времени, нервов и сил :)

вывод... берёшь базы, создаёшь там папку с нужным названием, кидаешь туда базы и не паришься) тестируй....ИМХО, лучше бэкап делать SQL-дампом. Это наиболее оптимальный способ - ты не зависишь от формата бинарных файлов мускула. SQL он потому и мощь термоядерная, что стандартизирован, то есть, везде шевелится - ты не зависишь от движка БД. У мускула (во всяком случае, полной версии) есть утилита mysqldump, которая и позволяет делать дамп. Если доступа к командной строке нет (а на большинстве хостингов это так), очень может выручить замечательная украинская разработка - Sypex Dumper. Официальный сайт - www.sypex.net (как буду делать блок партнёров, в самом низу повешу и их баннер - заслужили :)). Этот маленький, да удаленький скрипт гораздо мощнее phpmyadmin'a, который, например, восьмидесятимегабайтную базу не позволит импортировать без дополнительных настроек (причём ни один хостер тебе таких настроек никогда не даст). phpmyadmin в другом хорош – он позволяет автоматизировать рутинные операции составления запросов. Если бы я всё делал вручную, возрождались бы мы ещё год :D

PS: Дрон, а что за форум, если не секрет? Внутренний форум общежития? ;)

PSS: Сори, что пишу мало... вернусь - покалякаем на эту и другие темы поподробнее... совсем немного досдавать осталось :)

stalker[fox]
02-04-2007, 06:17 PM
Денвер, AppServ и прочие подобные им пакеты, ИМХО, приучают к тому, что что-то уже сделано за тебя

а вот возьму и не соглашусь :D
0. денвер вполне (даже слишком) полноценный пакет
1. один раз проделав никогда не забудешь что и куда...
2. ляпать каждый раз всё в одно после падения либо системы либо после какого нибудь тупняка (собственного или же вирусни, ламеров, случайно оказавщегося на клаве сервака кота... и дры стехийных бедствий) просто задалбливает :D

x486
02-24-2007, 04:43 PM
Возник тут вопросец. Как можно вписывать или читать данные из запущенного exe’шника? Например, читать данные из своего же исполняемого файла, как например самораспаковывающееся архивы WinRar или что-то подобное. Хотелось бы увидить код на Сях.