1. Перед началом каких-либо операций проверьте существование всех нужных файлов, папок и переменных. Например, если файл не будет найден, то вы его сможете создать и избавиться от ошибок.
2. Проверяйте все входные данные, которые передаются по форме. Например, если в переменной должна прийти дата - проверьте являются ли пришедшие данные датой. Даже если в форме предлагается выбор этих самых дат. Помните, форму всегда можно сохранить локально и поправить ее на свое усмотрение.
3. Проверяйте входные данные, чтоб они были только в пределах диапазона, указанного вами. Например, если вы поставили ограничение на 1000 символов в сообщении, а вам написали 2000.
4. Длина слов и другие, так как в простую форму можно вести очень много символов, из которых вам нужно будет всего лишь 3-4 десятка с начала, то на форму лучше всего тоже поставить ограничение.
5. Длина слов и другое. Если ввести слов 20 без пробела, то на странице это будет выглядеть некрасиво, а вам это не надо, поэтому либо запрещайте ввод таких длинных слов, либо разделяйте длинные слова самостоятельно, либо укорачивайте слова и другое
6. Вы знаете, что в поле имени (скрипты: гостевые книги, форумы…) пользователь может ввести что угодно, в том числе и ваше имя. Но так как в интернете не все честные, то некоторые, подписавшиеся вашим именем погут наговорить много всего нехорошего. Чтобы подобного не произошло, создайте список с запрещенными именами и проверяйте не совпадает ли имя пользователя с именем из этого списка.
7. Никогда не показывайте в форме пароля его текущее значение. Помните о том, что в этом случае пароль может попасть остаться в компьютере в так называемом каталоге временных файлов Интернета. А если это общественный компьютер? Тогда следующий кто сядет за него может легко узнать пароль. Кроме того форму с паролями обязательно отправляйте по методу POST.
8. В вашем скрипте обязательно должно быть предусмотрено модерирование. Согласитесь, гораздо проще и удобнее зайти на сайт, зайти в на страницу модерирования и нажать на пару кнопок и заполнить пару форм, чем заходить по ftp на сайт, открывать нужную страницу и ковыряться в html-коде.
9. Кавычки. Заменяйте в получаемых данных все кавычки на ESCAPE - последовательность. Например, кавычку ["] на [\"]. Данные в форму можно ввести так, что браузер при отображении может много чего натворить с вашей страницей. Например, можно вставить скрипт на Java, изменить оформление. Кроме того если это у вас форум или гостевая, можно заменять два пробела на пробел, для того чтоб количество пробелов отображалось верное.
10. Храните пароли в закодированном виде. Ведь если какой-нибудь пользователь и сумеет скопировать себе этот файл с паролями, то он пароль не сможет расшифровать. Если пользователь забыл пароль - меняйте его на абракадабру и отправляйте на e-mail. При этом обязательно выдавайте вначале ссылку для подтверждения, чтобы никто не узнал пароль.
11. Всегда заменяйте метки и разделители, которые вы используете для сохранения информации или отображения, на что-то подобное. Иначе имеется какой-то шанс, что его пользователь введет в форму ваш разделитель и на странице появится целый список ошибок.
12. Никогда не забываете ставить error_reporting (0) в начало страницы, благодаря этому параметру все ошибки, если они будут, не будут отображаться на странице и злоумышленник не сможет узнать слабое место в вашем скрипте.
13. При подгрузке какого-нибудь файла сначала удостоверьтесь в его существовании, а если он и вправду существует, то подгружайте его с помощью функции require, а не include, потому что в 1 случае если будет ошибка то файл совсем не будет подгружаться, а во 2 он подгрузится с ошибками.
14. Проверяйте откуда пользователь пришел. Потому что пользователь может сохранить форму ввода у себя на компьютере и подправить ее, но если он попытается отправить через нее данные, то ниче не получится, так как он его запрос придет не с той страницы, с которой нужно.
// дополнительная информация
| Каталог файлов |
|---|
Модуль Каталог файлов служит для организации на своем сайте собственного каталога программ или любых других файлов. Функционально этот модуль близок к Дневнику, Каталогу статей, Новостям сайта и Каталогу ссылок, но имеются поля, специфичные именно для каталога программ: «Операционные системы», «Языки интерфейса» и «Тип лицензии». К основным возможностям модуля «Каталог файлов» относятся:
|
Модуль «Каталог файлов» может использоваться самостоятельно, как дополнение к уже существующему на любом другом хостинге сайту.
Функции, как неотъемлемая часть программирования [Версия для печати]
Не зря эту статью, я назвал «Функции, как неотъемлемая часть программирования», ведь без них, по моему мнению, ни один язык не имеет право на существование. Что же это такое? Функция - это главная составляющая хорошо написанной программы. Она облегчает не только чтение кода, но и в корне меняет представление о структурном программировании. При помощи функций, Вы можете многократно использовать отдельные части программы, передавая им какие-либо параметры. Ни одну серьёзную программу невозможно представить без этого чуда элемента программирования.
Расскажу вкратце, как это работает. Функция, - это блок инструкций, который Ваша программа может вызвать. При обращении к заголовку этого блока (названии функции), он выполняется и совершает какие-то действия, задаваемые программистом. После этого, этот блок возвращает полученное значение и передаёт в главную программу. Поясню на практике. <?php . . . [переменная]=myfunc(5); вывод [переменная]; . . . функция myfunc( $[переменная_фунции] ) { возвращаемое_значение=[переменная_фунции]*[переменная_фунции]; }?>Грубо говоря, всё выглядит так. Коротко поясню. Мы создаём какую-нибудь переменную и присваиваем ей результат выполнения функции myfunc, которая в свою очередь вычисляет значение возведения в квадрат какого-нибудь числа. Функции не исполняются сразу во время запуска программы, а исполняются только тогда, когда к ним обращаются. Может немного запутанно, но всё именно так.
Как вызвать функцию?
Для того, чтобы вызвать функцию, необходимо её создать. Хотя существуют, так же, встроенные функции. Например, это: cos, sin, md5, count, abs и так далее. Для их вызова необходимо лишь присвоить переменной искомое значение.
<?php $a='1'; echo cos($a); ?>
Аргумент функции - это значение, передаваемое Вами ей при вызове. Аргументы функции помещаются в скобках. При создании функции Вы указываете условные имена аргументов. Потом этими именами можно пользоваться в теле функции, как локальными переменными. Вернёмся к функциям, которые создаёт сам пользователь. Это делается очень легко. Сначала создаётся тело функции:
function hello() { echo 'Hello, world!'; }
Затем её вызываем. Причём если она не имеет параметров, то мы просто ставим круглые скобки. Чтобы вызвать эту функцию, воспользуемся лишь строчкой: hello();. Любая функция может так же возвращать значение с помощью зарезервированного слова return. Этот оператор прекращает выполнение функции и посылает возвращаемое значение в вызвавшую программу. function sum($first, $second) { $r=$first + $second; return $r; } echo sum(2,5); результат выполнения программы будет равен 7. Локальные и глобальные переменные
Как и в любом другом языке программирования, существую переменные, доступные только внутри функции и переменные, доступные в коде самой программы. Такие переменные называются локальные и глобальные соответственно. Внутри функции Вы не можете просто так обратиться к переменной, которая была создана вне этой функции. Если Вы попытаетесь это сделать, то создадите новую переменную с таким же именем, но локальную для данной функции.
$per='Дима';
function primer()
{ echo 'Меня зовут '.$per;
}
echo primer();
В данном случае на экране появится фраза «Меня зовут». Это означает, что внутри функции primer создалась переменная $per и ей, по-умолчанию, было присвоено нулевое значение. Для того, чтобы избежать таких косяков, нужно воспользоваться оператором global. В соответствии с этим исправим вышеизложенный код:
$per='Дима';
function primer()
{ global $per;
echo 'Меня зовут '.$per;
}
echo primer();
Теперь должно быть всё в порядке - проблема решена. Только не стоит забывать, что если функция изменит значение внешней переменной, то такое изменение скажется на всей программе, поэтому пользоваться этим оператором нужно осторожно!
Функции двух и более аргументов
Некоторые из аргументов, передаваемые функции, можно сделать необязательными, уменьшив требовательность функции. В следующем примере это наглядно показано:
…
function font($text, $size=5)
{ echo '<font size='.$size.'>'.$text.'</font>';
}
font('Привет<br>',1);
font('Привет<br>',2);
font('Привет<br>',3);
font('Привет<br>',4);
font('Привет<br>',5);
font('Привет<br>',6);
font('Привет<br>');
По умолчанию, размер кегля равен 5. Если мы опускаем второй параметр у функции, то он будет равен этому значению.
Заключение
Прежде чем попрощаться, хочу обратить Ваше внимание на одном совете. Он заключается в том, чтобы вынести все написанные Вами функции в один php-файл (например, function.php). А затем, в файле, где необходимо обратиться к функции, достаточно лишь подключить function.php и всё будет готово к использованию. Это намного облегчит понимание логики в Вашей программе. Для подключения, используйте:
include_once('function.php');
или
require_once('function.php');
Если Вы поняли суть рассматриваемого вопроса в этой статье, то я уверен, что Вы без труда сможете пользоваться функциями в своих программах. Ещё раз повторюсь, это необходимо для того, чтобы сделать их более пригодными для внесения изменений и повторного использования.