Позвольте с некоторой задержкой поздравить вас! День Победы - действительно НАШ общий праздник, и никто никогда его у нас не отнимет!
Сегодня - комбинированный выпуск: # 8 + 9. Дело в том, что рассылка почти год выходила в другой службе, и теперь я наверстываю упущенное. До полной синхронизации осталось совсем чуть-чуть.
Итак, очередная порция вопросов и ответов. А в следующий раз, пока новых вопросов будет совсем немного, я поделюсь с вами еще некоторыми Ноу-Хау - мелочами, порой способными существенно облегчить нелегкую жизнь WEB-мастера.
Привет! Есть нужда обратиться к тебе за советом по PHP... Сейчас разрабатываю сайт, а там есть такая проблема... Надо, чтоб пользователь мог выбирать из предлагаемого списка несколько вопросов (всего в списке их около 200), и текст вопросов пересылался на указанный имейл...
Как решить эту проблему? Пытался организовать это в виде форм с чекбоксами, но обработка таких форм на PHP представляется мне сущим геморроем... Можешь предложить какой нибудь алгоритм решения такой задачи...? Она проста, но я просто в тупике...
ОТВЕТ от Ведущего:
Приветствую.
К сожалению, в PHP я разбираюсь недостаточно хорошо. Но могу предложить такой вариант с одной формой и всего 6-ю элементами:
Но тут предстоит как следует исхитриться, чтобы организовать переносы из одного Select Multiple в другой.
ОТВЕТ от Кузина Андрея:
Не до конца понятно, в каком виде происходит выбор этих вариантов в оригинальном вопросе, но в предложенном выше случае реализация на PHP будет такой:
Насчет геморроя - это уж слишком! Для больших списков как у вас, чекбоксы - это лучший вариант. Насколько я понял, вам только нужно помочь с обработкой этих форм.
1. Выводим на экран список с чекбоксами.
Вся фишка в том, что у чекбоксов имя будет массивом! Теперь мы запросто это все обработаем! Кстати, если вам не нравится, что записи нумеруются 0,1..."value=$i" - можете присвоить каждой записи свой номер и занести их в массив. Еще есть вариант прямо через value у чекбокса передавать сразу запись, но, по-моему это весьма коряво. Да и потом, там же есть какие-то ограничения на количество информации, а если записи большие, то увы... Только такой способ.
2. Обработка (файл process.php)
Все ок, проверьте почту!
P.S. У меня на сайте используются сплошные чекбоксы www.oasis.altnet.ru. Суть примерно такая же. Там даже есть 2-мерные массивы чекбоксов. правда, посмотреть вы это все не сможете... Но если зарегистриуетесь и потом оставите сообщение в гостевой, увидите чекбокс:) А 2-мерный массив используется при администрировании, чтобы установть права пользователям.
Привет, Аlex!
Начала верстать свою первую страницу при помощи блоков CSS. Все шло хорошо, пока не попыталась в один из блоков вставить фоновый рисунок. В общем, его просто не видно. В чем дело? Вот код:
ОТВЕТ от Ведущего:
Здравствуйте, Aннa.
Ну вы и залезли в дебри! Раз это ваш первый сайт - надо стараться все делать проще.
Против CSS я ничего не имею, даже приветствую. Но очень не советую доверять ему такую ответственную задачу - расположение элементов на странице. Тут 100% гарантию может дать только таблица.
Вот я прямо на вашем скриншоте провел линии разметки. Теперь это все элементарно формируется в виде таблицы.
Каждая ячейка - отдельный блок. Одна Большая Задача разбивается на 8 маленьких. Это называется "декомпозиция".
По поводу вашего вопроса:
ОТВЕТ от Анны:
Здравствуйте, Alex!
Спасибо за помощь! Написала строчку
И все заработало! Но опять появился новый глюк: браузер не понимает высоты, заданной в процентах, в пикселях все нормально. В общем, спасибо за совет. Что-то мне уже и самой эти "новые технологии" порядком надоели, наверное, еще не пришло их время :). Перехожу на таблицы!
Привет, Аlex!
Как на странице использовать шрифты, не установленные в Windows? (но при этом если у меня есть файл, содержащий шрифт)
ОТВЕТ от Ведущего:
Приветствую, Муссон.
Да уж, задали вопросик. Прошу простить, что долго не отвечал - пришлось покопаться в старых архивах. И нашел! В разделе HEAD документа надо "импортировать" шрифт:
Теперь можете использовать название шрифта во всем документе, например так:
Одно но: файл шрифта - является объектом авторской интеллектуальной собственности. Если у вас нет прав использования, вас могут очень просто выявить и привлечь.
Осторожнее с этим!
От себя могу порекомендовать www.newmail.ru. Правда, он уже не тот, что 4 года назад. Но там дают 32 Мб под сайт и почту + некоторые навороты DHTM: опрос, гостевая книга, форум.
Многие хорошо отзываются о www.holm.ru
Там даже в бесплатном варианте доступны некоторые "прелести" вроде CGI. Но на каждой странице должен быть их баннер!
Еще можно поискать "тепленькое местечко" - в порядке личной договоренности с админом вы получите домен 3-уровня + N мегов под сайт + все радости платных хостингов. Не могу гарантировать 100%, но вроде бы я видел подобные вещи на сайтах
1) www.kulichki.com 2) www.gamer.raduga.ru 3) www.protoplex.ru (совсем не уверен)
ОТВЕТ от Андрей:
Попробуй на сайте www.erolib.ru. Я им очень доволен. Там даже скрипты разрешают. Спишись с ними.
ОТВЕТ от OasisHTML:
Я еще знаю хостинги!
http://fatal.ru - есть PHP, почта! Нет рекламы, хотя, иногда вылазит в попап окне
http://h12.ru - есть PHP, есть реклама в виде баннера 468*60 после тега <body> но можно обойти при помощи хитростей типа
Либо вообще тег <body> не указывать - так тоже можно!!! Только на этих хостингах нету MySQL - обидно и досадно, но ладно :)
Ну, здрасте, что ли :)
Очень сильно волнует вопрос о том, как в TEXTAREA отключить перенос строк. Знаю, что у этого тэга есть такой параметр wrap. По идее, если wrap=off, то переносы должны быть отключены (смотрел в одном HTML-справочнике). Но у меня переносы как были, так и остались... Вот так у меня выглядит этот тэг...
Дело даже не в стилях. Единственное изменения, касающееся TEXTAREA, выглядит так:
В чём может быть проблема и как её исправить (с помощью HTML или CSS)? Варианты с JS тут не подойдут, так как у юзверей это дело может быть отключено. Заранее огромное спасибо (просто нужно очень срочно - все сроки из-за этого горят)...
ОТВЕТ от Ведущего:
Приветствую, Константин.
Как ни странно, но у меня ваш пример прекрасно работает. Проверял в Opera 7 и Ie 6.
Возможно, вы сами сделали переносы (т.е. начинали строку с новой строки). В отличие от обычного текста в теге BODY, внутри тега TEXTAREA разбиение играет важную роль. Там нет автоматического склеивания.
Посмотрите еще раз (образец прикреплен к письму).
Еще момент - параметр WIDTH полностью игнорируется данным тегом. Ширина задается только через COLS.
Здравствуйте, Алекс. Не подскажите как можно сделать чтобы при передачи ссылки на эмэйл сразу передавалось и имя человека. Вот например такой вариант:
и у меня сразу подставляется после Здравствуйте, "Алекс", но это только потому что установлен дополнительный модуль преобразующий английсие имена в русские. А как бы в самом коде прописать чтобы сразу в адресной строке было бы такое: Алекс <alex_soldier@mail.ru>, а не так alex_soldier@mail.ru. Тогда после после приветствия автоматом подставляется имя. Пример дан для TheBat!
ОТВЕТ от Ведущего:
Здравствуйте, Николай. Вы такое имели ввиду:
Параметр cc= - кому отправить копии письма (можно несколько адресов через запятую)
Параметр body= - текст письма (вместо пробелов снова ставим ), правда, я так и не нашел, как делать переносы строк.
Также интересно было бы узнать, есть ли параметр, отвечающий за поле СКРЫТАЯ (т.е. письма на e-mailы, которые не будут отображены в групповом списке получателей). Если кто знает ответы на эти вопросы, просьба написать!
Здравствуйте Alex!!! Простите не знаю настоящего имени. Во-первых, хочу сказать большое спасибо, за ваши рассылки очень познавательно. Тут у меня возник вопрос по web-дизайну. Так вот. Как изменить линию прокрутки на страничке. Просто я заходил на некоторые сайты и на многих стояла линия прокрутки не просто серая а зеленая или красная вот я тоже решил попробовать сделать но у меня ни чего не получилось. И в моем учебники этого к сожалению нету. Алекс, если можешь ответь на мой вопрос. Напиши пример какой
тэг за это отвечает.
ОТВЕТ от Ведущего:
Здравствуйте Алексей (я, кстати, тоже Алексей)! Понял, о чем вы спрашиваете. Однажды мне в руки попалась такая фишка. С тех пор храню, как знал, что рано или поздно про это спросят в рассылке. Вот оно:
Помещать это надо в секцию <HEAD> ... </HEAD>. А теперь что есть что:
1) лицевая часть кнопок полосы прокрутки
2) светлая часть бортика (левая и верхняя границы)
3) темная часть бортика (правая и нижняя границы)
4) контуры вокруг бортиков слева и сверху
5) треугольные стрелки (вверх/вниз)
6) фоновая часть полосы прокрутки
7) контуры вокруг бортиков справа и снизу
ВОПРОС 41 от AlexHiphoper:
Здравствуйте Алексей!!! Спасибо что помогли с боковой прокруткой, очень вам благодарен. У меня тут вопросы возникли.
1. Я на своем сайте сделал несколько ссылок, но они у меня почему-то открываются в одном и том же окне, как я не бился, что бы они открывались в новом окне, ничего не получилось. То ли я тупой, то ли у меня учебник по HTML плохой.
2. Как сделать систему поиска?
ОТВЕТ от Ведущего:
Здраствуйте Алексей. Попробую ответить на ваши новые вопросы:
1. Думаю, там надо поставить в ссылках:
и так для каждой. Если не поможет - пришлите мне страничку.
2. Здесь так сходу не скажу. Есть стандартные поисковые формы (Rambler, Yandex, Aport). Там только надо где-то в параметрах указать, чтобы искали не по всему WWW, а только по вашему сайту! Вот, нашел в Rambler FAQ:
ВОПРОС 42 от AlexHiphoper:
Здравствуйте Алексей!!! Спасибо что помогли мне с системой поиска на сайте. Сайт пока я не размещал в Интернете так что вот такие вот пироги с костями. Если честно я начинающий web-дизайнер и много ещё не знаю, но за последний месяц я так продвинулся.
1. Вот недавно в инете лазал и увидел на одном сайте такую фишку. Обычный сайт но из верхней части экрана выпадают маленькие снежинки и медленно (каждая по свой траектории) падает. Я поспрашивал у учителей ни кто не знает, говорят что флэшка или другой язык программирования.
2. На одном из форумов night racing такая фишка есть с левой части странички выплывает меню, я поискал тэги и нашел <script></script>, если я не ошибаюсь. Тоже захотел сделать такое меню но ничего не получилось. А слева мышкой только до левой части дотронулся и вот оно Меню.
3. За размещение чужых банеров на своем сайте что может быть. Как я читал лучше обмениваться а то так получается только реклама чужого сайта. А кому надо рекламировать чужой сайт без выгоды. Заранее спасибо.
ОТВЕТ от Ведущего:
Здраствуйте Алексей.
1. Про снежинки пока ничего не могу сказать наверняка - надо смотреть. Пришлите ссылку на сайт, плиз. Возможно, это обычные IMG, положением которых управляет JS-скрипт.
2. Выпадающее меню - тема одного из будущих выпусков рассылки.
3. Баннерные сети, если честно, меня разочаровали. Вот мой сайт с Героями 5. Зарегистрился, дали 25000 показов нахаляву. Тратил бережно. За все время было что-то вроде 31 клика. Печально! Показы быстро тратятся, а отдачи нет! Загляните ко мне на другой сайт - возможно это вам понравится больше:
www.bannet.nm.ru
Здравствуйте, Alex. Я решил переехать на платный хостинг и стал учить PHP, но столкнулся со следующей проблемой: Сервер Apache, на котором я тестировал свой сайт, как оказалось позднее, имеет определённый набор функций, среди которых присутствует и virtual(). Эти функции не выполняются на других серверах.
Но она отличается прекраснейшим свойством ? вставляет (подключает) в тело документа файлы, относительно главного каталога. Т.е. запись <? virtual ('/els/menu.php') ?> работает из каталога любой вложенности. Но ни include(), ни require() этого сделать не могут! Подскажите, пожалуйста, с помощью какой функции можно это осуществить не прибегая к SSI (т.к. *.shtml ? это совершенно не *.php, а в PHP SSI не вставляется) Заранее благодарен.
ОТВЕТ от Ведущего:
Привет, Александр. Поздравляю с грядущим переездом - это дело правильное! К сожалению, сам я с PHP почти не работал. Ваш вопрос задам в рассылке, думаю - ответят. Навскидку могу сказать следующее:
<? virtual ('/els/menu.php') ?>
- это абсолютный путь, он начинается с символа "/", т.е. с корневого каталога.
Точно ли include() и require() этого не могут? Может, им нужно предложить относительные пути?
А что такое в JavaScript фунция: location.search.substring(). Что она делает ?
ОТВЕТ от Ведущего:
Ну .substring() - это стандартная функция выделения кусочка строки. А вот что такое location.search - ответа пока не нашел. Браузер все время выдает undefined. Возможно, это фраза-запрос, по которому к вам пришли из поисковой системы. Не уверен!
www.cracksoft.narod.ru - Настройка Windows XP, программы с лекарствами, учебники по программированию, OFF-LINE журналы (Хакер, AboutPC, PC4ever и др.), обои для рабочего стола и многое другое.