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

Программируем на PHP - вопросы и ответы. Конкретика Решает Проблему!


Информация от Владельца Рассылки...
http://virtual.brest.by - портал Виртуальный Брест

http://bel-host.info - Хостинг для ваших сайтов




Познавательная рассылка "Программируем на PHP - вопросы и ответы."
Уважаемый подписчик!
PHP есть скриптовый язык, позволяющий делать много полезностей Web-дизайнеру. Рассылка дает ответы на многие вопросы и учит правильно использовать это мощное средство. Вся работа построена на опубликовании шаг за шагом ряда статей с примерами, а кроме этого будет раздел вопросов и ответов, где Вы получите исчерпывающий ответ на свои вопросы.

А.Ю. Фоменко

"Конкретика Решает Проблему!"



Добрый день!

Я получил два письма с предложениями. Одно из них коммерческое, другое - некоммерческое. Но оба затрагивают одну и ту же тему - мою авторскую технологию "6 Кирпичиков"

Начнём с некоммерческого предложения, постоянного профессионального консультанта рассылки Александра:

Здравствуйте А.Ю.,

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

Использование чужого кода для изучения языка программирования обычно НЕ дает ожидаемых результатов, тому примером есть мои долгие попытки изучить java2MobileEdition таким образом; в результате я начал писать на MIDletPascal'e :)

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

А потом сравнить результаты работ. Все равно за 6$ их мало кто купит, а вести рассылку (/выпускать учебник/содержать сайт/ и пр.) гораздо приятнее не ради материальной выгода, а ради возможности помочь тем, кто в этом нуждается. Мне, даже, интересно КАК выглядит Ваш "кот в мешке" ("кирпичи") в работе.

Надеюсь на опубликование моих ответов (а особенно задачи) в следующем выпуске (не зря же я столько времени их набирал). Спасибо

--
С уважением, Александр (winbond)


Письмо опубликовал здесь. Все Ваши ответы я вставил в рубрику "Вопрос - Ответ". Спасибо за тёплые слова. Теперь, собственно, ответ на письмо-задачу:

Что касается "кота в мешке". Авторская технология "6 Кирпичиков" прекрасно работает. Уже больше 5 месяцев. Вот адрес сайта, который работает по этой технологии: http://sitesozdat.com

Это мой опорный пункт Обучения созданию сайтов своими руками. Так что милости прошу в гости.

Что касается обучения программированию. У каждого свой опыт. Например, я изучаю не языки как таковые, а прикладные возможности этих языков. Например, html - я могу создать сайт с помощью html. И займёт у меня это не более 1 часа. И это всё ручками без всяких визуальных редакторов.

Но я абсолютно не претендую на то, чтобы знать весь html. Даже больше. Я очень многого в этом языке не знаю. Тоже и с PHP. Я умею самую малость - делать с помощью PHP три вещи:

  1. Писать сайт

  2. Ставить редирект

  3. Работать с самой простой e-mail формой отправки сообщения с сайта.


Но это далеко не означает, что я не могу предлагать воспользоваться уже имеющимся у меня опытом по этим трём вопросам. А тем более это не означает, что я не могу свободно издавать познавательную рассылку "Программируем на PHP - Вопросы и Ответы."

Что касается задачи. Жду, Александр Вашего решения поставленной Вами же задачи.

Условия: Нужно сделать так, чтобы изменялась на каждой следующей странице только одна центральная колонка. Все остальные колонки постоянны. И при необходимости изменения в этих колонках, они меняются на всём сайте.

SSI, фреймы и iframe не использовать. Только средствами php.

Пишите, Александр

А пока перейдём ко второму коммерческому письму от Дмитрия.

Да, кстати, Александр. Ваши 6 кирпичиков - это же прекрасный товар! Почему бы Вам не приобрести Ластовский магазин? Или - давайте выложу Ваш Труд в моём магазине? Процент мой и Ваш - любые, как захотите.

Условия - здесь: http://shop.gold-life.info/cms_autor.htm Магазин нормально раскручен, но суть не в этом. Суть в следующем :

Приобретаете сразу офигенную рекламу. На сегодня базовых магазинов штук 50. И агентских к ним под несколько тысяч. Из базовых штук 10 работают с 2004 года и раскручены соответственно.

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

С уважением, Дмитрий.


По поводу партнёрских отношений - заинтересован, разумеется, в сотрудничестве. Пишите подробности.

Что касается магазина Вадима Ласто. Есть у меня простенький магазин с партнёрской программой. Но, честно признаться, всё никак его установить не могу. Один раз пробовал - не пошло. Пока думаю - устанавливать его или ограничиться оплатой по рупэю...

Пишите, Дмитрий

Кстати, меня зовут Алексей. Это так, для справки.

Теперь перейдём к основному содержанию номера

Проблема Номера "Как Сделать Простейший Каталог Сайтов?"


Лично я не знаю ни одного другого разумного способа применения PHP языка (и интерпретатора) кроме использования для построения и "начинки" сайтов.

Александр (winbond)

Нужно сделать админку:

- добавить сайт (Название сайта, описание, www-адрес)
- модерирование сайтов (редактирование, удаление)
- поиск по адресу сайта

Вывод для пользователей - эту часть оформить все функциями, что я куда хотел вставил например <?php categories(); ?> и там категории отображались <?php content(); ?> и там оображались внутренности категории

Прислать решение проблемы

"Вопрос-ответ"


Вопрос 3


а подскажите все-таки сервис, который __из php делает html__! а именно, динамические страницы php переделывает в статику... очень надо)

Ответ 3


"Браузер совершенно любой делает из PHP чистый HTML" НЕПРАВДА. Чтобы проверить создайте где-нибудь на диске (например c:\work\) файл 1.php с таким содержимым (без строк Begin, End):

----------Begin----------
<? echo("Hello world."); // outputs "Hello world." ?>
-----------End-----------

Это, кстати, тот самый HelloWorld.

Теперь откройте браузер и выберите файл/открыть, в появившемся диалоговом окне введите имя нашего файла c:\work\1.php Что получилось? (Если Вы используете IE, то тупой браузер попытается открыть файл в программе, которая ассоциирована с этим типом файлов.

Поэтому попробуйте проделать это в Опере) А теперь залейте этот же файл на ваш хост (сайт) с поддержкой PHP и введите в строке адреса что-то вроде этого: http://mysite.com/1.php Что получилось теперь? Отсюда вывод: преобразование выполняет НЕ БРАУЗЕР А ИНТЕРПРЕТАТОР на сервере.

Чтобы не зацикливаться на "преобразовании" PHP -> HTML, предлагаю всем решить такую задачу: изучите страницу (особенно ссылки на рисунок) http://066.jino-net.ru/demo/image.htm и расскажите как ЭТО работает (ps Если не получится, покажу правильный ответ)

RE: "Вы не поверите, но такая программа существует, и называется она веб-сервер! (напр., Apache, IIS)"

Правильно, но не совсем: это делает не Apache или IIS, а ИНТЕРПРЕТАТОР (php.exe)

--
С уважением, Александр (winbond)



Вопрос 4


Я думаю многие нуждаются в хороших учебниках по php. Если вам не трудно дайте посоветуйте хорошие учебники (дайте ссылки или сайт где скачать)

Ответ 4


RE: "Вы же предлагаете воспользоваться интернетовскими конструкторами - так мне точно не понять в чем особенность и отличие от HTML. Изучать толстенные книги некогда, а освоить хочется. Было бы приятно видеть некоторые коррективы в рассылки." Рекомендую всем учебник: "Самоучитель PHP5" Авторы: Кузнецов М.В., Симдянов И.В. Издательство: bhv-Петербург. Книга действительно "толстенная", но в ней все разобрано на простом и доходчивом уровне. Начинать же изучение лучше (пока не купили книгу) с типичного в таких случаях скрипта HelloWorld: ----------Begin----------
<? echo "Hello world."; // outputs "Hello world." ?>
-----------End-----------

Возможен вариант (смотрите описание функции echo):

----------Begin----------
<? echo("Hello world."); // outputs "Hello world." ?>
-----------End-----------

Еще интересный скрипт:

----------Begin----------
<html>
<head>
<title>Пример</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Страница была обновлена
<?
echo(date("d.m.Y",mktime(0,0,0,date("m"),date("d")-1,date("Y"))));
?><br>
А это значит, что администратор был на сайте вчера.
</body>
</html>
-----------End-----------

Обратите внимание на тот факт, что данный скрипт будет правильно работать, даже, если текущая дата 1 января 2006г. Результатом его работы будет не 00.01.2006, а 31.12.2005 (смотрите описание функции mktime)

--
С уважением, Александр (winbond)



Вопрос 5


Здравствуйте, saitkakprizvanie.

Скажите, как сделать, чтобы заказ с интернет-магазина отправлялся на сотовый телефон, также как на e-mail?

--
С уважением, Вячеслав

Ответ 5


Это делает функция mail (смотрите на форуме forum.jino.ru там это неоднократно обсуждалось), только e-mail, на который нужно отправлять письмо нужно узнать у оператора.

--
С уважением, Александр (winbond)



Сотовые компании часто каждому номеру телефона ставят в соответствие e-mail. Например, если отправить пиьмо на адрес +7xxxxxxxxxx@megafonsib.ru, то абоненту мегафон-Сибирь с номером +7xxxxxxxxxx придет СМС с текстом этого письма

--
С уважением, Анна



Ну с почтой вопрос решается через функцию mail(). Для тех, кому лень читать мануал: у нее только три обязательных параметра: адрес, тема и текст. С SMS можно поступить по-разному. Есть у опсосов шлюзы mail2sms, т. е. письма, приходящие по определенному адресу, приходят тебе в виде смс. Например, в Билайне по умолчанию такого адреса нет, но можно его получить. Подробности на http://www.beemail.ru/ Если это не годится, и нужно, чтобы скрипт отправлял именно смс, то есть два способа. Можно использовать какой-нибудь сайт, где можно отправлять SMS через браузер, и эмулировать действия пользователя. Но сейчас сложно найти такой сервис, не защищенный тестом Тьюринга. Так что придется пользоваться платной услугой: http://www.clickatell.com/ и вот этим скриптом: http://sourceforge.net/projects/sms-api/

---+---------------
С наилучшими пожеланиями,
Mr.Black
http://www.mrblack.pp.ru
---+---------------
Программа "Simple RAS Dialer" http://www.srdialer.h14.ru



Каждый мобильный имеет свой e-mail. Например, у Kievstar будет что-то типа 38067<здесь_номер_мобильного>@kievstar.net Типа того, просто узнай для каждого оператора необходимые адреса.

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

Когда-то таким образом мылом мне присылали сообщения на телефон.

------------------------------------------------------------------------------------
'АБЫРВАЛГ!', сказал линyкс после русификации...
------------------------------------------------------------------------------------

+=-=-==-=+
BITCreator



Вопрос 6


Здравствуйте.

Классно все работает! Спасибо всем.
Но теперь возник следующий вопрос: как сделать, чтобы изменялось окончание в перечне?
Пример:
1 деталЬ
2 деталИ
..
6 деталЕЙ

Владимир

Ответ 6


Скрипт:

----------Begin----------
<?
function okonchaniya($data)
{
/*
Автор скрипта: Щербаков Александр
e-mail для связи: winbond@inbox.ru
*/
settype($data,"string");
$lastdigit=substr($data,strlen($data)-1,1);
switch ($lastdigit)
{
case "1":
$result="деталь";
break;
case "2":
$result="детали";
break;
case "3":
$result="детали";
break;
case "4":
$result="детали";
break;
default:
$result="деталей";
}
if (strlen($data)==1)
{
$prelastdigit="0";
}
else
{
$prelastdigit=substr($data,strlen($data)-2,1);
}
if ($prelastdigit=="1")
{
$result="деталей";
}
return $result;
}
?>
<html>
<head>
<title>Подсчет</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
На складе:<br>
<?
for ($i=0;$i<=125;$i++)
{
echo($i." ".okonchaniya($i)."<br>");
}
?>
Все! :-))
</body>
</html>
-----------End-----------

Посмотреть в работе можно на http://066.jino-net.ru/demo/digit.php

--
С уважением, Александр (winbond)



Не успел проверить но должно бы работать так:

  $poch= "дета"; //начало ед. измирения
$num= "143"; //само число
$len= strlen ($num)-1;
//выбор окончания
if ( $num[$len]==1 ) $kon= "ль";
else if ( $num[$len]>1 & $num[$len]<=4 ) $kon= "ли";
else if ( $num[$len]>4 & $num[$len]<=9 | $num[$len]=0 ) $kon= "ей";
echo $num.$poch.$kon;

--------------------------------------------

З поваго Strange_V



функция возвращающая окончание слова в зависимости от колличества предметов

function os($num,$w0,$w1,$w2){ //okonchanie slova $ret=$w0; if (substr($num,-1,1)==1) $ret=$w1; if (substr($num,-1,1)>=2 and substr($num,-1,1)<=4) $ret=$w2; if (strlen($num)>=2){ if (substr($num,-2,1)==1) $ret=$w0; } return $ret; }

используется так:

допустим у нас 17 файлов

print "файл";
print os(17,"ов","","а");

то есть сначала передаём колличество чего-то,
потом окончание в случае 0 чего-то (файлОВ),
потом окончание в случае 1 чего-то (файл),
потом окончание в случае 2 чего-то (файлА).

-----
Fedos



Во-первых в русском языке есть 3 слонения и еще несклоняемые слова, и определить склонение ни одна прога сама не может. Нужна база данных.

Bопрос только в том, взять готовую или свою создать. Где взять готовую, не знаю. Словать ispell, хоть и содержит все окончания, но не указывает, какие к какой форме относятся. Так что придется для каждого слова в вашей базе данных указывать 3 окончания, применяемые в следующих случаях:

1) последняя цифра количества - 1, предпоследняя - не 1 (1 деталь, 21 деталь, 31 деталь)
2) последняя цифра 2, 3 или 4, предпоследняя - не 1 (2 детали, 3 детали, 32 детали)
3) последняя цифра - 5 или больше ИЛИ предпоследняя - 1 (5 деталей, 6 деталей, 11 деталей)

Алгоритм может быть такой:
function wordnum ($num /* число */ , $stem /* OCHOBA */, $e1, $e2, $e3 /* окончания разных форм */)
{
/* проверка на третий тип */
if (
/* проверяем предпоследнюю цифру */
((intval($num / 10) % 10) == 1) ||
/* и последнюю */
(($num % 10) >= 5)
) return $stem . $e3;

/* проверка на первый тип */
if (($num % 10) == 1) return $stem . $e1;

/* остается только второй тип, можно не проверять */
return $stem . $e2;
}

---+---------------
С наилучшими пожеланиями,
Mr.Black
http://www.mrblack.pp.ru
---+---------------
Программа "Simple RAS Dialer" http://www.srdialer.h14.ru



Здравствуйте, saitkakprizvanie. <?

$base = 'детал';

function SetSuffix($num){

if (abs($num) > 10 && substr($num, -2, 2) < 15){

$num = substr($num, -2, 2);

if ($num < 15){
if($num == 1){
$suffix = 'ь';
} elseif (($num >= 2) && ($num <=4)){
$suffix = 'и';
} else {
$suffix = 'ей';
}
}

} else {

$num = substr($num, -1, 1);

if($num == 1){
$suffix = 'ь';
} elseif (($num >= 2) && ($num <=4)){
$suffix = 'и';
} else {
$suffix = 'ей';
}

}

return $suffix; }

// Testing....

for($i=0;$i<=1000;$i++){

echo $i . ' ' . $base . SetSuffix($i) . '
';

} ?>

--
С уважением, Феофанов Иван
программист FB Solutions
Сайт компании: www.fbsolutions.ru



что касается окончаний в перечне, то можно кол-во деталей делить на 10 и в зависимости от того, что в остатке, добавлять окончание:

остаток = 1 - деталь остаток = 2-4 - детали остаток = 0,5-9 - деталей только если остаток от деления кол-ва деталей на 100 от 11 до 19, то писать надо всегда "деталей"

--
Humor(?): PCI-ный GPS-приемник

С уважением, Malefix



Вопрос 7


Здравствуйте saitkakprizvanie,

Я занимаюсь программированием на PHP уже давно, но у меня пару дней назад возник такой вопрос: как сделать загрузку java приложений с собственного сайта на собственный мобильник? Wap страницу я создал. Мобильник её видит, но как осуществить саму загрузку? Чтобы предупредить вопросы добавлю: мобильник не поддерживает загрузку java приложений через дата-кабель или ик порт, а игр я купил на диске много. Да и свои приложения планируется создавать для всех.

--
С уважением, spaser

Ответ 7


Для этого PHP не нужен. Просто на wap-странице делаете ссылку на jar-файл, если не работает, то на jad-файл (тогда в jad-файле нужно в адрес мидлета писать полный URL)

--
С уважением, Александр (winbond)



Вопрос 8


Подскажите, а как создать с помощью РНР маленький портал?

--
Angel7

Ответ 8


А что значит "портал", да еще и "маленький"? Какие задачи на ЭТО возлагаются? (ps на такие вопросы некоторые люди отвечают что-то типа: "руками", или: "в блокноте написать")

--
С уважением, Александр (winbond)



Вопрос слишком общий, а ответ получился б виде книги «Как написать портал при помощи PHP».

Задавайте вопросы конкретней.

--------------------------------------------

З поваго Strange_V



Маленьких порталов не бывает. Они все очень крупные. Если сайт маленький, или средний, то это не портал. Вообще, извечный вопрос. Если сайт очень маленький, то чем тебя не устраивает функция include, которой можно включить меню. Мой сайт, к примеру (http://quarta-dimensio.webhost.ru/), полностью сделан на PHP. Сначала я просто подключал меню из внешнего файла. Потом добавил папкопотрошилку. Потом рубрикатор. Потом... Однако, если нужны все эти прибамбасы, но в PHP не понимаешь и не собираешь учить, то можешь взять любую CMS (системы управления содержимым), на выбор. Есть неплохая статья про довольно навороченную систему управления Xoops: http://subscribe.ru/archive/inet.webbuild.webstudent/200606/15022913.html

---
Станислав Субботин



Вопрос 9


Приветствую!

Как отправлять письма с вложениями? Если нетрудно, укажите исходный код с комментариями.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
С уважением, Ведин Константин.
Удачи и до встречи!



Ответ 9


Кто знает ответ на этот вопрос, присылайте свои письма сюда: Принять участие в формировании рубрики Вопрос - Ответ!



Вопрос 10


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

Вопрос:
Есть у меня html-страница, с формой:

<FORM ACTION="sendmail.php" method="post">
Ф.И.О.: <INPUT TYPE="Text" size="30" maxlength="40" NAME="user">
<INPUT type="Submit" value="Отправить">
<INPUT type="Reset" value="Очистить"> </FORM>

А так же есть сам файл sendmail.php со следующим содержимым:

<html><body>
<?
$Mail = "email@mail.com";
$Tema = "test";
$Body = $user;
mail($Mail, $Tema, $Body);
?>
</body></html>

Так вот вопрос - При нажатии на кнопку "Отправить" на мой E-mai приходит письмо с Темой - test, но в теле письма написано user... Как сделать так, что бы Ф.И.О., введеные пользователем в форме, прислались на мое мыло в теле письма.

-------------------------------------
С уважением,Алексей.
Написано 27.06.2006.

Ответ 10


Кто знает ответ на этот вопрос, присылайте свои письма сюда: Принять участие в формировании рубрики Вопрос - Ответ!



Вопрос 11


Здравсивуйте 1.Как по средствам PHP реализовать

<select name="borderstyle">
<option value="ridge">ridge</option>
<option value="groove">groove</option>
<option value="double">double</option>
<option value="inset">inset</option>
<option value="outset">outset</option>
</select>

Ответ 11


Кто знает ответ на этот вопрос, присылайте свои письма сюда: Принять участие в формировании рубрики Вопрос - Ответ!



Вопрос 12


Как распечатать на принтер именно форму готовую, желательно тоже используя PHP?

Ответ 12


Кто знает ответ на этот вопрос, присылайте свои письма сюда: Принять участие в формировании рубрики Вопрос - Ответ!



Вопрос 13


Кто сталкивался с автоматизацией доставки цифровых файлов после оплаты через Rupay.com поделитесь опытом.

Интересует код работающего скрипта доставки и описание как запустить его в работу.

Я в php полный ламер поэтому как можно более подробнее расписанные ответы только приветствуются.

\\\\\\\\\\\\
Лекс

Ответ 13


Кто знает ответ на этот вопрос, присылайте свои письма сюда: Принять участие в формировании рубрики Вопрос - Ответ!
Довольно объёмный получился выпуск. Как видно из его содержания наибольший отклик получают именно практические вопросы, которые конкретизированы и призваны решить стоящую перед человеком проблему.

Присылайте именно такие письма, чтобы получить точный ответ на ваш вопрос. Я жду Вас на страницах следующего 6 выпуска познавательной рассылки "Программируем на PHP - вопросы и ответы."

-=-=-=-=-=-==-=-=-=-=-=-=-=-=
Удачного Вам php сайтостроения!

А.Ю. Фоменко Принять участие в формировании рубрики Вопрос - Ответ!
Инструктор по созданию своего любительского сайта...
в Сети

P.S.
За дополнительной информацией сердечно приглашаю на Глобальный Портал СайтСоздат http://sitesozdat.com


P.S.S. Инструкция по ликвидации подписки

Если Вы по каким-то причинам больше не хотите получать эту рассылку, то Вам следует сделать следующее:

Шаг 1. Зайти на главную страницу сервиса бесплатных рассылок, с помощью которого Вы подписались на мою рассылку.

Шаг 2. Войти в свой аккаунт подписчика, введя свои логин и пароль на данном сервисе.

Шаг 3. На открывшейся странице появится список рассылок, на которые Вы подписаны. В этом списке найти название моей рассылки «Построй Свой Бизнес В Сети» и убрать галочку, расположенную в строке названия.

Шаг 4. Обновить свои подписные данные.

Всё. Ваша подписка на мою рассылку Ликвидирована.

Желаю удачи…




Информация от Владельца Рассылки...
http://virtual.brest.by - портал Виртуальный Брест

http://bel-host.info - Хостинг для ваших сайтов

В избранное