Стать программистом после сорока...

(Продолжение. Начало в Dev-КВ №3'2012)

В этот раз я хотел начать прямо с главного - с уроков PHP. Но, не могу не затронуть и свою, так сказать, "наболевшую" профессиональную тематику. Причина моего очередного "лирического отступления" - в происходящих на рынке СМИ страны событиях.


Радио есть, а счастья - нет

Когда-то, ещё во времена СССР (году эдак в 1986-м), я мечтал стать журналистом. Точнее, не мечтал, а несбыточно грезил, поскольку поступить в то время на журфак было практически нереально. Я даже написал несколько заметок в "Знамёнку" (газета "Знамя Юности" была чрезвычайно популярной). Их, конечно, не опубликовали, а мне прислали вежливый ответ, в котором посоветовали лучше работать над текстами.

Но лет десять спустя моя мечта-таки сбылась. Я опубликовал несколько заметок в одной газете, потом пару статей в другой, затем поработал внештатником в третьей, а в четвёртую устроился уже в качестве корреспондента. Редактор попросил показать мои публикации, рассчитывая, видимо, увидеть несколько маленьких заметок в рамочке. А я вывалил на его стол объёмную пачку газет. Естественно, меня приняли на работу в небольшое ведомственное издание почти сразу. Годы, проведённые там, были нужны, как сейчас говорят, "для приобретения опыта работы в компании".

Шёл уже 1997 год, набирал популярность интернет, постоянный доступ в который стал очередным предметом моих мечтаний. Кто же знал, что интернет станет могильщиком печатных СМИ, то есть, фактически "зароет в землю" моих работодателей и сделает ненужным мой опыт?

Теперь у меня, как и у большинства граждан, есть безлимитный интернет. Но, из-за него моя профессия, о которой я когда-то мечтал, обесценилась. Газеты уже не нужны. Зачем, когда есть интернет, который обеспечивает оперативной информацией всех желающих? Как говаривал Илья Ильф, "радио есть, а счастья - нет...". Это как раз мой случай.


Неожиданное сокращение

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

Это, в общем, правильно. Государственных печатных СМИ у нас в стране пока слишком много, и штат их невероятно раздут. Это было оправдано в предыдущем десятилетии, когда они несли не только информационную, но и идеологическую нагрузку, обеспечивая граждан правильно обработанной информацией. Каждое печатное слово выверялось и готовилось к печати не только журналистами, но и множеством корректоров, стилистов, редакторов.

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

Серьёзную экономическую и прочую аналитику сейчас пишут на специализированных интернет-ресурсах, где она не подвержена столь жёсткой, как в газетах, цензуре, и где авторы не ограничены небольшой площадью печатных изданий.

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


Лекарство от безработицы

Одно время все печатные СМИ начали в обязательном порядке комплектоваться интернет-порталами. Инициативная правительственная группа, которая финансировала разработку и создание этих ресурсов, почему-то рассчитывала на то, что сайты обретут читателей и станут популярными. Но, к сожалению, надежды не оправдались. Интернет-СМИ - совершенно другой вид бизнеса, со своими правилами и методами работы, кондовым и неповоротливым госизданиям в нём нет места. Их таким путём не спасти.

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

К слову, самые талантливые белорусские журналисты прошлых лет, которых я когда-то знал и которыми восхищался, сегодня либо вообще не работают по профилю, либо давно уехали из страны. Причём, судьбы у всех абсолютно разные. Знакомый талантливый парень, которого, в своё время часто хвалили и отмечали за блестящие статьи, сейчас работает охранником на Украине.

Одна из блестящих белорусских девушек-телерепортёров получила пару лет назад звание "Золотое перо России" и трудится на канале ОРТ, освещая деятельность российского правительства, ещё одна моя знакомая - не работает вовсе. Есть те, кто связался с политикой, в той или иной форме. Некоторые даже получили от этого определённые дивиденды. Но, это уже, ИМХО, не журналистика, а просто один из вариантов торговли собой.

Работы для журналистов, повторюсь, сейчас совсем немного. Другое дело - программист. Крепкий средний специалист этого профиля "из коробки" имеет всё то, к чему простой журналист у нас в стране может безрезультатно идти всю жизнь.


Формы PHP на сайте

Динамический сайт невозможен без обратной связи. Для ввода постов, комментариев, регистрации, словом, для любого обмена данными с интернет-ресурсом нужны формы, чтобы водить туда текст (как минимум). Формы на PHP могут выглядеть примерно так.

<form action="comment.php" method="post">
<p>Имя: <br><input type="text" name="name" /></p>
<p>Комментарий: <br><textarea name="comment" cols="60" rows="10"></textarea></p>
<p><input type="submit" value="Отправить"/>
<input type="reset" name="Reset" value="Очистить"></p>
</form>

Здесь всё просто - главное, лишний раз самому ничего не усложнять. Конструкция action указывает на обработчик данных форм. У нас ими будет заниматься скрипт comment.php. Слово метод (method) означает метод передачи данных обработчику форм comment.php. Если форма содержит небольшой текст, допустим, логин, или ссылку, то оправдан метод get - отправка данных в адресной строке. Если много текста - то лучше подойдёт метод post, тогда данные будут отправлены в теле запроса, без ограничений по объёму. Далее идут обычные поля text и textarea (с указанием размеров текстового поля), а также кнопка "отправить".

И, как раз здесь начинается самое интересное. Можно отправлять не только текст, но и файлы; тогда тип нужно изменить на <INPUT type="file">. Можно устроить список радиокнопок, переключателей и т.д.

Далее необходим обработчик форм. В зависимости от того, какой метод мы используем, наши данные попадают в различные суперглобальные массивы PHP - $_POST или $_GET. А можно использовать для обоих случаев универсальную переменную $_REQUEST.

Можно написать простейший обработчик (и разместить его на странице, скажем, comment.php).

<?php
echo 'Имя <p><b>'. $_POST['name'].'</b></p><br>';
$msg=nl2br($_POST['comment']);
echo 'Комментарий <p><b>'.$msg.'</b></p>';
?>

Здесь всё понятно. Данные взяты из суперглобального массива $_POST (о нём я вам ещё расскажу в следующих материалах) и через оператор вывода вброшены на страничку, вперемешку с HTML-тегами (они обеспечивают форматирование текста в браузере). Интересная функция nl2br помогает вывести текст, согласно переводам строк, сделанным пользователем в форме.

Можно, конечно, ограничиться таким примером. Но, тогда мы увидим введённые нами данные только один раз. Это можно сделать для того, чтобы увидеть, как всё работает. Но, для сайта такой код не годится. Мы запишем наши данные в файл. Причём, файл для этого создавать не придётся - его сделает за нас PHP.

Итак, наш вариант comment.php:

<?php
/*Забираем данные из формы и заодно вырезаем теги функцией
strip_tags. Экранируем возможный ввод кавычек функцией
addslashes. Теперь в базе будет только текст.*/

$name= addslashes( strip_tags ($_POST['name']));
$comment= addslashes( strip_tags ($_POST['comment']));

//формируем строку для записи
$bd_str="<br>$name<br>$comment<br><br>";
/*Проверяем, существует ли файл базы данных функцией is_file,
если его нет, то создаём*/
$test = "bd.txt";
//Итак, если файла нет...
if (!is_file($test)) {
//Cоздаём
  $Saved_File = fopen($test, 'a+');

//записываем строку
  fputs ($Saved_File, $bd_str);

//закрываем файл
  fclose ($Saved_File);

/*Редирект на главную страницу (index.php), чтоб увидеть наш
комментарий и не запутать пользователя*/
  header('Location: index.php');
}

//иначе (если файл есть)
else {
/*Открываем его, ставим указатель в конец файла (указатель -
нечто вроде курсора, которым мы пользуемся, только предназначен
он для программы и выставляется на последний байт уже введённой
информации при помощи аргумента (a+)), записываем туда строку
c комментарием и возвращаемся на index.php */
  $Saved_File = fopen($test, 'a+');
  fputs ($Saved_File, $bd_str);
  fclose ($Saved_File);
  header('Location: index.php');
}
?>

/*Теперь делаем вывод данных в файле content.php. Добавляем туда
табличку HTML, форму ввода данных, а выше размещаем наш скрипт,
чтобы комментарий можно было увидеть сразу.*/
<table width=100% height=85% style="background-color:#ffffff">
 <tr>
  <td>
<?php
/*Выводим файл при помощи уже известной нам конструкции include,
если комментариев нет, приказываем вывести сообщение
"Комментариев пока нет"*/

//Записываем в переменную $filename содержание базы данных
$filename='bd.txt';

//Если она пуста или её нет, то...
if (!is_file($filename)) {
  echo '<br>Комментариев пока нет<br>';
}

//Иначе...
else {
  include ("bd.txt");
}
?>
  </td>
 </tr>
 <tr>
  <td>
//Дальше идут наши формы
   <form action="comment.php" method="post">
    <p>Имя: <br><input type="text" name="name" /></p>
    <p>Комментарий: <br><textarea name="comment" cols="60"
     rows="10"></textarea></p>
    <p><input type="submit" value="Отправить"/><input
     type="reset" name="Reset" value="Очистить"></p>
   </form>
  </td>
 </tr>
</table>

Всё, формы готовы. Если вы забросите их в корень веб-сервера вместе с файлами, которые мы сделали на прошлом уроке, то на сайте заработает комментирование.

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

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

(Продолжение следует...)

Эдуард ТРОШИН

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя mike

А чё? Отличный пример полезной статьи! Как вендюкам, так и линуксятникам.

Аватар пользователя leo3

Написано хорошо, легко и интересно читается:) Журналист, одним словом, состоялся... На мой взгляд вторая часть не связана с первой. То есть, размышления по поводу судеб отечественной журналистики слабо вяжутся с изложением ПэХаПэ. Я, вероятно, что-то пропустил, и это - не первая статья о РНР... в противном случае изложение начинается не с начала:) А вообще - мне понравилось...но, первая часть - больше. Мысли автора - спорные... Журналистика, имхо, была, есть и будет... всегда будут нужны люди, умеющие писАть лучше прочих граждан, а вот ПэХаПистика, думаю, проживет гораздо меньше времени:)... Тем не менее - автору спасибо за хорошую статью, а также - пожелание - писать интересные статьи и впредь:) можно о том, как он "перестал" быть журналистом:)

Аватар пользователя Petro42

  Журналист, одним словом, состоялся...

Спс, только денег это не приносит.

Мысли автора - спорные... Журналистика, имхо, была, есть и будет... всегда будут нужны люди, умеющие писАть лучше прочих граждан, а вот ПэХаПистика, думаю, проживет гораздо меньше времени:)...

Была, есть и будет "есть"...:-) Но, это не значит, что журналистика будет по-прежнему хорошо оплачиваться. И она оплачивается всё хуже. 

Есть ведь и другие вечные темы - "жратва", сельское хозяйство, что там ещё? И как там деньги? Думаю, вам не понравится... Сидение в " вечной теме", которая давно в ж...пе и не приносит никаких бонусов унижает человеческое достоинство... Согласны? 

Аватар пользователя mike

В принципе, научиться писать несложный софт может практически каждый и после 40-ка, и после 50-и, и т.д., пока  не началось серьёзное нарушение кровоснабжения мозга. Вопрос в том, будет ли такой программист востребован.

Аватар пользователя Petro42

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

И это моё глубокое убеждение, ИМХО. А насчёт кровоснабжения - жизненно и железно, реально и немного жутко... Все там будем и вариантов, к сожалению, нет ни у кого и никогда не будет... 

P.S "Облачный атлас" смотрели?

Аватар пользователя mike

Обещаю, что следующий материал вы х...рен поймёте...

Видимо, будет не код, а одни комменты. На китайском?

...Программирование - большая х...ня

Время от времени такие высказывания мелькают в Сети. Попробуйте самостоятельно написать компилятор, ОС, СУБД, движок браузера, виртуальную машину и т.п. Попробуйте написать софт на продажу, за который юзеры неск. штук баксов платят. А потом пишите, что программирование -- х...ня. )

P.S "Облачный атлас" смотрели?

Надо бы, да некогда. Вторую неделю "Один день Ивана Денисовича" читаю. То работа ипёт моск, то жена; устаю, стар есьм. Есть неск. заготовок для "Вестей", но руки не доходят.

Аватар пользователя Petro42

А потом пишите, что программирование -- х...ня. )

Пожалуй, погорячился. Белорусский коньяк виноват. 

Аватар пользователя Al

"Белорусский коньяк виноват" - Ну не надо же так буквально понимать лозунг "Купляйце беларускае!" )))

Аватар пользователя mike

Белорусский коньяк виноват.

Всё нормально. А "Облачный атлас" поставил в очередь. )

Аватар пользователя Petro42

Хорошее кино. Давно такого не видел. Пишут, что на премьере критики аплодировали актёрам стоя.

А насчёт рынка программирования, почему-то уверен, что его активно перегревают какие-то финансовые группы или сами IT-компании. Лет 5-7 идёт прямо-таки "хапун" на программеров. И несмотря на безграничные ресурсы Индии и Китая их всё равно не хватает. Это, похоже на некое глобальное очковтирательство. 

Мне кажется, это могло бы стать темой для статьи, но надо будет поискать факты. 

Страницы