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

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

  Все выпуски  

Веб-дизайн. Вопросы и ответы. # 54.2 (65)


Служба Рассылок Subscribe.Ru

WEB-дизайн. Вопросы и ответы.
# 54.2 (65)
24 октября 2001г.
Проект сайта "AGS Design" http://dweb.ru
кол-во подписчиков - 15300

    В этом выпуске:

  Ссылки Вебмастеру:

  • Web-дизайн, архив рассылок
  • Анимация и графика
  • Иконки и кнопки
  • Flash и Photoshop
  • Фоновые изображения
  • Баннеры & Фото
  • Скрипты (CGI,JS,Applet)
  • 3D анимация

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

    Задать вопрос можно на сайте http://dweb.ru, вписываете свой вопрос в форму для Обратной связи (правая колонка) и отсылаете. Вопрос публикуется уже в ближайшей рассылке. Описывайте свою проблему как можно подробнее.

    Вопрос публикуется только один раз (из-за ограничения размера выпуска и огромного кол-ва вопросов)
    Вопросы не относящиеся к тематике рассылки, публиковаться НЕ БУДУТ.
    Маленькая просьба. Если Вы пишете автору ответа, чтобы он уточнил какие-либо детали, то цитируйте в письме вопрос и ответ полностью.



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


  • 2125. Имеется ли какой-нибудь более-менее простой способ для организации отсылки файла с локального компа посетителя на сервер (и дальше - по почте) из формы в окне браузера?
    Ответ прислал Pasha.
    Конечно имеется. Но Вам придётся воспользоваться каким-либо языком программирования серверных скриптов. Вот например в документации по PHP приводится следцющий промер: Форма для отсылки:
    <FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
    Send this file: <INPUT NAME="userfile" TYPE="file">
    <INPUT TYPE="submit" VALUE="Send File">
    </FORM>
    Вместо _URL_ надо, естественно написать имя скрипта,Который будет файл принимать.
    MAX_FILE_SIZE - специально зарезервированное в PHP для таких случаев имя, применяется для указания максимального размера принимаемого файла.
    После того как файл будет принят его надо прочитать и затем отослать по почте. Все функции для этого необходимые в PHP имеются, а в доке даны примеры работы с ними.
    Ответ прислал Max Mad.
    Способ реализации такого на PHP смотри тут: http://exper.ural.ru/0056.phtml , а вообще вариантов несколько.
    Ответ прислал Евгений Салагаев.
    На форме ставится <input type=file ...> (вроде file). А потом скрипт ловит всё это и извращается как угодно. Пример был на www.webscripts.ru.

  • 2126. Как сделать чтобы можно было положить текст поверх Flash Пробовал два слоя, на первый Flash, на второй текст, но флэш перекрывает слой текста.
    Ответ прислал Max Mad.
    1.Flash на странице + слой
    2.Слой с флешем имеет z-index меньший, чем другой слой.

  • 2127. Хочу с помощью PHP создать из маленького изображения большое, или, наоборот, из большого сделать thumbnail (его уменьшенную копию), так вот, в любом случае, у меня возникает следующая проблема: Fatal error: Call to undefined function: imagecreatefromgif() Стоит PHP 4.05, и название функции ImageCreateFromGIF я взяла из мануала.
    Ответ прислал Dozent.
    У вас не подключен модуль, отвечающий за работу с графикой. Он называется GD. подключается так:
    Ищите на всех дисках php.ini Если нет копируете php.ini-dist из папки куда инсталлировали php в папку с:\windows\ (для 9x) и c:\winnt\system\ (nt4/2000)/ Переименовываете его в php.ini. Ищите строчку
    ;extension=php_gd.dll
    и убираете ; в начале
    Также для надежности ищем
    extension_dir= ...
    И пишем после = полные путь к папке с php_gd.dll и другими модулями.
    Например d:/usr/local/php4/extensions/
    (обратите внимание на слеши)
    Вообще в последних версиях этого модуля функции для работы с гифом убрали:(
    Вроде обещали вернуть но у меня php 4.0.6 и там гиф не поддерживается. Тем более, главное ни какой php у тебя, а главное какой у твоего хостера.
    Если будут вопросы пиши dozent@farkas.dtn.ru
    Ответ прислал subscribe.
    все функции по работе с изображениями содержаться в библиотеке GD. С версией ПХП 4.05 поставляется библиотека в которой отсутствует возможность работы с форматом gif.
    В этом и есть, по моему скромному мнению, причина твоих ошибок.
    зы: у разработчиков библиотеки по моему возникла проблема с лицензированием работы с этим форматом...
    что бы убедится , попробуй получить информацию о ПХП функцией:
    phpinfo();
    и узнай какая версия GD установленна, если она вообще установлена.
    Ответ прислал Andrejs Naumovs.
    Попробуй <? phpinfo() ?>. Там должно стоять в секции "gd" что-то вроде:
    GD Support enabled
    GD Version 1.6.2 or higher
    FreeType Support enabled
    FreeType Linkage with TTF library
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    Если этого нет, то надо подредактировать "php.ini", если стоит Windows (посмотреть загружается ли в WIN*/php.ini модуль "extension=php_gd.dll") или собрать PHP по новой в *nix.
    А скорее всего стоит новая "gd" библиотека из которой исключена поддержка GIF, рекомендуется работать с форматом PNG.

  • 2128. У меня есть б.д. на сервере,(данные в нее заносятся с помощью web-формы) Каким образом можно сделать копию этой б.д. к себе на диск?
    Ответ прислал THE UnForGiven.
    Просто скопировать из каталога данных каталог базы. в mysql каталог данных лежит в url/local/mysql/data в нем в виде папок находятся базы данных.

  • 2129. Нужно сделать что-то типа механизма аттачмента в free mail системах. Т.е. необходимо аплоадить файл с клиентского компа на сервер. Причем все сделать на ASP. Вроде в форме делается через input type="file", но как его разобрать на стороне сервера посредством asp?
    Ответ прислал Aleksandrov Dmitry.
    1. Идёшь на сайт, где лежат ASP компоненты
    2. Берёшь халявный аплоадер
    3. Регистируешь его на серваке
    4. Используешь.
    По другому-никак.

  • 2131. Почему когда я закачую HTML файлы на ftp в режиме Auto ASCII Mode то их размер не совпадает с размером у меня на диске? А в режиме Bynary MODE совпадает? И как с этим бороться?
    Ответ прислал Alexey N. Vinogradov.
    В режиме Ascii mode клиент и сервер автоматически корректируют принятые у них методы переноса строки. Если в Windows это последовательность (возврат каретки + перенос строки), то в Unix это уже только , делать возврат каретки там не нужно. В Mac в то же время, наоборот, конец строки обозначается одним символом . Когда вы копируете файл в режиме Ascii вы тем самым подразумеваете, что копируете именно текст, а потому сервер знает, что может проделывать с ним подобные преобразования на лету, без ущерба для содержимого. Более того, такие преобразования проводить не только можно, но и нужно. Представляете, если вы закачиваете в режиме Binary (т.е. без изменений) файл с Mac на сервер под Unix, а потом пытаетесь каким-нибудь скриптом работать со строками из этого файла? Скрипт сойдёт с ума, пытаясь локализовать для себя строку в таком файле, пользуясь своими понятиями о том, каким должен быть символ конца строки! Естественно, если вы копируете таким образом двоичный файл, то в нём происходит аналогичная замена, что, естественно, приводит к непредсказуемым результатам, и, в любом случае, портит его. Бороться с этим не надо. Надо просто знать, что *.HTML файлы необходимо ВСЕГДА закачивать в режиме Ascii, а все остальные - *.zip, *.exe, *,rar и иже с ними - в режиме Binary

  • 2132. Есть табличка n столбиков и м строк, где ячейки заполнены отдельными рисунками, кот. являются ссылками. Т.е. 20 столбиков и 18 строчек = 360 ссылок (на самом деле их меньше, но все равно много). Как реализовать несколько другую идею: та же таблица, но в начале столбцов и строчек стоят флажки, т.е. выделяется только один столбик и только одна строка (т.е. в пересечении на необходимой ячейке), нажимается кнопка перехода( которая должна находиться скажем ниже самой таблицы) и собств. сам переход по соответсвующей ссылке. Интересен сам исходник 2х3 (скажем), далее сам доделаю.
    Ответ прислал Евгений Салагаев.
    Сделал. Места в рассылке относительно мало, поэтому пиши.

  • 2133. Как на страничке задать последовательность загрузки рисунков? Не используя "прелоад" и не переделывая таблицу(что принципиально)?
    Ответ прислал Алексей Лысов.
    По-моему, такое невозможно. Или малоэффективно.
    Ответ прислал Sergey Volobuev.
    Картинки начинают грузиться в порядке расположения ссылок на них в хтмл-документе и заканчивают в зависимости от размера и др. факторов. Лучше не занимайся фигней, а переделай дизайн чтобы он не зависел от порядка загрузки картинок.

  • 2135. Сейчас как правило создается страничка весьма скурпулезным способом, т.е. учитывается все размер каждого отдельного объекта, рисунка, ... , учитывается порядок загрузки этих объектов, что должно положительно влиять на повышения скорости загрузки страниц, их привлекательности , и т.д. и т.п. А если появится Интернет-2 с намного большими скоростями, неужто все вышесказанное перейдет на второй план, Страницы будут перегружаться подчастую ненужным: как-то рекламой, громоздкой и неудобной навигацией и т.п., элементами для сбора статистики или еще чем-то новым и малополезным? Вы над этим не задумывались, это никого не пугает?
    Ответ прислал RusH.
    Знаешь. Если появиться как Ты выражаешься Internet2, то будет только лучше. Хорошие дизайнеры, обладающие хорошим вкусом и умеющие рисовать смогут полностью воплтить свои идеи, а не лавировать между весом и красотой сайта.
    Ответ прислал Алексей Лысов.
    Хороший вопрос, - но в ближайшее время(лет 5-7) мало что изменится. Вообще-то это радовать должно - если такое случится. Но - к сожалению нам это не грозит.

  • 2136. Несколько раз задавался этот вопрос, но так и не был дан дельный ответ, хотя это пригодилось бы многим начинающим сайтостроителям. Нигде не могу найти скрипт обратной формы, где посетители могли бы отправить мне вложенный файл, например свое фото?
    Ответ прислал Hatebreeder.
    Перл:
    use CGI qw(:standard);
    open FILE, ">путь к файлу";
    binmode FILE;
    $file = param('file');
    while (<$file>) { print FILE $_; }
    close FILE;
    Ответ прислал Pasha.
    см. мой ответ на вопрос 2125.
    Ответ прислал Евгений Салагаев.
    www.webscripts.ru, www.hotscripts.com. Если не найдёшь - чиркни письмецо - напишем.

  • 2138. Мы с моим знакомым находимся у одного прова. Он как-то узнал мои ip, и сказал что есть на моем компе. Как он это узнал, как мне защититься? И как проделать с ним такое же?
    Ответ прислал Webmaster.
    Значит так, тут 2 варианта
    1-й и самый реальный, у тебя висит троян (троянский конь, вирус троянец). Это плохо. Защититься можно 2- мя способами, первый, что естесственно постараться найти троян антивирусом. 2-й поставить программу- firewall. Она следит за портами и справшивает какой программе можно открывать их, а какой нет. Соответсвенно если она говорить тебе, что в инет пытается пробиться прога незнакомая тебе ты перекрываешь ей порт и троянец (если это был он) не может отослать никакой информации. Я лично использую ZoneAlarm, можно @Guard.
    Второй вариант это то, что у тебя стоит сервер удаленного доступа без паролей на диски. Твой друг просканил твоего провайдера и нашел твой комп, по имени. Дальше он просто залез к тебе и посмотрел все что хотел. От этого можно защититься закрыв диски паролем, и опятьже поставив firewall, т.к. он пресекает не только изнутри но и снаружи. А как тебе сделать другу тоже самое это уже ищи в сети, благо там такой информации навалом.
    Ответ прислал THE UnForGiven.
    Посмотри у себя в свойствах сетевого окружения, стоят ли там галочки "папки и принтеры этого пк можно сделать общими". убери галочки. посмотри, также, чтобы твой винт небыл расшарен. как узнали твой айпи? ты явно с ним общался по аське или типа того. там айпи по уину узнается несложно. чтобы тебе с ним подобное проделать, нужна прога вроде essential net tools. использует, по-моему, протокол netbios. находит расшаренные ресурсы и все тебе показывает. еще есть подобная прога, получше, но вот точно непомню, как называется, возможно, sequrity scaner. а вообще, поставь себе фаервол (atguard или zonealarm). чтоб тебе было видно, кто когда и откуда к тебе залазит. и разрешать ли ему залезть, или нет.

  • 2139. Можно ли как-то одновременно работать с двумя базами данных (не таблицами) в Perl+MySQL. Если можно, то приведите, пожалуйста, примеры.
    Ответ прислал THE UnForGiven.
    Сначала мы даем команду use database, чтобы определить базу, с которой собираемся работать. но по идее этого можно и не делать. есть такая штука. допустим, у нас 2 таблицы - tab1 и tab2. в них несколько столбцов, и 1 из них имеют у обоих таблиц одинаковое название, пусть col. можно сделать так:
    select tab1.col from tab1 where tab1.col='something'
    здесь мы указали в предложении where, что выбирать нам нужно данных из столбца col из таблицы с названием tab1. я думаю (но не проверял), что то же самое можно сделать и на уровне базы:
    select database.tab1.col from database.tab1 where database.tab1.col='something'

  • 2140. Что можно сделать, чтобы сделать резервную копию базы данных MySQL на удаленный компьютер. Сервер удаленный, то есть у меня есть только аккаунт и нет прав на администрирование сервера MySQL. На сервер могу установить PHP или Perl.
    Ответ прислал THE UnForGiven.
    Можно попробовать импортировать базу. для этого нужно считать все с каждой таблицы. напр.:
    create table tab2 select * from tab1
    здесь создается таблица tab2, являясь точной копией таблицы tab1.

  • 2141. Как создать новое окно в IE без надписи Microsoft Internet Explorer в заголовке или совсем без строки заголовка? Только не говорите, что нельзя - сам видел такие!
    Ответ прислал Ineon.
    Попробуй так: <title>Заголовок и куча &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>
    Ответ прислал Wizard.
    Первый способ.
    Новое окно открывается при клике по ссылке. Удобный способ для открытия картинок разного размера.
    <script language="JavaScript"><!--
    // вместо строки свойств окна передаем в функцию числовые значения
    // ширины и высоты окна; строку свойств сформируем внутри функции
    function opWinWize(theURL,winName,wid,hei) {
    // здесь формируем обещанную строку
    var ftrs = 'width='+wid+',height='+hei;
    // а дальше открываем новое окно, как и раньше
    window.open(theURL,winName,ftrs);
    }
    // --></script>
    <a href="#" onClick="opWinWize('picture.jpg','lalaWin',300,400);"> Picture1</a>
    Второй способ.
    Окно открывается при открытии страницы. Всегда остается поверх страницы. Удобна для создания выносных меню.
    <script language="Javascript">
    md=showModelessDialog('твоя.html','','\ dialogLeft='+(screenLeft+10)+'px;\
    dialogTop='+(screenTop+100)+'px;\
    dialogWidth=150px;dialogHeight=500px;help=no;status=no;resizable=no;scroll=no;')
    </script>

  • 2142. Как с помощью Perl и Php осуществить редирект?
    Ответ прислал Hatebreeder.
    use CGI qw(:standard);
    $query = new CGI;
    print $query -> redirect('http://www.blik.org.by/funtiki/');
    Ответ прислал THE UnForGiven.
    На php:
    header("location: http://.");
    exit() exit - обязательно.

  • 2143. Понадобилось мне, чтобы когда юзер заходит на страничку, скриптом окно расширяло на весь экран. Но проблема в том, что страница - фреймовая (потому и понадобилось) ! Как на ЯВЕ написать?
    Ответ прислал Rainman.
    Есть. Пиши. Вышлю.


  • 2144. Как сделать так, чтобы скрипт запускался на сервере в определенное время без участия АДМИНА.
    Ответ прислал Alexey V. Radchenkov.
    Почитай man crontab - поможет.
    Ответ прислал THE UnForGiven.
    Для этого админы и придумали cron, чтобы себе же жизнь облегчить:) Это юникс-утилита, в ней указывается, когда и что запускать.

  • 2145. Как можно запустить скрипт из HTML с отправкой параметров методом POST. На странице есть несколько ссылок и в форме куча параметров, необходимо в зависимости от нажатой ссылки(можно кнопки) передавать параметры. Метод POST - потому что предаются пароли и есть многострочные поля по 64 кБайт.
    Ответ прислал Камаев Вячеслав.
    Я не понял в зависимости от ссылки варьируются параметры или название страницы для передачи? если второе, то попробуй так <form>
    <a href="" onClick = "document.forms[0].action = 'A1'; submit();">.......</a>
    <a href="" onClick = "document.forms[0].action = 'A2'; submit();">.......</a>
    <a href="" onClick = "document.forms[0].action = 'A3'; submit();">.......</a>
    ...
    </form>
    Ответ прислал Евгений Салагаев.
    <form method="post" ...> и все дела.

  • 2146. Как мне сделать Форму Drop-Down Box, чтобы при выборе пункта, посетитель попадал на выбранную страницу? Типа МЕНЮ.
    Ответ прислал Евгений Салагаев.
    Используя стандартный select так:
    <select onchange="location.href=this.options[this.selectedIndex]">
    <option value="www.site1.ru">www.site1.ru
    <
  • 2147. Есть два слоя - один таблица, другой рисунок. Можно ли сделать так, чтобы рисунок привязывался координатами к таблице, а не к верхнему левому углу окна? Например к тому же углу таблицы). Либо как занести в переменную количество пикселов (<Ширина экрана>-600)/2 и потом использовать эту переменную в стиле слоя?
    Ответ смотрите в 2168.


  • 2148. Можно ли при помощи JS собктия (конкретно MouseOver) связать со звуковыми файлами, т.е. что бы в ответ на событие MouseOver воспроизводился звуковой (вав) файл.
    Ответ прислал Andrejs Naumovs.
    Вариантов много. Самый простой(или нет?):
    1. На страницу добавляешь фрейм размером в 0pix
    2. Пишешь файлики, где примерно будет следующее:
    <!-- Microsoft: -->
    <bgsound src="mySound.wav" loop=1>
    </head><body>
    <!-- Netscape: -->
    <embed src="mySound.wav" autostart=true loop=1 hidden=true height=0 width=0>
    3. Теперь по какому нибудь событию, (пере)загружаешь эти файлики во фрейм.
    (parent.*.location.href = url). * - имя фрейма, url - например mySound.html Надеюсь понятно. Если нет, то дам ссылочку, где это всё работает.
    Ответ прислал Wizard.
    В голову вставляешь скриптик.
    <script language=JavaScript><!--
    // проверка браузера для будущего развития на Навигатор
    iex = (document.all); // true if IE ver. 4 or later
    nav = (document.layers); // true if Navigator ver. 4 or later
    // эта функция устанавливает имя музыкального файла
    // вызывается по событию onMouseOver на ссылках
    function playMe(nam) {
    if (iex) document.all.music.src=nam;
    }

    // --></script>
    в тело вставляешь это.
    <bgsound src="#" id=music loop=1 autostart="true">
    Ссылку оформляешь примерно так:
    <a href="#" onMouseOver="playMe('звук.wav');">Ссылка</a>

  • 2150. Кто может помочь в написании скрипта на подобии того который стоит на www.f-abrika.ru т.е. чтобы пользователь мог добавлять свою статью или коментарий и он(а) тут же появлялась на сайте в новом файле в нужной папке и с заданым дизайном?
    Ответ прислал "Бурусов Д.В.
    Не рекомендую - тебе весь сайт могут завалить недоброжелательные люди, нецензурные слова - это цветочки - от них легко избавиться, а вот от мусора.

  • 2152. Как загнать файл в базу MYSQL с удаленного хоста? если этот файл лежит на том же компьютере, где запущен сервер, то это делается так:
    load data local infile "file.txt" into table my_table.
    А как сделать это в случае, если файл находится на другой машине?
    Ответ прислал Бурусов Д.В.
    Используй сначала загрузку этого файла на сервер или открывай его напрямую - как при перекачке на сервак.

  • 2154. Есть форма. Вопрос в том как сделать так чтоб эта информация попала в базу MySql И потом при надобности извлечь её от туда?
    Ответ прислал THE UnForGiven.
    Форма пусть передает данные скрипту, назовем его s.php3 (это я на php пример даю) пусть в форме 2 поля - login и password. названия столбцов таблицы такие же. вот содержание скрипта добавления.
    <?php
    $query="INSERT INTO table SET login='$login', password='$password'";
    $result=mysql_query($query);
    echo ("информация добавлена, до свидания");
    а вот скрипт выборки:
    <?php
    $query="SELECT * FROM table";
    $result=mysql_query($result);
    $row=mysql_fetch_object($result);
    echo ("логин: $row->login<br>пароль: $row->password");
    здесь выводится полностью вся информация, хранящаяся в базе.

  • 2155. Поделитесь наиболее оптимальной и надёжной технологией написания апплетов на Java! Т.е. чтобы писать в обычном текстовом редакторе и компилировать с минимально установленным компилятором. Волнует также вопрос совместимости и устойчивости отдельно взятых компиляторов. Буду рад любой информации по этой теме.
    Ответ прислал Pasha.
    Вам понадобится JDK. Его можно скачать с http://java.sun.com Писать можно даже в Блокноте, я с этого и начинал, но это слегка неудобно. :) Впрочем, редактор - дело вкуса.:)
    Созданные Вами программы можно выполнять при помощи JDK (Java DevelopmentKit) или JRE (Java Runtime Enjine). Браузеры от Микрософт имеют свою собственную JVM (Java Virtual Mashin) которая, кстати, позволяте выполнят не только апплеты, но и приложения (о чём не все знают). Для выполнения приложений можно использовать програмку jview.exe, которая является частью ОС Windows, если установлен IE.
    По поводу совместимости:
    Sun страется обеспечить обратную совместимость, т.е. программы написанные с использованием JDK 1.0 должны работать в JDK 1.1 - 1.3 Правда компилироватся они при этом будут с предупреждениями. Та JVM что поставляется с IE 5.0 - 5.5 - по совместимости ближе всего к JDK 1.1 Про IE 6.0 ничего не знаю. Netscape 4.0 как и IE использует свою JVM. В нём у меня не получилось запустит апплет использующий нектороые новые функции JDK 1.1, но это может конкретно мои проблемы.
    Вообще, несмотря на то что Sun говорит о Java как о языке с наивысшей переносимостью (даже перекомпилироват не требуется!) это не так. Между тем как программа выгядит в JDK/JRE 1.1 и IE и NN - 3 большие разницы. О Mac-ах и прочих платформах не говорю - не в курсе.
    Для того чтобы в IE запустить апплет используюущий новые функции JDK 1.2 - 1.3 необходимо заставить юзера установить JRE, в который входит специальная plugin для IE и NN. После этого можно пользоваться этой JRE (через тэг <OBJECT> а не <APPLET>).
    NN 6.0 и Opera используют Sun-овский JRE, и можно лишь молится чтобы и Б.Г. на него перешёл.
    Да, совсем забыл: Вы можете без проьлем писать проги работающие в JDK/JRE 1.0 и 1.1 используя JDK 1.3 В документаци написано начиная с каой версии появилась та или иная функция/класс. Просто не используйте тех возможностей, которые появлись позже, и всё будет работать.
    Кстати, не думайте что это лишнии возможности: начиная с JDK 1.2 используется по сути новый набор библиотек под общим названием Java 2, который отличается от обычной Java прмерно как Windows 3.1 от Windows 2000. В частности появился новый интерфейс работы с 2-х мерной графикой Java 2D. То что раньше делалось долго и мучительно теперь находится в стандартных библиотеках: поворот, масштабирование... Вместо библиотеки AWT для постротения интерфейса, которая изначально позиционировалась как временная мера, предлагается новый интерфей Swing. И так можно ещё долго говорить...

  • 2156. Возможно ли в подпрограмме на Perl передавать в качестве параметра указатель на массив, в который подпрограмма будет добавлять один или более элементов, с тем чтобы вызывающая программа видела измененный массив? Первоначально массив может быть и пустым. Я пытался передавать как параметр @xxx, а в теле подпрограммы делал таким образом:sub YYY{ my @xp = $_[0]; .... $xp[i ] = n; $_[0] = $k;}однако после выхода из подпрограммы переменная xxx в отладчике видна как скалярная и внесенные подпрограммой изменения не видны. Подскажите, где моя ошибка?
    Ответ прислал Hatebreeder.
    Передавайте указатель:
    sub mysub {
    $arrayref = shift;
    @array = @$arrayref;
    .......
    }
    mysub(\@array);
    Ответ прислал Alexey V. Radchenkov.
    Попробуй так:
    sub yyy {
    @_=shift;
    # Что-делаешь с @_
    return @_;
    }
    @xxx = yyy(@xxx);
    Ответ прислал Alex.
    Вызвать подпрограмму с передачей ей ссылки массива можно
    YYY(\@xxx); так например
    но можно и весь массив YYY(@xxx);
    sub YYY{
    my @xp=@_;
    push @xp, "новый элемент";#работаем с массивом
    return @xp;
    }
    Теперь функция возвращает массив:
    @xxx=YYY(@xxx);
    @new_xxx=YYY(@xxx);

  • 2157. Как проверить наличие у пользователя plug-in MAcrоmedia Flash. То есть если плагина нет, то вместо Флеша показывать просто картинку? Или это не реально совсем?
    Ответ прислал Aleksandrov Dmitry.
    В тэг Object, соответствующий флешу, вставь тег IMG - тогда браузер сам при отсутствии флаша покажет картинку
    Ответ прислал Ineon.
    У тебя две страницы:
    1. С Flash
    2. Без Flash
    Создавай еще одну, идексную, и вставляй туда 3x3 ролик, чтобы через две секунды переадресовывал на страницу с Flash. В ту же страницу пиши
    <meta http-equiv="refresh" content="5" url="страница_без_flash.html">
    Объясняю принцип:
    Если ролик загрузился (т.е. если есть plug-in), то ролик через 2 секунды переадресовывает юзера на страницу с Flash. Если ролик не загрузился (т.е. если нет plug-inа), то переадресацию выполнит заголовок meta на страницу без Flash.
    Ответ прислал Wizard.
    При публикации Flash на html страницу, создается (среди прочего) и такая кодовая строка:
    PLUGINSPAGE=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash
    Читая ее, броузер предлагает пользователю (если у него еще его нет) автоматом загрузить plug-in Macromedia Flash.

  • 2158. Читал, что наличие фреймов не позволяет поисковым машинам добираться до страниц. чтобы проиндексировать их. А если перед "микрофреймом", я поставлю ссылку на страницу, находящуюся во фрейме, сможет ли эта ссылка выполнить роль шунта, по которой поисковик доберётся до нужной страницы?
    Ответ прислал Алексей Лысов.
    Поисковик в любом случае проиндексирует страничку - даже если используются фреймы. Но вот навигация будет нарушена. По ссылке с поисковика посетитель может попасть на внутреннюю страницу фрейма, и тогда он не будет знать куда ему идти дальше. А ссылки дополнительные делать не имеет смысла.
    Ответ прислал Бурусов Д.В.
    Если пользователь пойдет по этой ссылке - внешний вид ему не понравится. А шунт получится.

  • 2159. Как на PHP можно вывести данные из файла, отсортированные в алфатитном порядке по первой букве каждой строки?
    Ответ прислал Design-studio RGB graphics.
    Пиши директом, есть такой скрипт!

  • 2160. Расскажите про использование ф-и mail в PHP, просто я решила ее проверить локально на своем компьютере, но у меня возникает ошибка как раз на той строке, где эта функция вызывается.
    mail("login@mail.ru", "My Subject", "Hallo!");
    И еще, например, у меня электронный магазин на PHP, мне хотелось бы, чтобы выбранные товары из корзины, направлялись мне на mail. Возможно ли такое сделать?
    Ответ прислал Max Mad.
    Для того, чтобы у тебя заработала PHP функция mail, нужно как минимум настроенный вебсервер+поддержка PHP+настроенная мыльная прога типа sendmail, локально на машине ничего не будет без этого. А по-поводу отсылки на мыло того, что бы ло заказано у меня сделано нечно подобное на www.russianwife.kiev.ua пиши, долго рассказывать.

  • 2162. У меня есть таблица следующего вида: имя, параметр1, параметр2. Как осуществить сортировку соответственно по имени, параметру1, параметру2. Т.е. выбор характеристики осуществлял бы пользователь?
    Ответ прислал Бурусов Д.В.
    Надо писать скрипт и рисовать форму задания параметров - а так это не сложно.

  • 2163. Где можно взять еще "поведения" или Behaviour для дримвивера 4, если они существуют на свете. На официальном сайте я не нашел, дайте ссылочку.
    Ответ прислал DESIGN-COM.
    Нужно зарегистрироваться у них на сайте. Регистрация без проблем! http://dynamic.macromedia.com/bin/MM/exchange/dreamweaver/main.jsp

  • 2164. Как на PHP сделать поиск по файлу? Я знаю, что это возможно с помощью функции fseek(). но как ей пользоваться?
    Ответ прислал Ineon.
    Если поиск нужно сделать построчно, то вот скрипт:
    $search = "Что я ищу";
    $myfile = file("my.dat");
    for($i=0;$i<count($banfile);$i++) {
    if(trim($myfile[$i]) == $search) {
    echo "Нашли!";
    }
    else {
    echo "Ничего не нашли!";
    }
    Ответ прислал Design-studio RGB graphics.
    Это проще всего сделать с помощью функции preg_match:
    if (preg_match("/$text/i", $line)):
    В данном случае оператор возвращает истину, если $text найден в строке $line без учёта регистра.

  • 2167. Подскажите программу, с помощью которой я смог бы просматривать файлы *.shtml, с элементами SSI! Кроме apache и Small http server.
    Ответ прислал Webmaster.
    Server Omni.
    Ответ прислал Бурусов Д.В.
    Вопрос не понятен - Apache - это не программа просмотра, а сервер, который на хосте выполняет действия SSI, а программа - Dreamview компонует страницу при предосмотре.

  • 2168. Можно ли слой привязать не к левому углу, т.е. координаты давать, а к центру, например, или к какому-нибудь объекту.
    Ответ прислал Aleksandrov Dmitry.
    <STYLE>
     .block {position: absolute; top: 100; left: 100; height: 75; width: 75;}
     .block2 {position: absolute; top: 0; left: 0; height: 25; width: 25;}
    </STYLE>
    <SCRIPT>
    window.onload=fnInit;
    var iOffset=10;
    function fnInit(){
       oDiv.style.left=document.body.clientWidth/2 - oDiv.offsetWidth/2;
       oDiv.style.top=document.body.clientHeight/2 - oDiv.offsetHeight/2;
       oBlock1.style.setExpression("top","
          (oDiv.style.pixelTop - iOffset
           - oBlock1.style.pixelHeight)
       ");
       oBlock1.style.setExpression("left","
          (oDiv.style.pixelLeft +
          (oDiv.style.pixelWidth/2 - oBlock1.style.pixelWidth/2))
       ");
    }
    </SCRIPT>
    <DIV ID="oDiv" CLASS="block"></DIV> <DIV ID="oBlock1" CLASS="block2"></DIV>
    Ответ прислал Pyc_Step.
    С помощью CSS описываются следующие параметры слоя:
    POSITION — определяет точку отсчета координат. Если он равен absolute, то координаты отсчитываются относительно верхнего левого угла документа. Если он равен relative, то координаты отсчитываются от верхнего левого угла слоя, включающего данный слой.

  • 2169. Как на js сделать такое: Когда юзер заходит на страницу, то определяется броузер и его верси. Например если броузер IE5.X, IE6.X то все загружается, а если название броузера NN то появляется сообщение, мол ваш броузер устарел и вы не можете просматривать не эту страницу не этот сайт и т.д.
    Ответ прислал Wizard.
    <script language=JavaScript><!--
    if (navigator.appName.indexOf("Microsoft") == -1) {
    Wind0ws.Location.Href=alert('Эй, ты');
    } else {
    Wind0ws.Location.Href="#";
    }
    // --></script>
    </head>
    Скрипт простенький, но ты должен подумать, куда дальше пойдет посетитель, у которого установлен NN. Поэтому, лучше делать страницы и для NN тоже. И редиректить пользователя на разные страницы.
    Ответ прислал Andruishka.
    Скрипт, который вы просили: <script language="JavaScript">
    function CheckBrouserVersion()
    {
    if (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= 5)
    {return true;}
    else
    if (navigator.appName == "Netscape"){return false};
    }
    <</script>
    а дальше проверяете так:
    if (CheckBrouserVersion())
    {
    ... можно смотреть
    }
    else
    {
    ...нельзя
    }
    Ответ прислал Ineon.
    <script language='javascript'>
    fuction CheckBrowserVersion()
    {
    var n=navigator.appName
    var ns=(n=="Netscape")
    var ie=(n=="Microsoft Internet Explorer")
    if (ns)
    location="natscape.html"
    else if (ie)
    location="ie.html"
    }
    </script>
    Ответ прислал Евгений Салагаев.
    dom=false;
    if(document.getElementById){ dom=true } // NN6 или IE5
    if(document.layers && dom==false){ nn=true } // NN < 6
    if(document.all && dom==false){ ie=true } // IE < 5



  • Рассылки Вебмастера


    Вас интересуют вопросы web-дизайна, скриптов, графики, и т.п.? Тогда у Вас есть возможность подписаться на рассылку "Веб-Дизайн. От А до Я" и "Веб-Дизайн, азы".

    На эти рассылки Вы можете подписаться на сайте http://dweb.ru/


    Качественный хостинг


    Недорогой качественный хостинг. Неоценимый плюс - отсутсвие многих ограничений, в том числе на траффик. Т.е. вы можете позволять посетителям скачивать файлы с вашего сайта, можете размещать много графики - без боязни, что хостер оштрафует вас за превышение лимита!
    Преимущества:
    6 поддоменов. 200 Мб, CGI, PHP, SSI, MySQL и масса др. всего за 8,95$. А также регистрация в зоне .info Сходите, есть на что посмотреть.

    Обменные сети TBE & XBN


    TBE (Tranzit Banner Exchange) http://dweb.ru/go/ - уникальная сеть обмена, позволяющая увеличить посещаемость Вашего сайта. Поддерживаются типоразмеры баннеров 120х60, 100х100 и Текстовые блоки. Комиссия 7-10%. Высокий CTR. Выкуп показов. Каждому новому участнику 20000-50000 БЕСПЛАТНЫХ показов + Ваша кнопка на главной странице http://dweb.ru/! Узнать подробности и зарегистрироваться можно на сайте http://dweb.ru

    XBN (Xmen Banner Network) http://dweb.ru/go/ - уникальная сеть обмена, позволяющая увеличить посещаемость Вашего сайта. Поддерживаются баннеры 468х60. Комиссия 7-10%. Высокий CTR. Выкуп показов. Каждому новому участнику 20000-50000 БЕСПЛАТНЫХ показов + Ваша кнопка на главной странице http://dweb.ru/! Узнать подробности и зарегистрироваться можно на сайте http://dweb.ru



    Клуб друзей


    * http://click.vov.ru - Все для раскрутки сайта. Генератор траффика, регистрация в поисковиках, каталог досок объявлений. И мн. др.
    * http://www.kir-uss.narod.ru - Всё от Web дизайна до online игр, выложен интересный софт,как разогнать свой комп и его части и др.
    * http://www.alevera.com - Фотогалерея природы Чукотки. Галерея произведений.
    * Качественный Хостинг - Низкие цены, высокий уровень, отличная служба поддержки, CGI, PHP, MySQl, 6 поддоменов, а также регистрация доменов в зоне .info. Cходите, есть на что посмотреть.
    * http://zond.h1.ru - Сайт факультета гражданской авиации. Последние новости из жизни студентов нашей академии, фотографии самолётов и пообЧАТся в чате.
    * http://www.radioman.ru - Для всех, кто связан с электроникой. Схемы устройств, справочная информация, радиотехнические программы, новости.
    * http://homepages.atnet.ru/lazar/ - Старт для начинающих , кто хочет больше использовать E-mail. Ссылки.
    * Как выбрать качественный хостинг? - Статья о том, как правильно выбирать место для размещения вашего сайта. Советы, рекоммендации и ссылки.
    * Хостинг - Низкие цены - всего от $8 (100 Мб) до (400 Мб) в месяц. FTP, POP3, CGI, PHP, crontab, MySQL, бонусные показы. При оплате вперед скидка 10% и домен бесплатно, отличное качество услуг.
    * Работа - Дистантная (удаленная) работа через Интернет по вашей специальности. Оператор ПК, программист, дизайнер, переводчик, секретарь. Оплата $400-1000 / месяц (средняя 800$).
    * Только для Вебмастеров! - Партнёрская программа - 2 цента за КЛИК + 25% с продаж.
    * Веб-Дизайн - Обучающие материалы по HTML, PhotoShop, Corel Draw, JavaScript, CGI, различным графическим редакторам. Спецкурс создания суперграфики.
    * Сервер Знакомств - найди свою судьбу. Психологические статьи. Увлекательные истории.

    В "Клуб друзей" может попасть любой сайт. Ссылки вращаются по КРУГУ постоянно. Как в рассылке, так и на сайте. Правила.

      ICQ - Клуб
    Адрес Клуба http://dweb.ru/1/icq.htm

    Если у Вас возник вопрос по дизайну, графике, скриптам и т.п. То Вы в любой момент можете его задать на странице Клуба любому консультанту находящегося в on-лайне.

    Для тех, кто может, а главное хочет поделиться своими знаниями, Вы можете вступить в наш Клуб, для этого присылайте # ICQ, Имя, E-mail, Город, и темы по которым возможна консультация.


      Авторам

      Вы хотите, чтобы ваши статьи были опубликованы в этой рассылке? Если вы считаете, что можете написать о дизайне, скриптам, графике и т.п., если Вам есть что сказать и о чем рассказать, я буду рад сотрудничеству с Вами. Присылайте свои предложения и статьи.
      Давайте вместе делать общее дело! Присылайте свои соображения, мысли, истории... поделитесь своим опытом.
      В качестве гонорара Вы получите показы сети RLE (от 1000 до 10000) плюс N-кол-во читателей, которые посетят Ваш сайт.
      Буду рад сотрудничеству.

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


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу
    Рейтингуется SpyLog

    В избранное