Security Warning: этот ответ не соответствует лучшим рекомендациям по безопасности. Эвакуация неадекватна для предотвращения SQL-инъекции , вместо этого используйте подготовленные операторы . Используйте стратегию, изложенную ниже, на свой страх и риск. (Кроме того,
mysql_real_escape_string()
был удален в PHP 7.)Вы могли бы сделать что-то основное:
$safe_variable = mysql_real_escape_string($_POST["user-input"]); mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");
Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).
Я делаю следующее:
По некоторым причинам, это помогает мне много сохранить все файлы сгруппированными проектом и сохранить мои неактивные проекты (те, я в настоящее время не продолжаю работать) на дальнейшем вниз папка. Я предполагаю, что отвлечен ими иначе.
Я - большой поклонник Вашего большего количества детализированных листов, но на верхнем уровне я выполняю намного лучше организацию файловой системы проектом. Я, намного более вероятно, буду в каталоге кода и думать, "Эй, какова была спецификация для этого?", чем быть в каталоге спецификации и думать, "Для какого проекта я хотел спецификацию?" Для реконструкции схемы:
|
|___webs____
| |
| |_blog.com_
| | |
| | |_docs_
| | | |
| | | |_mockups
| | | |_user stories
| | | |_...
| | |
| | |_code_
| | | |
| | | |_dev_
| | | | |
| | | | |_app
| | | | |_cfg
| | | | |_...
| | | |
| | | |_prod_
| | | |_qa_
| | | |_uat_
| |
| |_blah.com_
| | |
| | |_...
|
|_desktop___
| |
| |_noteapp__
| | |
| | |_...
| |_...
KEY
dev - development
prod - production
qe - quality engineering
uat - user acceptance testing
Однако организация в моем офисе следует Вашим методам и, кажется, поддерживает великоватую среду разработки. Лично, я нахожу, что он действительно разбивающий должен искать макеты и другие случаи в каталогах кроме того, в котором находится мой проект (а именно, как аналитик, имея спецификации, отдельные от Маркетинга моделей, но я отступаю), но с точки зрения делегации процесса, разделяющей эти понятия, вероятно, имеет много смысла.
Просто мои два цента.
Я храню все в каталоге "c:\projects" на моей машине окон и ~ / проекты на нашем oid Unix (Linux & solaris) среды. Ниже этого у меня есть "изучение" (для экспериментов кода и отрывков / каталог) и затем один каталог для каждого проекта. Через какое-то время, когда проект является более не существующим, я стираю локальное устройство хранения данных, и код заархивирован только в SVN.
Я склонен предпочитать более плоскую структуру каталогов и хотел бы рекомендовать сохранить ее максимально простой. Помните, что, по крайней мере, в Windowsland, существует предел на длину командной строки. Таким образом наличие очень глубинных структур могло бы породить некоторые противные ошибки сборки.
Я просто использую неукомплектованное название каждого проекта и бросаю все соответствующие файлы и каталоги в тот один каталог. Что-то вроде этого:
src \ <- Исходные коды для нескольких проектов (ниже)
tests \
test_a <- module тест для a для исследований и разработок (использует некоторые коды из папки src)
test_b <- модуль для теста b для исследований и разработок (использует некоторые коды из папки src)
main_app_folder <- основной файл проекта для производства (использует большинство кодов из папки src)
doc \ <- Documents
tools \
tool_a <- tool a (использует некоторые коды из папки src)
tool_b <- tool b ( использует некоторые коды из папки src)
cleanup.exe / .ini <- утилита для очистки временных файлов сборки.
Проектом (в main_app_folder, тестах или инструментах) может быть .vcproj (visual studio c / c ++) .mmp (сборочный файл Symbian), сборочный файл (сборочный файл Linux). Каждый проект имеет свой собственный основной файл .cpp - всегда содержащий минимальный набор функций, все остальное имеет тенденцию быть более или менее пригодным для повторного использования (в папке src \).
Разница между тестовым приложением и приложением инструмента заключается в том, что инструмент отображает что-то более или менее полезное, в то время как тест проверяет только, работает ли он или нет.
Разница между тестовым и основным приложением заключается в том, что тестовое приложение не содержит всей функциональности, также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define.
также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define. также тестовое приложение может включить некоторые специальные # define, необходимые для тестирования. Обычно в тестируемом приложении сокращается набор основного приложения без лишних #define.Файлы в SVN:
SomeLibraryX
SomeLibraryX.sln
SomeFunctionA.cs
SomeFunctionB.cs
..
SomeApplicationY
SomeApplicationY.sln
SomeApplicationY.cs <-- might use SomeLibraryX as one of the dependencies
SomeApplicationZ
..
Файлы в некоторых общих \\ intra-pc \ Releases \
SomeApplicationY 1 <-- folder used to execute compiled binary. Contains all the necessary input files needed for execution.
Model <-- all input files like xml:s and 3ds:s
Textures <-- all pictures
Depencies <-- all dependency executables and dlls
SomeApplicationY.exe <-- main exe
SomeApplicationY.ini <-- execution parameters file, that can be drag&dropped onto main exe
SomeApplicationY 2
Model
Textures
Depencies
SomeApplicationY.exe
SomeApplicationY.ini
SomeApplicationY 3 <-- the last demo-release of this project that is currently under construction (used for executing and debugging the exe)
Model
Textures
Depencies
SomeApplicationY.exe
SomeApplicationY.ini
SomeApplicationZ 1
...