Отправляет email-рассылки с помощью сервиса Sendsay

Веб-дизайн. Вопросы и ответы.

  Все выпуски  

Веб-дизайн. Вопросы и ответы. # 13.1


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

WEB-дизайн. Вопросы и ответы.
# 13.1 (24)
27 февраля 2001г.
Проект сайта "ADG Scripts" webg.agava.ru
кол-во подписчиков - 9910

    В этом выпуске:               Ссылки Вебмастеру:

  • web-дизайн
  • анимированные гифы
  • фоновые изображения
  • 3d буквы, цифры
  • иконки и кнопки
  • архив рассылок
  • fotoshop
  • flash
  • награды
  • баннеры
  • cgi скрипты
  • java апплеты

  • Доброе время суток!

    Из-за ОГРОМНОГО кол-ва вопросов, прием вопросов по почте временно прекращен, задать вопрос можно сейчас только на этой странице, вписываете свой вопрос в форму для обратной связи и отсылаете.

    Вопрос публикуется только один раз (из-за ограничения размера выпуска и огромного кол-ва вопросов), если Вы не получили на свой вопрос ответ, пришлите его еще раз, но перед этим напишите какой номер вопроса у Вас был в прошлый раз, т.к. рассылка иногда выходит чаще, чем приходят ответы и, может быть, ответ на Ваш вопрос уже есть.

    Вопросы не относящиеся к тематике рассылки, публиковаться НЕ БУДУТ.

    Маленькая просьба. Если Вы пишете автору ответа, чтобы он уточнил какие-либо детали, то цитируйте в письме вопрос и ответ полностью.




              Вопросы и ответы.

  • 880. При обработке картинок в Фронпаге все нормально, присваиваю картинке ссылку - тоже все нормально, смотрю код - вообще все классно, но как только сохраняю и открываю файл в блокноте - о ужас - все ссылки на картинки идут на мой винт! При открытии этой же странички в фронтпаге - все опять нормально! Что делать? Кстати, может можно как то из всех стриничек автоматически убрать file:///E:/Ilya/WWW/8/ а то у меня на всем сайте такой глюк. Может прога какая есть?
    Ответ прислал Dioxis.
    Для этого я использую FAR. Просто нажми Ctrl+F7. Но можно использовать любую оболочку (VC NC DosNavigator) ЗЫ даже в блокноте есть "замена", можешь воспользоватся ею.
    Ответ прислал Pawel.
    Чтобы ничего не глючило учше всего писать руками. А так попробуйте задавать относительный путь к картинке в виде ./ - в текущем каталоге, ./ - выход на уровень вверх и т.д. Не привязывайтесь к конкретному диску.
    Ответ прислал Semyon Vyskubov (Poizon).
    Продолжаю попагандировать Allaire HomeSite. Лучше выучи ХТМЛ, и пиши нормально. Учебник тут http://design-p.by.ru/subscr/html.arc/index.html
    Ответ прислал Kuznetsov Ivan.
    Есть прога, называется Replaser. Она меняет одну строку на другую во всех файлах в указанном каталоге. Пиши, вышлю на мыло. А вообще во Фронтпаге и прочих редакторах такого типа писать не рекомендуется. Сильно засоряют текст странички.

  • 881. Нужен JavaScript, чтобы он выводил значения с 0 до ..., когда чел заходит на страницу, то ему пишется: "вы пробыли на сайте 0 сек", а челез накоторое время - "вы пробыли на сайте 1мин. 40сек" и тд.
    Ответ прислал wasilich.
    Таймер:
    html>
    <title>Ваше время на страничке</title>
    <body bgcolor="#FFFFFF" text="#0000FF" onload="window.setTimeout('getSecs()',1)">
    <div align="center"><center>
    
    <table border="1" cellspacing="1" bgcolor="#000000" bordercolor="#FFFFFF"
    bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" cellpadding="3">
      <tr>
        <td valign="top"><script language="JavaScript"><!--
    
    function person_in() {
       enter=new Date();
    }
    function person_out() {
       exit=new Date();
       time_dif=(exit.getTime()-enter.getTime())/1000;
       time_dif=Math.round(time_dif);
       alert ("You've only been here for: " + time_dif + " seconds!")
    }
    startday = new Date();
    clockStart = startday.getTime();
    function initStopwatch() {
    var myTime = new Date();
    var timeNow = myTime.getTime();
    var timeDiff = timeNow - clockStart;
    this.diffSecs = timeDiff/1000;
    return(this.diffSecs); }
    function getSecs() {
    var mySecs = initStopwatch();
    var mySecs1 = ""+mySecs;
    mySecs1= mySecs1.substring(0,mySecs1.indexOf(".")) + " сек.";
    document.forms[0].timespent.value = mySecs1
    window.setTimeout('getSecs()',1000); }
    
    // --></script><form>
          <div align="center"><center>
          <p><font color="#80FF00" face="MS Sans Serif" size="1">Вы
          находитесь на этой странице уже:<br>
          <br>
          </font><input type="text" size="20" name="timespent" onfocus="this.blur()"
          style="font-family: sans-serif; text-align: center; font-size: 8pt; background-color:
          rgb(0,0,0); color: rgb(255,255,0); border: thin"></p>
          </center></div>
        </form>
       </td>
      </tr>
    </table>
    </center></div>
    </body>
    </html>
    Таймер после выхода:
    
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1251">
    <title>Время на страничке!<</title>
    </head>
    
    <<body bgcolor="#FFFFFF" onload="person_in()"
    onunload="person_out()">
    <script language="JavaScript">
    function person_in() {
       enter=new Date();
    }
    function person_out() {
       exit=new Date();
       time_dif=(exit.getTime()-enter.getTime())/1000;
       time_dif=Math.round(time_dif);
       alert ("Вы были здесь: " + time_dif + " секунд!")
    }
    </script>
    </body>
    </html>
    Ответ прислал "Панков В.
    Например так:
    html>
    <head>
    <script language=JavaScript>
    rash=true; // Расширать поля при увеличении кол-ва цифр (true или false)
    timeOld=(new Date()).getTime();
    min=hour=sec=0;
    function newtime()
    {
    sec++;
    if(sec>59){min++;sec=sec-60;}
    if(min>59){hour++;min=min-60;}
    document.time.sec.value=sec;
    if(rash)
    {
    document.time.sec.size=(' '+sec+' ').length-2;
    document.time.min.size=(' '+min+' ').length-2;
    document.time.hour.size=(' '+hour+' ').length-2;
    }
    document.time.hour.value=hour;
    document.time.min.value=min;
    var timerID=setTimeout('newtime()',1000);
    }
    </script>
    <head>
    <body onLoad='newtime();'>
    <form onSubmit='return false;' name=time>
    Вы пробыли на сайте <input type=text readonly style="border:0" name=hour
    value=0>ч. <input type=text readonly style="border:0" name=min value=0>мин.
    <input type=text readonly style="border:0" name=sec value=0>сек.
    </form></body>
    </html>


  • 882. Как оформлять ссылки, чтобы они при наведении на них не подсвечивался адрес в строке статуса?
    Ответ прислал Semyon Vyskubov (Poizon).
    Разными способами. Например забить пасть строке так:
    <Script Language="JavaScript">
    var yourwords="Ваш текст";
    var speed=150; var control=1;
    function flash(){if (control==1){window.status=yourwords;control=0}
    else{window.status="";control=1}setTimeout("flash();",speed)};
    flash();
    </Script>
    Есть другой способ забить пасть - описание к каждой ссылке. Напиши чуть-позже на poizon@ipoizon.com - найду.
    Ответ прислал Андрей Степанов.
    Вставь такую строчку. Можешь текст не вписывать и тогда вообще ничего в статусе отсвечивать не будет, а не только при наведении на ссылку.
    <body onload="window.defaultStatus='Здесь будет или нет текст'">
    Ответ прислал Pawel.
    Надо в теге ссылки дописать
    onMouseOver="self.status='';"
    То есть при наведении курсора на ссылку будет выводиться пустой текст в строке статуса.
    Ответ прислал beale.
    Вам придется не писать в <a тэг href, а надо просто написать так:
    <a href="" onlcick="top.location='http://you_url'"> и все он не покажет урл на который ссылается страница, но для чего это нужно ?? Ведь кому надо он и так узнает где эта страница находиться, да и он всеравно нажмет и перейдет на неё и в адресной строке будет виден урл !
    Ответ прислал Зритель.
    делается вот так:
    <<a href="SITE.htm" onmouseover="window.status='Ты указал!'; return true" onmouseout="window.status='Ты убрал мышку!!!'; return true">НАВЕДИ</a>
    Ответ прислал pahanix.
    <a href="link_name.html" onMouseOver="window.status='Нужный текст или пустая строка, если нужно, чтобы ничего не показывало';return true">Ссылка</a>
    Но, я считаю это плохим тоном, пользователь должен знать куда ведет ссылка (а не, что вы ему говорите куда она ведет), и нормальная строка состояния, вполне вписывается в дизайн.

  • 883. Как сделать, чтобы картинка (таблица) находилась "под" основным текстом (как Background) и (самое главное) при прокрутке страницы всегда оставалась на месте,а текст проходил "над" ней? При этом необходимо обойтись без Fixed Background и Layer, чтобы эффект был и в Нетскейпе и в Эксплорере.
    Ответ прислал Pawel.
    Сделать то, о чем Вы говорите, не очень просто. Посмотрите скрипт. Главным его достоинством является то, что он работает и для NN и для IE.
    Функция createLayer создает слой, который будет двигаться по странице при прокрутке.
    Функция heartBeat через одну секунду (установка таймера при ее вызове) проверяет положение страницы и перемещает слой.
    То какой слой над каким расположен, можно изменять, добавив при создании слоя внутрь style="" такую запись z-index:...; , где ... обозначает число. Я сам давно с этим не возился, так что попробуйте поэксперементировать с числами.
    Хорошее руководство по динамическому HTML находится по адресу www.htmlguru.com Его там, кажется можно скачать в виде zip.

  • 884. Кто-нибудь может посоветовать книгу по Perl, в смысле - бумажного издания? Может кому-то она, действительно, оказала существенную помощь в освоении языка? (я - полный ламер в этом деле, так что книжки типа "для супер-пупер професионалов" не пойдет).
    Ответ прислал beale.
    Книги тут не помогут !! Качай все что можно с сети а потом уже по мере надобности будешь разбирать статьи, читай вначале то что будет легко или интересно ! А САМОЕ ГЛАВНОЕ разбирай скрипты учись на чужих примерах, потом ты уже сможешь написать свое по примеру чужих, и так ты постепенно выучишь то что тебе надо !! А с книжками бесполезно, идеальной книги нету, в одной есть то но нет другого, в другой наоборот !
    Ответ прислал Марчев Илья.
    Вопрос сей вечен, и так же вечны и неизменны ответы на него:
    1) Изучаем Perl [Learning Perl] (Шварц, Кристиансен), на обложке -- лама. Прекрасный и доходчивый материал для начинающего.
    2) Perl: Библиотека программиста [Perl Cookbook] (Кристиансен, Торкингтон), на обложке -- козел. Как и написано на книжке, "Решения и примеры для программистов". Сборник готовых рецептов.
    3) Perl вкратце [Perl in a Nutshell], что на обложке -- не помню. Начет "вкратце" -- это шутка, бо книги 'in a Nutshell' -- наиболее полные и понятные справочники из встреченных мною. Все книги выпущены издательством O'REILLY. Вообще, O'REILLY и bhv -- две магические мантры, отмечающие легкость восприятия (но идиотом себя не чувствуешь, как с "идиотской" серией) и полность изложения.
    Ответ прислал Alexander Semerikoff.
    Есть замечательная линейка книжек по Perl издательства O'Reilly. Рекомендую начать с простой и доступной книги "Learning Perl (Изучаем Perl)", переведено, по-моему, издательством BHV. Для более продвинутого понимания и дальнейшего развития "Programming Perl". Сейчас на books.ru есть третье издание. Как справочник при реальном программировании ОЧЕНЬ полезен "Perl Cookbook (Сборник рецептов)". Ну и далее по вкусу. Есть еще "Advanced Perl Programming", "Perl:DBI", "Mastering Regular Expression", "Mastering Algorith With Perl" и еще множество других. В принципе, можно все основные книги найти в так называемом "The Perl CD Bookshelf".
    Ответ прислал Vladislav Shukov.
    Perl Библиотека программиста, OReilly, Т. Кристиансен и Н. Торкингстон, перевод с англ. Е. Матвеев. http://www.piter-press.ru/ http://www.top-kniga.ru/ Это где можно заказать ее. Также Вы можете найти там и др. книге и информацию.
    Ответ прислал No Name.
    Зачем тебе бумага? Учись по электронным книгам! иди http://www.roga.by.ru/perl.shtml там более 7 книг и пособий по перлу, как для чайников так и для профи.

  • 885. Есть изображение-картинка, с помощью карты разбита на зоны-ссылки. Как сделать так, чтобы при наведении мышки на зону-ссылку на картинку накладывалась другая картинка, например прямоугольник, обрисовывающий эту зону. Я так понимаю, что это делается на Java. Может, кто объяснит?
    Ответ прислал Aleksander Ovcharenko.
    На JavaScript так как ты описываешь сделать можно, но лучше порезать картинку на области и воспользоваться скриптом, меняющим рисунок при наведении миши. Можно и не резать, но тогда для каждой ссылки тебе придется менять весь большой рисунок, а следовательно все эти рисунки тебе нужно будет позакачивать - трафик не резиновый. Если не найдешь нигде скрипта, или не сможешь его прикрутить - пиши мне, помогу.
    Ответ прислал Pawel.
    Это можно сделать и на JavaScript. В ссылке надо обрабатывать события onmouseover="func(номер изменяемого куска)" и onvouseout="func1(...)".
    У картинки задат атрибут name="a".
    В этой функции менять картинку: document.images["a"].src='1.gif';
    и так соответственно для каждой ссылки по-разному.
    Ответ прислал wasilich.
    Вопрос не очень ясен, т.к. непонятно какая из себя картинка, как на ней размещены мапы и пр. Но в принципе, видимо всё укладывается в ролловер-имэдж.
    1. Нужно подготовить несколько картинок одинакового размера. В Дримвивере автоматически генерируется функция ролловер-имэдж, функцию ручками подправить, добавив функцию онМаусОвер, указав когда какую картинку показывать. Ну и всё в таком духе. Целиком скрипт писать лень, т.к. там ещё куча сопутствующих, типа - предварительной подгрузки всех картинок. Можете глянуть html по адресу: http://album.skamsk.ru , взяв его там, можете переточить его под свои нужды. Вам целиком он не подойдёт, т.к. картинка меняется в другом месте... Длинные строки - вынужденная мера: чтобы и ИЕ, и НН правильно всё понимали ;)
    2. Сделать картинку составной и ролловер, соответственно, составной, мозаичный. Снова в Дримвивер и точить, точить и ещё раз точить ;)

  • 886. Как программно, используя php (можно и perl) определить: зарезервирован ли определенный домен или нет?
    Ответ прислал Egor Shchegolkov.
    На Перле проверить существует ли запись в ДНС о интересующем доменном имени можно вот так:
    use Net::DNS;
    
    my $res = new Net::DNS::Resolver;
    my $q = $res->search("доменное имя");
    if($q) {
            #нашли
            foreach $r ($q->answer) {
                    print $r->address;      #печатаем все адреса
            }
    } else {
            #не нашли
    }
    Ответ прислал beale.
    Если у вас стоит линух то это делается очень просто ! Вводите адрес, на этот адрес делается пинг и если есть ответ то вам пишется что адрес занят и все !

  • 887. Есть картинка map.pdf размером 548 КБ. Как разместить ее на странице? Картинка - карта города. Я предполагаю разместить обзорную картинку и отдельными участками на которых должны читаться названия улиц. Сама картинка изначально векторная, при попытке растрирования Photoshop раздувает ее до немыслимых размеров и вешает компьютер, а уменьшая разрешение я теряю текстовую информацию. Есть ли другой способ?
    Ответ прислал Script.
    Киньте её мне, я вам её растрирую.
    Ответ прислал beale.
    Способы есть ! но не думаю что они вам понравятьс.
    1. Сделать карту на флеше, и еще по указателям ходить по карте.
    2. Разрезать картинку на кусочки например по 100х100 и сделать карту города, на которой будет имадж мап, все делается легко на сайте www.kemerovo.kuzbass.net такая идея реализована можешь посмотреть!
    Ответ прислал Pawel.
    Надо просто поставить на нее ссылку. Если у пользователя стоит Acrobat Reader, то он автоматически откроет этот файл в браузере. Однако, если его не стоит, то файл будет предложено скачать.
    Ответ прислал Kuznetsov Ivan.
    Я бы посоветовал тебе преобразовать ее в gif-формат и уменьшить (jpeg-формат может смазать текст). Либо другой путь, если нужен именно такой размер - преобразовать в gif и разбить его на куски. Тогда все будет грузиться быстрее.

  • 888. Как обновить (перезагрузить, Refresh)страницу при изменении файла на диске (на сервере)? Это работает во многих умных чатах. Где обновление не идет с постоянным интервалом времени.
    Ответ прислал Script.
    Никак! Если тока этот чат не реализован в виде программы или флеша, которые следит за обновлениями файла так, что вы этого не видите...
    Ответ прислал Kuznetsov Ivan.
    Дело в том, что там рефреш идет не в зависимости, изменилась страница или нет, а от того, какой период обновления выберет пользователь. А страничку генерит скрипт, который и вписывает нужный рефреш. А перегрузка вписывается либо через яваскрипт либо через <meta http-equiv="REFRESH" CONTENT="N; URL=/page.html"> где N - количество секунд, через которые происходит обновление.

  • 889. Что такое TYPE="text/css"?
    Ответ прислал Сысолетин Л.Б.
    http://htmlhelp.com/reference/css/
    Ответ прислал farkhad raxmetov.
    type="text/css" указывает на то, что в каком-то теге речь пойдет именно о CSS (стилевые таблицы), пример:
    <<link rel="StyleSheet" type="text/css" href="style.css">
    это означает, что в документ будет вставляться файл, но не простой (а золотой :-), а файл содержащий код CSS. такой пример и с JavaScript
    <script language="JScript" type="text/script"></script>

  • 890. Необходим скрипт, который бы при нажатии на картинку открывал окно куда её сохранить, ну типа того как: Правая кнопка мыши на рисунка, сохранить как. появляется окошко! вот нужен такой скриптик, который открывал бы такое окошко при нажатии на картинку.
    Ответ прислал spman.
    Могу только посоветовать - чтобы ссылка с картинкой указывала на архив с ней - ну чтобы не картинку сохранить а файл! ну вобщем так: <a href="pic.zip"><img src="pic.jpg"></a>> вот так.

  • 891. Есть код на HTML. Как в нем сделать вызов другого файла, но с инструкциями PHP3 и расширением *.php3
    Ответ прислал Namig Kouliyev.
    Iz chistogo HTML nelzya vizvat PHP fayl (voobshe nikakoy drugoy fayl). A iz PHP fayla <? include "filename.php";?>
    Ответ прислал Pawel.
    Можно вызывать по клику на ссылку или другим событиям JavaScript. Но при этом файл в любом случае буде перезагружен. Лучше сразу использовать файл с расширением php3.

  • 892. Как из одного файла с php3 вызвать другой (тоже php3), но находящийся физически на другом сайте. include('filename') с полным путем http://. выдает ошибку.
    Ответ прислал Egor Shchegolkov.
    Можно сделать вот так:
    $fd = fopen("http://drugoi.site.tam/script.php?param1=value1","r");
    if($fd) {
          while(!feof($fd)) {
                 echo fgets($fd,1024);
          }
          fclose($fd);
    }
    но это не включает скрипт, а просто шлет запрос на другой сайт и выводит ответ на этот запрос. А include и virtual, по-моему, могут работать только с локальными документами.
    Ответ прислал Aleksandr N. Balobanov.
    Попробуй сделать ему
    <?
    $f = file("http://.");
    for ($i = 0; $i echo $f[$i];
    ?>

  • 893. Как выполнить поиск в заданной строке. Например:
    <?
    $string = "qwertyuiop";
    $a = ?оператор? ($string, номер позиции в строке);
    if ($a == "искомый символ") exit;
    else { код }
    ?>
    Ответ прислал Aleksander Ovcharenko.
    Если речь идет о Перле, то в нем естьфункция: substr выражение, смещение, длина. Извлекает из выражения подстроку указанной длины и возвращает ее. Если смещение отрицательное, то отсчитывается с конца строки.
    Ответ прислал Pawel.
    Попробуйте функцию strstr. Она работает не совсем так, как у Вас написано, но ищет заданный фрагмент в строке и возвращает его позицию.

  • 894. Не могу найти никак откуда можно скачать БЕСПЛАТНО iPIX Builder 4.1!
    Ответ прислал Борис С.
    На сайте Лебедева www.design.ru в разделе "Новости" второй новостью идет "Студия в трехмерных пузырях". Там стоит ссылка на то, что тебе нужно - и плагин и вьювер.
    Ответ прислал Script.
    Вам дорога на www.ya.ru или http://www.filesearch.ru/

  • 895. Где можно зарегистрировать виртуальные домены второго уровня (или редиректы) типа www.yourname.org, www.yourname.su, www.yourname.mil и www.yourname.aq бесплатно? Службы namedemo.com, namezero.com, domainzero непробиваемы как танки.
    Ответ прислал Namig Kouliyev.
    Domeni ".mil", ".edu", ".gov" dayutsya tolko sootvetstvuyushim organizatsiyam. Domen ".su" bolshe ne vidayetsya. Vse drugie lyuboy chelovek mojet zaregistrirovat imeya dengi. A besplatno, poka chto tolko ".com", ".net", ".org", ".co.uk"
    Vot URL: www.emeisp.com. U vas do etogo doljna bit sushestvuyushiy sayt gde to. Oni ne stavyat nichego, vremya ne ogranicheno, no tolko posle vixoda iz sayta otkroetsya odno okno. Dumayu eto xoroshoe predlojeniye. Potom Vi daje mojete predlogat posetitelyam besplatniy E-mail na Vashem domene (S pomoshyu Everyone ili BigMailbox).
    Eshe neskolko takix xoroshix Veshey mojete nayti na sayte www.free-az.com.
    Ответ прислал Дмитрий.
    На www.takeinet.ru вроди бы еще регистрируют домены сайтов с посещением более 50-ти хостов
    Ответ прислал Kuznetsov Ivan.
    Попробуй www.domainvalet.com

  • 896. Есть ли смысл пользоваться компрессорами хтмл-файлов? Что Вы можете сказать о новой технологии компрессии веб-страниц Warp?
    Ответ прислал Max Host.
    Есть программы сжатия HTML за счёт удаления лишних пробелов, Enter, замены тэгов на более короткие (напр. тэг логической <EM> на визуальной <I> разметки. Сжатие 7-20 % в зависимости от исходного текста. Могу выслать.
    Ответ прислал Pawel.
    На мой взгляд в этом больше возни, чем пользы. Грамотно написанные страницы и жать-то особо не надо. А вот если делать в Word'е, то может и потребуется сжатие для быстрой загрузки...

  • 898. Через форму нужно отправить на сервер большой объем текстовой информации. Существует ли в Perl ограничение на размер данных отправляемых через <TEXTAREA>
    Ответ прислал Script.
    Нет, но таковые ограничения есть в протоколе передачи данных:
    Get - где-то около 16 кило...
    Post - ограничений нет!

  • 899. Необходимо создать таблицу. так чтобы бэкграунд 1 продолжался в 3(у меня есть градиентная полоса и она должна начинаться в 1 и заканчиваться в 3). 2 -изображение на прозрачной основе. Можно ли так сделать и если можно то как ?Может кто поможет.
    Ответ прислал Script.
    Нарисуйте чуть побольше и киньте мне... И потом, там графы - фиксированные?
    Ответ прислал al_var.
    Я использую для этого следующее:
    1. создаю в фотошопе картинку с градиентом размером (сколько_надо)Х(1_пиксел)
    2. режу на две части
    3. таблицу по высоте фиксирую
    4. в 1 зоне - верхняя часть, во 3 зоне - нижняя
    Ответ прислал Aleksey Kirpichnikow.
    Вариант 1. Поместить твою таблицу в другую таблицу, в которой и сделать бэкграундом твой градиент (хотя лучше, не бэкграунд, а просто картинку, в целях совместимости c NN и др.) Вариант 2. Разрезать градиент на части, например в Adobe ImageReady.

  • 900. Для своего сайта я меняю заглавную страничку. Для этого я бы хотел, чтобы фон состоял из двух цветов, плавно переходящих друг в друга. Причем сливались они на диагональной черте. Получилось бы очень красиво, я думаю, два уголка разного цвета с плавной границей. Как мне это сделать?
    Ответ прислал Script.
    Это называется градиент, если страница с фиксированным размером (вертикальный/горизонтальный), то киньте её размеры и два цвета - сделаю.
    Ответ прислал Semyon Vyskubov (Poizon).
    Вообще это делается фотошопом. Какие цвета-то (пиши на poizon@ipoizon.com)

  • 901. Есть ли такой скрипт, который бы после того, как сайт посетили 10 человек, отправлял бы на почту письмо об этом и так каждый раз?
    Ответ прислал Панков В.
    На perl:
    #!/usr/bin/perl
    $num=10;  # Число заходов
    $file='file.txt'; # Имя файла для записи
    $sendmail='';  # Путь к sendmail
    $text='';  # Текст для отправки
    $to='';   # Кому отправлять (вместо @ напиши \@)
    $subj='';  # Тема письма
    open F,$file || die "Невозможно открыть файл $file: $!";
    flock F,2;
    $number=<F>;
    close F;
    $number++;
    if($number>=$num)
    {
    open M,"|$sendmail -t" ||  die "Невозможно открыть sendmail: $!";
    print M "To: $to\nSubject: $subj\n\n$text";
    close M;
    $number=0;
    }
    open F,">$file" || die "Невозможно открыть файл $file: $!";
    print F $number;
    close F;
    print "Content-type: text/html\n\n ";
    Вызывай через SSI, например как <!--#include virtual="/cgi-bin/10.pl"-->.
    Ответ прислал Aleksey Kirpichnikow.
    Да, есть называется Mail-log http://www.all-yours.net/scripts/
    Ответ прислал .
    На PHP можно сделать так:
    <?PHP
    if(!isset($visit_count)) {
            $visit_count = 0;
            if(is_file("counter.dat")) {
                    $fd = fopen("counter.dat","r");
                    $visit_count = fgets($fd,512);
                    fclose($fd);
            }
            $visit_count++;
            $fd = fopen("counter.dat","w");
            fputs($fd,$visit_count);
            fclose($fd);
            if($visit_count % 10 == 0) {
                    mail("kuda-slat'@mail.gde.to","Десятый посетитель","Число посещений:
    $visit_counter");
            }
            setcookie("visit_counter",$visit_counter,time()+7200);
    }
    ?>
    <html>
     ... <!-- далее обычный документ -->
    </html>


  • 902. При разработке скрипта на Perl-е я тестировал его в PerlBuilder и проверял работу локально на установленном WEB-сервере (не Apach). На домашней машинке все работает великолепно. Когда же я все выгружаю на сервер у провайдера, то скрипт выдает ошибку 500 и ничего не работает.При этом я все делаю вроде верно: файл сохраняю в UNIX-овском формате и перекачиваю как программу, и права доступа выставляю - 755. Может дело все в том, что у про- вайдера стоит Apach, а у меня нет. Подскажите подалуйста что де- лать в такой ситуации.
    Ответ прислал Script.
    Аппач - не аппач - всё равно, у вас разные версии Перла, вот в чём дело..
    Ответ прислал Панков В.
    Посмотри лог и проверь, нет ли в файле виндовских концов строк.
    Ответ прислал Dioxis.
    Проверь первую строчку #!/usr/bin/perl или #!/usr/local/bin/perl - подправь под сервер... проверь права доступа на скрипты - 755, а на txt - 777 И еще... если у тя используется полный путь к скрипту измени его под сервак... вот вроде и все :)
    Ответ прислал Aleksey Kirpichnikow.
    Огромное количество возможных ошибок. У тебя написано: "Перекачиваю как программу", я надеюсь это в ASC-II или текстовом режиме.
    Например первая строка скрипта: #!/usr/bin/perl
    Пути к файлам соответственно юниксовые (/web/public-html/ и т.д.)
    Если есть доступ к сайту по Telnet-у зайди и запусти скрипт, а потом посмотри, что напишет Perl.
    В конце концов пришли скрипт, посмотрим
    Ответ прислал Alex.
    Ответ лежит в лог-файле апача. Можно попросить провайдера заглянуть туда и подсказать.
    Ответ прислал Kuznetsov Ivan.
    Выход прост. Тебе все нужно перекачивать в ASCII-режиме. А твой менеджер настроен за закачку файлов в бинарном режиме. Из-за различий в системах символ "перевод каретки" в Unix-системе воспринимается неправильно и сервер выдает ошибку. Загружай скрипты в ASCII-mode и проблем не будет

  • 903. В чем различие между двумя инструкциями :
    <!-- #exec="cgi-bin/view.pl" --> и
    <!-- #include virtual="cgi-bin/view.pl" -->
    Меня интересует то, какой эффект для странички вызывает каждый варинт и какой удобнее использовать.
    Ответ прислал Script.
    Ничем, хотя всё зависит от настроек сервера! В идеале:
    exec - запускает скрипт, но не вставляет его ответ
    Include - запускает скрипт и вставляет его результат на страницу
    Ответ прислал Egor Shchegolkov.
    #exec cgi="..." выполняет cgi-скрипт с PATH_INFO и QUERY_STRING оригинального запроса, то есть если документ вызвался так:
    index.shtml?text=abcdef
    то в вызываемом скрипте переменная окружения QUERY_STRING будет содержать text=abcdef
    Задать query_string как часть url'a(<!-- #exec cgi="script.pl?text=fedcba" -->) нельзя. Но зато в вызываемом сценарии доступны переменные, определенные с помощью <!-- #set var=".." value="..." -->
    #include virtual="..." позволяет включать произвольный документ, и в пути можно задавать строку запроса:
    <!-- #include virtual="/cgi-bin/script.pl?text=123" -->

  • 904. Объясните ламеру, который ужасно хочет изучить WEB-программирование, с чего начать. HTML выучил вроде неплохо, сейчас хочу переходить на более высокий уровень - JavaScript или Perl. Хочу узнать ваше мнение о том, с какого из этих языков было бы правильнее продолжить свое обучение. Только не надо умничать и отвечать типа "учи все, что можно" (рад бы - да времени нет). Я понимаю, что это разные вещи и нужны для разных вещей, но все-таки с чего лучше начать совершенствовать свою страничку?
    Ответ прислал Евгений Панаско.
    Дорогой коллега, как вы правильно отметили учить прийдется все. Но все таки начать желательно с JavaScript. Он и попроще и быстрей можна добится "видимых" результатов (Эфектов на на странице при просмотре ее в броузере, для этого он в основном и применяется). Его синтаксис похож на С, Java ну и на Pascal если с НАТЯЖКОЙ. То есть на языки которые ты вероятно знаешь. Его можно также использовать и для написания серверных скриптов если использовать это дело в IIS совмесно с технологией ASP.
    Ну а Perl - это штука для людей которые не ищут простых путей в своей жизни. Не похож ни на одно творение человека в даной области. Некоторые вещи там можно производить довольно нестандартным способом. Но это пока единственный язык програмирования который одинаково хорошо работает на различных платформах (UNIX, LINUX, win) под управлением различных серверов. Выполняется только на сервере - генерирует HTML страницу, естественно может принимать параметры и производить на свет различные их образы. Имеет доступ к БД (MySQL, и др)
    Ответ прислал Владимир.
    Во-первых если ты ещё учишься, то называй себя 'чайником', 'ламер' это несколько другое. Ну а по вопросу могу сказать, что я, например, изучал JavaScript параллельно с ХТМЛ и не представляю вообще, как без него обойтись, чтобы всё было динамично и симпатично.
    Ответ прислал No Name.
    Учи PERL ОБЯЗАТЕЛЬНО, на нем строиться весь веб!!! Далее НАЧНИ изучать FLASH - очень перспективная технология, а по поводу Java - это очередная головная боль:-(.
    Инфу по Perl'y найдешь здесь - http://www.roga.by.ru/perl.shtml а по Flash здесь - http://www.roga.by.ru/flash.shtml

  • 905. Как можно перенести информацию из таблицы на одном сервере MySQL (на локальном компьютере) на другой (тот, который у hosting-провайдера)? Может можно как-то сохранить её в файл а потом этот файл переправить на сервер провайдера?
    Ответ прислал Панков В.
    Посмотри прогу mysqldump. Поставляется вместе с MySQL.
    Ответ прислал Alexey V. Radchenkov.
    Запиши всю информация в текстовый файл с разделителями, типа
    поле1::поле2::поле3 ...
    потом читай из него информацию и запихивай в любую базу Если надо подробней пиши
    Ответ прислал Andrew Kozin.
    Если на обоих серверах установлен РНР, то это предельно просто. Существует замечательная тула PHPMyAdmin. Она стоит у моего хост-провайдера (у многих, кстати, сейчас стоит). Я ее нашел по адресу: http://www.phpwizard.net/ Устанавливается она предельно просто. Позволяет (кроме всего прочего) снимать дамп базы данных - формирует набор предложений insert. Если на хосте нет php, то нужны дополнительные сведения.

  • 906. Есть страница, на которой при наезде и при клике на кнопки-картинки запускаются коротенькие звуковые файлы. А как можно по желанию посетителя отключить (локально, только звуки, генерируемые на данной странице, т.е прослушивать музыку, к примеру можно) выполнение запуска звуковых файлов? Например при клике на некоторой кнопке.
    Ответ прислал Aleksander Ovcharenko.
    Заведи себе глобальную переменную, например no_play_sound с 0 по умолчанию, и кликом на соответсствующей картинке вызывай скрипт, который будет менять ее значение на 1. А потом в функции, которая проигрывает звук проверяй значение этой переменной и играй только в случае, если она равна 0.

  • 907. Где можно скачать программу типа gifdesigner, а то у меня на ней истек срок бесплатного использования, а денег у меня нет, чтобы за неё заплатить. Когда я делая баннер на нем выскакивает надпись - эта программа не зарегистрирована. В результате чего вес баннер получается испорченным.
    Ответ прислал Denis.
    Я для этих целей использую Microsoft Gif Animator, а скачать его можно на Freeware.Ru
    Ответ прислал Script.
    astalavista.box.sk - ваш друг.
    Ответ прислал Андрей Степанов.
    Можешь взять Ulead GifAnimator 4 с сайта http://fosi.ural.net Он там типа "свободно" лежит. Делает и баннеры и анимашки.

  • 908. Подскажите с правами файлов на сервере. Есть простая задача. лежит файл себе на веб-сервере. нужно, чтобы PHP-скрипт мог свободно им пользоваться - читать, записывать и т.д. но также нужно, чтобы юзер не мог открыть этот файл через http:// (403 forbidden) или типа того. подскажите.
    и еще желательа ссылочка, где можно почитать, что каждая цифра в правах значит.
    Ответ прислал Pawel.
    Посмотрите подробное описание по адресу http://www.lgg.ru/help/guide-scripts.shtml
    Ответ прислал Alex.
    Сложность в том, что апач, запускающий скрипт, имеет права nobody, и все процессы запущенные им, теже, т.е. никаких. Права на файл должны быть 666, но открыть его через http невозможно (если конечно не положить его в каталог htdogs :-), в cgi-bin его прочитать невозможно ), для этого он должен быть запускаемый (7). Но по ftp... зависит от настройки сервера. Много нюансов, в письме не опишешь. Есть еще одна хитрость - имя файла начинается с точки.
    Насчет цыфр 1-запускаемый, 2-запись, 4-чтение, их сумма дает комбинации 6-запись и чтение, ..., 7 - все. 760 - первая цифра права владельца (в примере все - 7), вторая - права группы (чтение и запись - 6), третья - права для всех остальных (никаких - 0). Подробности в манах(англ) или www.citforum.ru(рус).
    Ответ прислал Aleksander Ovcharenko.
    Web-сервер не выдает наружу (по запросу по http) файлы, начинающиеся с .ht
    При этом локальный скрипт их читать сможет. И помимо цифр при задании прав учти, что есть еще понятия владельца файла и группы владельцев.

  • 909. Kak ya mogu otmenit' pravuyu knopku mishki na flash objektax?
    Ответ прислал Вольнов ИгореК.
    В грудь себя бить не буду, но полностью отключить ее по-моему нельзя! Возможно лишь сократить меню, выдаваемое при нажатии правой кнопки! Все это делается в File-Publish settings-HTML-Display menu!! убери галочку и вроде станет легче!

  • 910. Представьте себе следующую ситуацию: некий плохой человек заходит на сайт и заполняет Гостевую книгу гадостями и всякой ерундой.Его IP-адрес можно найти в статистике. Можно ли закрыть доступ на сайт этому человеку каким-нибудь скриптом? При этом надо учитывать,что так как он сидит под одним провайдером,то IP у него динамический и находиться в некотором диапазоне,для которого и нужно закрыть доступ к сайту.
    Ответ прислал Egor Shchegolkov.
    Закрыть то можно, вот только услугами этого же провайдера пользуются и другие люди, которые на смогут дописаться в гостевую книгу, потому что их диапазон адресов был забанен из-за какого-то отморозка...
    А так, если гостевая книга на Perl'e, то перед записью сообщений добавь проверку ИП-адреса пользователя:
    
    my $banned_ips = ('207.46.230.229','207.46.131.199','207.46.230.218');
    for($banned_ips) {
            if($_ eq $ENV{REMOTE_ADDR} {
                    #перенаправляем на другой сайт
                    print "Location: http://drugoe.mesto.com\n\n";
                    exit;
            }
    }
    ... далее производим запись в гостевую книгу ...
    Вот только эта защита малоэффективна, так как человек может воспользоваться услугами анонимных проксисерверов, а их все не забаннишь...
    Ответ прислал Pawel.
    Так это и другим людям закрыть доступ можно. А вообще надо прописать в файле .htaccess строку
    deny from IP
    и положить этот файл в каталог, где гостевая книга.
    Ответ прислал beale.
    Сделать можно, но вы же просто закроете доступ всем людям которые захотят зайти к вам на сайт в этом диапозоне !! Не проще гостевую доделать чтобы в неё нельзя было теги вставлять ? а если скрипт, то вот его алгоритм:
    1. на первой странице если у вас есть перл значит естьи SSI на первой старнице вставляете <!--#exec cgi="/cgi-bin/ip.pl"-->
    в счкрипте проверяется ип посетителя на ип которые находяться в черном списке. если его нет то ничего не происходит а если есть то выводиться надпись: "Портить гостевые нехорошо, если вы все же хотите попасть на сайт напишите об этом администратору ресурса: мы@ло" И пересылка на сайт откуда он пришел, то есть HTTP_REF Если надо то могу написать !
    Ответ прислал Namig Kouliyev.
    Vo pervix, kak mojno uznat etot diapazon dlya dannogo provaydera? Ved sushestvuyet provayder (AOL, naprimer) u kotorogo etot diapazon vklyuchayet min. 65536 IP adresov, i sushestvuyet takoy u kotorogo tolko 32 (mojet i menshe, no ya pro tex kotorix znayu).
    Vo vtorix, dopustim ya i on ispolzuyem uslugi odnogo i togo je provaydera. Togda v chem je moya vina? Poetomu ya ne rekomenduyu etot sposob. Mojno ispolzovat drugie sposobi. Naprimer, mojno ispolzovat Cookies, no konechno on mojet eto zapretit. A eshe mojno ispolzovat vot chto: V odnom iz servisov dlya otpravki SMS (korotkoe soobsheniye na mobilnik) ya videl ochen interesnuyu vesh. Oni ne dopuskayut v tekste nekotorie slova (etot spisok lejit u nix na sayte. Kstati, ya vovse ne xotel komu to poslat SMS ottuda. Nashel sluchayno). Mojete ispolzovat etot sposob.
    Ответ прислал Aleksey Kirpichnikow.
    А попробуй использовать Cookies, т.к. IP назначается в общем то случайно. Хотя для IP переменная $ENV{REMOTE_ADDR}.

  • Топ-ответ.
    (за прошедший # 12 выпуск).
    Панков В.
    Namig Kouliyev
    Alexander Ovcharenko
    Script
    Гвозденко А.В.
    Kuznetsov Ivan
    Наметился небольшой прогресс в сторону увеличения писем:-), пришло 5 писем.
    Если Вам помог определенный ответ, то не поленитесь, напишите письмо в теле которого напишите Имя и e-mail лучшего на Ваш взгляд автора ответа ( это займет у Вас не более 10 секунд:).


      Вы хотите публиковаться?
      Присылайте статьи или вопрос (по публикации) по адресу kar_dd@inbox.ru с пометкой "Статьи в рассылку". Гонорар за статьи - договорной (500-2000 показов RLE).


    Ведущий рассылки Дмитрий Давыденко



    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Поиск

    В избранное