Jump to content

Yarik Voronov

Expert
  • Posts

    226
  • Joined

  • Last visited

Everything posted by Yarik Voronov

  1. Можно. Ибо куки есть куки как бы они поставлены не были, а именно куки - это текстовая информация в текстовом файле. Через SSL в смысле? SSL тут ничего не даст, так как шифруется информация непосредственно перед отправкой, дешифруется перед просмотром. То есть в браузере будет все тот же стандартный код. Могу предложить такой вариант (в принципе широко используемый): берем N-параметров HTTP заголовка + M-служебных значений форм + какой-нибудь набор символов. извлекаем из них хешь какой-нибудь необратимой функции (md5, sha1) и этот хешь ставим как значение куки. потом получаем его, проделаваем то же самое и сравниваем. Например: $sCookie=md5($_SERVER['REMOTE_ADDR'].'dSLmkWopFPryq01kdD45'.$_SERVER['HTTP_USER_AGENT']); Вот примерно так. Но есть маленький прикол: за одним и тем же компьютером могут сидеть разные люди. В основном сотрудники "деляться" своим логином и паролем к компьютеру с соседом, подменяющим на время отпуска и т.д. посему может быть казус: подменяю я например Иванова; значитца нормально загрузил его комп (под его логином-паролем); открываю его браузер; захожу на форум...; и меня залогинело как Иванова, ну а я хотел быть самим собой, т.е. Сидоровым С другой стороны практически все браузеры предлагают автозаполнение форм. Но можно например сократить авторизацию только до пароля (логин береться из куки)
  2. mysql_connect(); - это функция РНР принимающая значения (см. мануал РНР): адрес на котором висит сервер баз данных, имя пользователя на этом сервере, пароль для этого пользователя. обычно, как и отметил Dimitry Wolotko, адрес на котором висит сервер баз данных - это localhost (127.0.0.1). Делается так в целях безопасности и ограничения возможности атак из интернета, с удаленного компьютера Теперь про хостера. Хостер дает пользователю (тебе) пароль и имя юзера MySQL. Обычно по этому юзернейм хостер дает неограниченный доступ только к определенным базам данных (например user_bd1, user_bd2 и т.д., где user имя выданное хостером). Потому чтобы не париться с переделыванием когда, лучше предварительно получить эти данные от хостера (логин, пароль, имя базы данных), и соэдать такую же БД на локальном компе. Второй нюанс: обычно програмисты создают отдельные конфиг-файлы с паролями и явками и ограничивают к ним доступ. Еще лучше когда для скриптов на сайте используется пользователь БД с еще более ограниченными правами (например не может создавать/удалять таблицы, менять их структуру - все зависит от потребности сервиса, ессно дело). Про базы. построение, оптимизация и планирование баз данных отдельный вопрос, широко освещенный в литературе и интернете. MySQL реализует алгоритмы работы с реляционными базами данных. Примерная общая логика этих алгоритмов такова: запрос - вычисления сервера БД - ответ. РНР вообще никак не принимает участия в промежеточной стадии. Его задача отправить запрос получить ответ. Задача программиста правильно поставить запрос, правильно отработать ответ. MySQL использует "свой собственный" язык запросов, отличный от языка программирования РНР - это SQL (SQL так же с вариациями используется и другими серверами баз данных, зависит от функционала заложенного в сервер баз данных) Совет: чтобы правильно составить запрос, надо сначала попрактиковаться в SQL языке (через тот же phpMyAdmin): составить SQL-запрос, выполнить его, отладить если надо, а уж затем оптимизировать как текстовую переменную в РНР.
  3. [offtopic] часов 5 наверно. просто тема для меня новая, пришлось повозиться с разными вариациями (алгоритмами) З.Ы. Хорошая матчасть (мануал) очень повышает скорость работы. У меня O'Relly http://hell.org.ua/Docs/oreilly/ [/offtopic]
  4. или делать сабмит формы в самом java-скрипте после проведения всех проверок: document.getElementById('myForm').submit(); ессно вызывать проверку и отправку придеться кнопкой не типа "submit", или такую кнопку выносить за форму
  5. elfuvo, и было вначале два варианта: 1. разобрать все стили страницы в объект типа { selectorA : [styleSheetIndex, cssRulesIndex], selectorB : [styleSheetIndex, cssRulesIndex], selectorN : [styleSheetIndex, cssRulesIndex] } потом среди них найти нужный селектор, по его индексу среди cssRules изменить / записать нужные свойства и(или) их значения. Но, подумав, нашел несколько недостатков, во-первых, styleSheet обычно более одного, во-вторых, селекторы могут иметь одинаковые имена и разные свойства, но соответственно разные cssRulesIndex, в-третьих, много времени уйдет сначало на разбор, потом на поиск, да и над самим кодом тоже придется повозиться. Потому реализовал второй вариант 2. в конец последнего листа CSS правил довавить последним нужный селектор с заданными свойствами: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Work with CSS Rules</title> <style type="text/css" id="documentRule"> .new { border-bottom:#3300FF 10px solid; } DIV { background-color:#CBCBCB; border:solid 2px #3300FF; color:#FF0000; width:350px; height:100px; margin:15px; padding:5px; } </style> </head> <body> <script language="javascript" type="text/javascript"> function getStyle(aObj) { var sObj= document.styleSheets[document.styleSheets.length-1], sObjRules= sObj.cssRules ? sObj.cssRules : sObj.rules, e= sObjRules.length-1, myRuleA= {}, myRuleB= {}, curentRule= {}; myRuleA['head']= '.new'; myRuleA['body']= 'background-color:#FFFF66;'; myRuleB['head']= '.new'; myRuleB['body']= 'background-color:#990000;'; var editRulesDOM= function () { if (sObjRules[e].cssText.match(/^.news{/)) sObj.deleteRule(e); else e++; sObj.insertRule(curentRule['head']+' {'+curentRule['body']+'}',e); } var editRulesIE= function () { if (sObjRules[e].selectorText.match(/^.new/)) sObj.removeRule(e); else e++; sObj.addRule(curentRule['head'],curentRule['body'],e); } if (aObj.className=='A') { aObj.className= 'B'; curentRule= myRuleA; }else{ aObj.className= 'A'; curentRule= myRuleB; } if (sObj.cssRules) editRulesDOM(); else editRulesIE(); } </script> <a href="#" onClick="getStyle(this); return false;" class="A">Check It</a> <div id="myDiv" class="new"> </div> <div id="styleVal" class="new"> </div> </body> </html> протестировано IE6SP1, FF2.0.0.8, Opera 9.24
  6. для форума- недостаточно. да и банить по айпишникам не самый правильный способ. они могут быть динамическими, могут ходить через проксю. З.Ы. Проверь личные сообщения
  7. да можно , то только начиная с РНР5 Подскажем... Они храняться на стороне браузера. Наверно вылетает окошко: "Сраница содержит POST дата, эти данные будут отправлены ОК ОТМЕНА"? Самый простой способ избавиться от этого переадресовать клиента принудительно через хедеры. Или так, как сделано на этом форуме при добавлении сообщений
  8. Если я ничего не путаю (TCP/IP - протокол, DNS) то простыми средствами никак, так как изменение адресной строки говорит браузеру о новой локации. Можно например открывать новое окно без тулбаров. но тогда если есть ссылки в них должна быть прописана однозначная локацая, то есть в данном случае IP. Хотя обманываю ссылка обычно идет без префикса адреса . Мой рабочий вариант такой: завести сайт и серверными скриптами дергать инфу с домашнего компа. Модель выглядит так: Клиент Второй рабочий вариант: зарегистрировать сайт, в DNS записи сайта прописать свой домашний IP. Но тогда ессно дело whois выдаст этот IP
  9. Вот смотри, как говорил один известный герой Г.Гаррисона: "Правильно поставленный вопрос уже содержит в себе ответ". В чем путаница? в этапах? тоды задаешь в гугле "этапов создания сайта", например. и там столько ответов на данный вопрос. (Этапы создания сайта, как пример) имхо, Ildar_M, прежде чем вообще приступать к рисованию в фотошопе и к верстве, следует крепко задуматься что будет на сайте, кому эта информация предназначена, какие функции (сервисы) будут на сайте (обратная связь, заказы, магазин, голосование, поиск и т.п.). Из этих базовых вопросов, например я, делаю вывод как должна располагаться инфа, в каком оформлении (сравнивая с какими-то подобными сайтами, которые посещал, которые понравились в плане юзабилити). Потом беру листочек и делаю набросок макета. А уж потом открываю фотошоп и рисую, попутно думая как это все может быть сверстано. Далее верстка, отладка, программирование, отладка
  10. 2 IceBars, смотря какая задача, если гостефуха - то можно, если проведение платежей - то их будет недостаточно
  11. Fu-tai, ну что я говорил??? лан не в том траблы... Как следует из определения данном на htmlbook.ru: CSS (Cascading Style Sheets, каскадные таблицы стилей) ? это набор параметров форматирования, который применяется к элементам веб-страницы для управления их видом и положением., - а скролл бар не относиться к элементам веб-страницы, он относиться к элементам управления веб-браузера. ну а ослик поддерживает стандарты через пень колоду. советую бросить эту затею с изменением элементов управления браузера (в том числе и строки состояния). имхо, область творчества профессионального веб-верстальщика-програмиста по писаным переписаным законам ограничена от до Кстати, данные """свойства""" CSS аля Осел не поддерживаются Mozilla Firefox, Netscape 8, Safari 2, Opera 9. Этих свойств вообще нет в официальной спецификации CSS2.1 Обрати пож-та внимание, что, чтобы было понятно браузеру, цвет в шестнадцатиричной системе измерения записывается с символа решетки (#) - scrollbar-base-color:#FFFF00;
  12. <div class='border'> <table class='left'> <tr class='border'> <td class='border'>Class</td> <td class='border'>Total</td> <td class='border'>Highest Level</td> <td class='border'>Level</td> </tr> </table> </div> Ежели не впадаться в вопрос о наиболее простом сбособе реализации поставленной задачи, то все ли теги закрыты именно там где положено?
  13. 2 vasa_c, хорошо, константа. Но суть проблемы это не меняет (зри сабж) "Говорит не знаю такую переменную" посему image & name это скорее всего имена полей базы данных, а в последствии имена ключей массива $a_row. собственно чтоб не разводить пререкания на пустом месте: 2 Евген код запроса в студию, также полный вывод сроки ошибки парсера РНР и сруктуру таблицы в базе тоже сюда. 2 yopopt если база вернет $a_row['image']=NULL, то isset() не совсем сработает, в данном случае надежнее проверять empty()
  14. Когда-то видел вот такой вариант реализации (или очень похожий). Достаточно быстрый по сравнению с перебором всех ссылок. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Active menu item</title> <style type="text/css"> A { background-color:blue; padding:10px; border:2px solid #000000; margin:5px; color:white; } BODY { margin:5%; } DIV.news A.news { background-color:red; } /*<![CDATA[вносим ручками или серверным скриптом, можно все варинты сразу описать в отдельном файле CSS]]>*/ DIV.main A.main, DIV.cont A.cont { background-color:red; } /*<![CDATA[тестовый пример для проверки работы JS]]>*/ </style> </head> <body> <div id="nav" class="news"> <!--<![CDATA[класс div'а присваиваем ручками или серверным скриптом или java-script]]>--> <a class="main" href="?page=main&t=1">Главная</a> <a class="news" href="?t=1&page=news&g=1">Новости</a> <a class="cont" href="?page=cont">Контакты</a> </div> <!--<![CDATA[Например реализация Java Script]]>--> <script type="text/javascript" language="javascript"> window.onload = function() { var dcName= document.location.href, b= dcName.search("page="), e= dcName.indexOf("&", b); if (e==-1) e= dcName.length dcName= dcName.substring(b+5,e); //где 5 длина строки поиска if (b==-1) dcName= 'main'; document.getElementById('nav').className=dcName; } </script> </body> </html>
  15. $a_row['name'] $a_row['image'] потому что без кавычек интерпретатор ищет не значение массива с ключем имя которого "name", а переменную с таким очень длинным именем "a_row[name]". естественно она не определена.
  16. Yarik Voronov

    ActiveX

    Ессно не решает. Потому что если пользователь захотел чтоб ява и активы не работали, значит они работать не должны. Можно только предупредить пользователя что данный сайт использет то-то то-то (а у вас оно самое не включено) и соотвественно если вы это не включите там-то там-то, то кайфа от просмотра ресурса вам не получить... А вот если мудрецы из мелкософта не включили поддержку прозрачности пнг в версии IE
  17. Например можно так: <div id="logo" style="position:absolute; top:0; left:0;">....</div> <div id="container" style="float:none; margin-left:165px;"> <div id="menu" style="float:none;">...</div> .... </div> Абсолюсно позиционированный слой можно положить в конце кода (будет грузиться самым последним)
  18. 2 Slyfox именно так. Можно просто сделать "Файл - Сохранить как" (что я и сделал). Можно запретить javascript... Но вопрос вот в чем: макрософтовский недоделок сохранил страницу как html и с локалки она правильно открылась во всех трех браузерах (IE, FF и Opera). Потому мне все же думается что ошибка 21043 в неправильной записи первых двух символов в начале страницы. Так же есть подозрение что тут сам народ.ру подгаживает кодировку своим банером (тогда страницу надо переделать из utf в cp1251: и пересохранить и переписать декларацию в meta-теге). З.Ы.: Можно конечно и Teleport'ом весь сайт скачнуть со структурой. но оно мне как-то и не надо
  19. 2 Fu-tai, зря. Низя так подсказывать. Потому что "завтра" он "прибежит" опять сюда и будет просить чтобы написали как так сверстать div, или параграф или что еще такое. Человек должен понять как решать проблему, откуда ответы берут эксперты, опытные пользователи или просто те кто знает. Извиняюсь, если слова обидны. Всех благ.
  20. О, да, отец заблуждения, и рисунки, и текст и ещ? чего-нибудь. А именно: ВСЕ, - до последнего байта банерной рекламы!!! До последней папки дерева структуры информации! .... Короче, вот так: "яю "... - начинается текстовый документ непонятной структуры, непонятной кодировки, ибо "яю" почемуто в cp1251, а все остальное в utf-8А вот так (прошу смотреть внимательно!!!): "quot;-//W3C//DTD HTML 4.01 Transitional//EN"> "... - начинается уже что-то похожее на web-страницу (матчасть здесь)
  21. Т-а-а-к... может все-таки дочитать до конца "CSS по шагам" (http://stepbystep.htmlbook.ru/?pid=5, ибо по предыдущему адресу ссылок справа видимо не заметно)? Да и во-вторых кроме width, все остальные указанные вами свойства в CSS просто не определены. Печально, но факт. См внимательно их "аналоги"
  22. Yarik Voronov

    ActiveX

    скачать и поставить IE 7 Про PNG
  23. Влад, если вопрос еще актуален, то вот 2 варианта: 1. C "красивым" переносом, когда остаютя слева красные поля: div.example { ... border-left:27px solid #800000; } div.example p { ... margin-left: -27px; padding-left: 30px; text-indent:-30px; } div.example p:before { ... } 2. вообще без переносов: div.example { ... overflow:auto; } div.example p { ... white-space:nowrap; } div.example p:before { ... } <div class="example"> <p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"></p> ... <p style="margin-bottom:0px;"></html></p> <!--Чтобы не появлялась прокрутка в FF по вертикали--> </div>
  24. 2 21043, может подучить матчясть, а??? Во-первых "яю" стоит убрать наверно, ибо не относиться к пространству имен HTML и начинать декларировать HTML с "яю" как-то неприлично даже... для столь солидной фирмы как Вольво. Во-вторых, стоит определить DOCTYPE. В-третьих нет такой кодировки для броузера (IE-это не броузер...) как unicode, есть utf-8, utf-16 и т.д. Тег по спецификации может использоваться только в теге . Ну и на последок.... выражение "A, c..., хотели у меня инфу спи...ть?!" ничего не дает, лишь говорит о непрофессионализме автора. З.Ы.: Я уже ее, эту самую инфу, спер...
  25. Я думаю http://stepbystep.htmlbook.ru/?id=43 и http://htmlbook.ru/css/ тебе помогут лучше всех
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy