Многие начинающие веб-программисты знакомятся с языком посредством книг. Книга бесспорно очень важна и нужна, но в ней приводятся примеры (для начинающих), которые по своей сути не являются правильными с точки зрения устойчивости и переносимости скрипта. Под устойчивостью понимается возможность возникновения ошибок различного вида, под переносимостью – тоже самое, но при переносе скрипта с домашней локальной машины на сервер хостнг-провайдера.
Ниже я бы хотел сразу показать начинающим веб-разработчикам как надо учиться сразу писать скрипты, чтобы затем не испытывать лишних проблем и не «ловить» непонятно откуда вылезающие ошибки.
Сразу скажу, что я сам с этим столкнулся, так что все это прошло через мои мучения.
Рассматривать я буду следующие моменты:
1. Настройка PHP для локальной машины и на сервере.
Почему я именно с этой главы начинаю. Дело в том, что многие на локальной машине сразу отключают показ всех ошибок. Это – НЕ правильно. Вместо того чтобы тупо смотреть в монитор и искать, где, как окажется, не хватает точки с запятой, можно по ошибке, выдаваемой PHP сразу понять, в чем дело.
Как писать BASH скрипты? Закладывание основ или начало с нуля
Но сначала хочу сделать небольшое лирическое отступление по части того, как настраивать PHP, как Apache modul или fast-CGI.
Самый оптимальный вариант – настраивать, как модуль веб-сервера. Для этого в конфигурационном файле httpd.conf веб-сервера Apache пишем следующие строчки:
LoadModule php4_module D:/bin/php/sapi/php4apache2.dll AddType application/x-httpd-php .php .phtml .php4 .php
Отличие от FastCGI – следующие. Первое.
При FastCGI php.ini будет подгружаться в память веб-сервера приблизительно каждый второй раз при запуске скрипта, при установке, как модуля Apache загрузка конфигурации PHP будет осуществляться только при загрузке или рестарте веб-севрера, само собой быстродействие и нагрузка на сервер будет меньше. Помимо этого, при установке как fastCGI недоступны определенные функции. Начинающему программисту они не понадобятся., но при разработке крупного Интернет-приложения вы можете столкнуться с проблемами. А проблемы лучше предотвращать.
Теперь перейдем к конфигурации самого PHP. В конфигурационном файле php.ini в обязательном порядке устанавливаем следующие директивы с ниже написанными значениями:
error_reporting = E_ALL display_errors = On display_startup_errors = On
Писать или не писать ошибки в лог файлы – это уже на ваше усмотрение.
На сервере в хостиг-компании, обязательно, выключайте все эти директивы в целях безопасности, дабы потенциальный злоумышленник не мог узнать пути, где лежат ваши скрипты. Но по хорошему, когда вы уже публикуете свой скрипт в глобальной сети, он не должен выдавать никаких ошибок.
Помимо этого
short_open_tag = Off Для того, чтобы нельзя было использовать
По умолчанию директива max_execution_time имеет значение 30, но для быстроты работы, лучше ставить меньше. Если у вас что-то «зациклилось», то 10 секунд вполне достаточно чтобы понять это.
Пишем свой первый скрипт в Roblox Studio! #1| Roblox Studio Скриптинг Remastered |
register_globals = Off register_argc_argv = Off
В 3 главе я расскажу более подробно об этом.
magic_quotes_gpc = Off
Очень часто начинающие веб-разработчики не понимают разницы между ‘ и “, поэтому выключаем директиву. В 4 главе данный момент будет показан на примере.
Вы спросите, а как же тогда сделать, чтобы не выводилась ошибка?
Чтобы не выводилась ошибка ее надо либо предотвращать, как в случае с файлами, то есть а) проверять файл на существование, б) проверять, а можно (есть права) в него что-то записать is_writeable();.
В других случаях, например при использовании mysql_connect(); надо проверять значение, которое вернет функция. Как правило, по нему можно определить, есть ошибка или нет. Обычно при ошибке возвращается значение FALSE, NULL или пустая строка.
Это позволит вам, выдавать пользователю не пустую страницу, если, к примеру, он попытался обратиться к информации (?n=14), а информация хранится у вас в файлах, и файла 14 не существует, а текст сообщение: «Информация не найдена».
«Ловля» ошибок является также очень важным аспектом безопасности при работе скрипта.
3. register_globals = Off и никак иначе.
Если в первых двух главах я делал акцент на тех моментах, с которыми начинающий программист столкнется уже сразу, то в этой главе я расскажу о таком моменте, который проявится уже позже. зачастую с ним все сталкиваются при переносе скрипта (уже готового) на сервер хостинг провайдера. Лично я долго привыкал к register_globals = Off, поэтому товарищи, начинающие программисты, сразу ставьте эту директиву выключенной. Помимо этого, данный момент ОЧЕНЬ ВАЖЕН в обеспечении безопасности скрипта.
Итак. В чем же вся загвостка. Сначала рассмотрим случай, когда у нас register_globals = On. Как вы уже, наверное, знаете, данные в скрипт могут передаваться тремя способами, сказал грубо, на самом деле их два. Первый это GET, т.е. данные передаются через адресную строку браузера после символа “?”, второй – POST, при его использовании данные предаются в неявном для пользователя виде.
Метод POST используется, как правило, для отправки данных формы. Ну и третий – это Куки, переданные от пользователя скрипту.
Рассмотрим такой случай. У нас есть форма, которая находится по адресу index.php? form. В форме несколько текстовых полей полей. Пусть это будет family, name, phone. Форма отправляется на тот же index.php но методом POST.
Проверив все данные, мы записали пользователю две Куки с именами family и form, во второй мы записали время доступа к форме, к примеру.
Представим, что у нас часть файла index.php состоит из следующего кода, т.е. в случае если пользователь уже ввел данные на форме, они ему показываются, если нет – выводится форма. И все это по адресу index.php?form.
«; print «Вы были тут: » . $form . «
«; > else < // Показываем нашу форму. >> ?>
А теперь задумайтесь.. Что будет в $form, ведь мы передаем переменную, как GET параметром, так и через Куки. Вот. Дальше вы судорожно будете искать ошибку в том, что, почему $form у вас пустое или наоборот.
Т.е. фактически все сводится к тому, что есть возможность подмены всех переменных. По сути это существенный минус в безопасности, поскольку очень велика вероятность того, что злоумышленник сможет посмотреть какие- либо важные файлы на сервере.
Теперь о том, как это реализовать под register_globals = Off
В PHP существуют несколько глобальных массивов. $_GET, $_POST, $_COOKIE, $_REQUEST (объединение первых трех, не рекомендуется в целях безопасности), $_FILES (для аплода файлов), $_SESSIONS (сессии), $_SERVER (серверные переменные), $_ENV (переменные среды), $GLOBALS (объединяет все).
Что это значит. Ниже я просто перепишу скрипт, данные мною ранее для register_globals = Off..
«; print «Вы были тут: » . $_COOKIE[‘form’] . «
«; > else < // Показываем нашу форму. >?>
Теперь никаких проблем не возникнет.
На всякий случай уточню, что в $_****[‘name’] вместо name надо написать имя текстового поля или Куки или параметра, переданного из адресной строки.
В этой же главе хочу рассмотреть следующий маленький пример. Опять же сначала рассмотрим пример с включенным register_globals.
$a = 2; my(); print $a; ?>
Скрипт выведет значении $a равное 7. Т.е. по сути, мы имеем, что переменные доступные как внутри, так и вне функции. Это не есть хорошо, поскольку при большом скрипте таких переменных $a может быть уйма, а как следствие в любой функции значение переменно может быть изменено и результат выполнения скрипта будет непредсказуем.
Теперь, если тот же самый код выполнить при register_globals = Off, выведется 2. Поскольку изменения переменной $a внутри функции не затронут переменную $а в основном теле скрипта. Тут надо читать мануал про область видимости переменных.
Если же нам надо получить эту семерку, то надо возвращать из функции значение локальной $a и сохраняя это значение в глобальной $a.
$a = 2; $a = my(); print $a; ?>
4. Основные аспекты синтаксиса. Литерал ор но литерал.
1. Опять же многие начинающие программисты не понимают разницы между записью: $_POST[‘pole’] и $_POST[pole]. Первый вариант – синтаксически верен, а второй нет. PHP будет пытаться найти не элемент pole, а элемент с именем, которое хранится в константе pole, которой у вас – нет.
Кавычками обрамляются литералы, т.е. строки. Если у вас массив – индексный, то в нем не надо писать $_POST[‘1’], а надо $_POST[1].
Разницы между “ и ‘ нет.
2. Вывод переменных часто осуществляют таким образом:
print “My name is $name. I $age years old.”;
Такая строка «разбирается» интерпретатором намного должен, чем
. I years old.»; ?>
Первый вариант наиболее предпочтителен, да и с точки зрения редактирования программного кода – легче понять, где у тебя переменная, а где у тебя текст.
Источник: www.internet-technologies.ru
Как написать Lua скрипты и где они используются? Подробный обзор
Lua-скрипты пишутся на языке программирования Lua, что очень даже естественно. Lua — это интерпретируемый скриптовой язык родом из Бразилии. Год его рождения — 1993-й год. С тех пор он постоянно развивается и расширяет свои возможности. Lua — это язык свободного распространения.
По своей функциональности он ближе к JavaScript, но по некоторым компетентным мнениям он более гибкий, чем JS.
Скрипты Lua
- простыми и содержать в себе всего одну команду;
- сложными и содержать в себе десятки, сотни и даже тысячи разных команд.
Переменные в скриптах Lua
- латинские символы;
- разнообразную комбинацию цифр;
- «нижнее подчеркивание».
- Переменные не должны начинаться с цифры.
- Регистр имеет значение! К примеру : «xyz», «XYZ» и «Xyz» — это разные имена переменных.
- Нельзя использовать зарезервированные языком имена.
- Нельзя использовать имена, которые начинаются с «нижнего подчеркивания», а продолжаются заглавными буквами. Например: «_XYZ».
- Глобальными.Такая переменная будет функционировать до того времени, пока будет функционировать сама среда, где исполняются скрипты Луа. И такая переменная будет доступна каждой функции Lua в рамках единой среды, где существует сама переменная.
- Локальными. Всегда, когда созданная переменная не объявляется «локальной», она будет обозначаться «глобальной». Обозначить переменную локальной возможно, используя слово «local». Например: «local x = 7», где мы создаем локальную переменную «х» и приравниваем ее значение к «7». Локальные переменные видны только в рамках блока, где объявлены. Такими « рамками » мо гут служить функция или конструкции со словами else, for, while и др.
Какую типизацию данных воспринимают скрипты Луа
- «nil» — (пустое значение);
- «boolean» — (логика);
- «number» — (числа);
- «string» — (стро к а);
- «function» — (работа с функциями);
- «userdata» — (информация о пользователя х );
- «thread» — (работа с потоками);
- «table» — (работа с таблицами).
Комментарии в скриптах Lua могут быть:
- Однострочными.Это т вид комментариев определяется 2-мя «минусами» : «- -». Такой комментарий дли тся , пока не окончится строка. Например: «local x = 5 — — комментарий в одну строку».
- Многострочными. Это т вид комментариев обозначается «двумя минусам», но при этом само тело комментария должно быть заключено в двойные квадратные скобки. Например: «local x = 5 — -[[ комментарий в несколько строк]]».
Где используются скрипты Lua
Скриптинг Lua не так распространен, как JavaScript, но все равно за долгие годы существования этого языка он нашел последователей и занял свое место. Скрипты Lua применяются в проектах из разных сфер, некоторые из них довольно известные. Например:
- В компьютерных виде о играх, таких как: «Crysis», «Far Cry», «Diablo 3», «STALKER» и др.
- В серверной части ММО-игр, таких как: «World of Warcraft», «Аллоды Online» и др.
- В графических программах, таких как: «Adobe Photoshop Lightroom» и др.
- В движках для игр, например , в «Instead».
- В GUI-разработке приложений.
- И др.
Заключение
- Скрипты Lua выглядят очень компактными и просто на отлично взаимодействуют с языком программирования С. А это значит, что с этой «парочкой» можно свернуть горы программирования.
- Скрипты Луа очень «быстры». По своей скорости они легко конкурируют с Python, C и JavaScript.
- Скрипты Lua писать несложно. Сам Луа достаточно простой язык , и около 80% языка вы поймете только потому, что знаете английский.
Как писать скрипты для Windows?
Как писать скрипты для операционной системы, сайтов или же просто игр? Ответ на этот, поверьте, легкий вопрос и будет рассмотрен в рамках данной статьи.
Общая информация
Очень желательно, чтобы были хотя бы минимальные знания о программировании. Но если что-то покажется непонятным, то статья-другая поможет заполнить пробел. Первоначально давайте определим, что же собой представляет скрипт. Так называют алгоритм, написанный определёнными языками программирования, что хранится на компьютере человека и может взаимодействовать с определёнными файлами, программами вроде браузеров и системными настройками. Это всё позволяет значительно дополнять стандартные возможности, создавать автоматизированных помощников, что будут брать на себя часть работы.
Начинаем работать с браузеров
Это, пожалуй, одно из самых лёгких занятий. Если мы пишем скрипты на JavaScript, то для этого достаточно обычного блокнота и знания этого языка программирования. Правда, есть тут и недостатки. Так, каждый человек, у которого есть всё тот же «Блокнот», сможет посмотреть, что же собой представляет скрипт.
И если у него будут плохие намерения, а в коде уязвимость – то могут возникнуть проблемы. Отвечая на вопрос о том, как научиться писать скрипты на JavaScript, следует отметить, что для этого достаточно изучить данный язык программирования. Для того чтобы создавать лучшие и более сложные программы, можно воспользоваться различными библиотеками.
Но для них требуются соответствующие расширения веб-обозревателей. И при смене компьютерной техники придётся проводить дополнительные настройки. А при использовании сторонних разработок необходимо удостовериться, что скрипт не будет отсылать пользовательские данные на сторонние сервисы. Следует отметить, что каждый браузер имеет свои определённые ограничения.
Но в целом с их помощью можно делать практически всё что угодно. Зачем же их пишут в таких случаях? Они нужны тогда, когда следует автоматизировать деятельность человека.
Работаем с операционной системой Windows
Допустим, нам необходимо поменять конфигурацию компьютера. Для этого существует широчайший набор графических средств, но всё они, увы, не охватывают. Поэтому часто приходится создавать системные скрипты. Они имеют расширение .bat. Каждый человек, который более-менее длительное время работает за компьютером, уже встречался с такими файлами. Но вот как писать скрипты для Windows?
Для этого нам пригодится всё тот же «Блокнот». Сначала создаём новый текстовый файл. В нём необходимо записать системные команды. После этого необходимо изменить расширение файла на .bat. И остаётся только запустить эту разработку. Если всё правильно, то команды успешно будут выполнены, что и можно лицезреть.
Но в случае ошибок или неграмотного написания кода в лучшем случае ничего не произойдёт. Поэтому лучше разбираться в том, что записываешь. Просто брать где-то код и бездумно его вставлять категорически не рекомендуется! Это может привести к значительным проблемам в работе операционной системы. И ещё повезёт, если такие опасные действия были сделаны с гостевого аккаунта.
Ведь команда от администратора может превратить компьютер в «кирпич».
А что с «Линуксом»?
Следует помнить, что «Виндовс» – это не единственная операционная система. Есть ещё и «Линукс», причем довольно популярный. Как писать скрипты в этой операционной системе? Они создаются с помощью оболочки – специального командного интерпретатора, который является интерфейсом между человеком и ядром операционной системы.
В «Линуксе» скрипты, по сути, это просто файл, в котором перечисляются системные команды. Это просто и одновременно удобно. Но оболочке нужно знать, как же такой файл следует обрабатывать. По умолчанию она просто читает. А если нужно выполнить, то используется конструкция «#!», которую необходимо поставить перед командой.
Все скрипты имеют расширение .sh. Следует отметить, что с их помощью можно делать довольно много сложных вещей. Например, резервное копирование файлов. В целом вариантов использования чрезвычайно много.
Учимся писать скрипты
Итак, первоначально необходимо определиться со средой, где мы будем набирать код. Почти всегда для этого достаточно одного «Блокнота». Но в нём не очень удобно отображать строение конструкций, к тому же не подсвечиваются операторы и другие элементы. Поэтому в качестве достойной альтернативы можно предложить программу Notepad++.
Для тех, кто знает английский язык, не так сложно перевести, что это тоже «Блокнот». Но с расширенными возможностями. Эта небольшая, но очень приятная разработка ориентирована в первую очередь на программистов. В ней можно включить настройку отображения почти всего, что только есть.
Присутствует удобный инструмент отображения кода и множество других хоть и мелких, но приятных вещиц, которые сделают процесс написания более комфортным. В целом же на вопрос «где писать скрипты» дано множество различных ответов, каждый из которых предлагает свою изюминку. Есть и очень навороченные среды, с эмуляторами и множеством инструментов отладки.
Выбирай, что душе пожелается. После этого необходимо позаботиться о наличии знаний. В качестве базиса подойдёт справка по языку программирования или же команд операционной системы. Для более продвинутого изучения можно прочитать несколько книг, в которых объясняются особенности машинной логики и обработки кода.
Сервисы обучения в реальном времени
Если интересует, как научиться писать скрипты, то не следует сбрасывать со счетов и возможность обучения с помощью информационных образовательных технологий. Как приблизительно выглядит такая «кузница программистов»? По программе, составленной согласно мнению опытных разработчиков, новичка ведут от самого лёгкого к сложным моментам.
Так, первоначально может изучаться динамическое обновление данных, чтобы в последующем перейти к созданию сокет-серверов. И человек проходит обучение не спеша, поэтапно, усваивая максимальное количество данных. Поэтому, если возникнут сложности, можно обратиться за помощью к ним. Не факт, что первый попавшийся удовлетворит все потребности, но тогда необходимо будет просто попробовать что-то иное.
Зачем же изучать?
Многих интересует, как писать скрипты для игр. Что ж, это не очень сложно, но и не единственное применение подобной возможности. Но давайте же рассмотрим на примере игры. Допустим, человеку нравится играть на определённом сайте в какое-то развлечение. Но оно, увы, предусматривает, что необходимо или вкладывать свои деньги, или же долго и монотонно выполнять определённые действия.
И если был выбран второй путь, то скрипты — это именно то, что здесь нужно. Подобное может быть использовано и в стационарных играх на компьютере. Там есть персонажи под управлением искусственного интеллекта, и чтобы сразиться с ним, можно создать свою версию ИИ, устроив таким образом битву компьютера с самим собой (и для более лёгкого прохождения).
Но скрипты могут быть успешно использованы не только в играх. Допустим, что есть сайт серьёзной компании. Важным аспектом является максимальная поддержка коммуникации с клиентами. И для этого в виде скрипта добавляется небольшая форма, с помощью которой можно получить консультацию специалиста в онлайн-режиме. Возможностей применения много!
Заключение
Увы, но в рамках статьи очень сложно передать, как правильно писать скрипты. Можно, конечно, использовать общие фразы о том, что код должен занимать меньше места, быть оптимальным и много чего другого, но действительно понять это можно будет только на практике. Ведь только опыт и поиск оптимальных решений могут помочь в реализации программ таким образом, чтобы они с минимальными трудозатратами выполняли свои «обязанности». В программировании вообще, а не только в написании скриптов, очень много зависит от практики! Поэтому нужно постоянно учиться, совершенствоваться и думать, как же реализовать поставленную задачу наилучшим образом.
Источник: fb.ru