Я думаю, что если кто-то захочет использовать PHP и MySQL или какой-нибудь другой сервер базы данных:
(int)$foo
. Подробнее о типах переменных в PHP читайте здесь . Если вы используете библиотеки, такие как PDO или MySQLi, всегда используйте PDO :: quote () и mysqli_real_escape_string () . Примеры библиотек:
---- PDO
----- Никакие заполнители - не спешили для SQL-инъекций! Это плохо
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) values ($name, $addr, $city)");
----- Без имени заполнители
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) values (?, ?, ?);
----- Именованные заполнители
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) value (:name, :addr, :city)");
--- MySQLi
$request = $mysqliConnection->prepare(' SELECT * FROM trainers WHERE name = ? AND email = ? AND last_login > ?'); $query->bind_param('first_param', 'second_param', $mail, time() - 3600); $query->execute();
PS:
PDO побеждает в этом сражении с легкостью. Благодаря поддержке двенадцати различных драйверов баз данных и именованных параметров мы можем игнорировать небольшую потерю производительности и привыкнуть к ее API. С точки зрения безопасности, оба они являются безопасными, пока разработчик использует их так, как они должны использоваться
. Но хотя PDO и MySQLi довольно быстры, MySQLi выполняет незначительную скорость в тестах - ~ 2,5% для незаготовленных отчетов и ~ 6,5% для подготовленных.
И, пожалуйста, проверьте каждый запрос в своей базе данных - это лучший способ предотвратить инъекцию.
Вот то, что я имею - подобный некоторому другому ответу. Создайте новый текстовый файл где-нибудь под названием emacs-conextmenu.reg (или anything-you-want.reg) и вставьте следующее в:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\openwemacs]
@="&Edit with Emacs"
[HKEY_CLASSES_ROOT\*\shell\openwemacs\command]
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs]
@="Edit &with Emacs"
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs\command]
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\""
Изменение путь к Вашему emacs пути установки; не забудьте выходить "\" (каждый раз, когда Вы имеете \, изменение это к \\).
Теперь все, что необходимо сделать, является двойным щелчком этот *.reg файл в проводнике, и у Вас должна быть запись контекстного меню для emacs для любого файла и любого каталога (если Вы будете сушеным вентилятором!).
Примечание, что для этого для работы emacs должен быть запущен и emacs-сервер также, должно быть запущено (M-x запускаются сервер). Я предложил бы запустить emacs с Windows и поместил бы (запускаются сервер) в Вашем .emacs файле.
В качестве награды, следующий отрывок для автогорячей клавиши ( http://www.autohotkey.com/ ) запустит файл, выбранный в emacs при нажатии ctrl-shift-enter в Windows Explorer. Это могло бы быть более удобно, если Вы редактируете много файлов в emacs, но не обязательно хочет перейти в файл в самом emacs.
#IfWinActive ahk_class CabinetWClass
^+Enter::
GetText(tmpvar)
If (tmpvar != "")
Run, d:/path/to/your/emacs/bin/dir/emacsclientw.exe -n "%tmpvar%"
Return
Return
Если Вы не для spelunking реестр, можно сделать это от Windows Explorer (инструкции для любого редактора, не просто Emacs):
Открывают Windows Explorer и выбирают Tools\Folder Options...
пункт меню.
Нажимают File Types
вкладка и выбирают расширение для типа файла, который Вы хотите связать со своим редактором. Для этого примера я буду использовать расширение TXT.
Щелчок Advanced
кнопка в деталях структурируют для перевода в рабочее состояние Edit File Type
диалоговое окно.
можно или изменить ток open
действие или определить новое действие как Open with MyEditor
.
, Если Вы принимаете решение отредактировать, нажмите Edit...
кнопка и в Application used to peform action
текстовое поле, поместите полный путь в своего редактора, сопровождаемого "%1"
. Например, C:\SciTe\wscite\SciTE.exe "%1"
.
, Если Вы хотите создать новое действие, нажмите New...
кнопка, дайте действию имя и дайте полный путь своему редактору, сопровождаемому [1 111].
, Если Вы хотите сделать действие значением по умолчанию для того типа файла, выберите действие, затем нажмите Set Default
кнопка.
OK
из всех диалоговых окон.
Другая опция состояла бы в том, чтобы поместить ярлык на исполняемый файл Вашего редактора в Вашем Send To
папка, %USERSPROFILE%\SendTo
. Я обычно создаю новую папку в здесь вызванных "Редакторах" и помещаю ярлыки на различных редакторов, которых я использую.
Этот сайт объясняет, как сделать это с другим приложением. Просто измените путь, и Вы должны быть все установлены.
Создают этот ключ/значение:
[HKEY_CLASSES_ROOT\*\shell\Edit with AppName\command]
@=”\”C:\\Program Files\\Notepad2\\Notepad2.exe\” \”%1\”"
Вот другая ссылка , за которым немного легче следовать.
Проверьте распределение Emacs с интеграцией Windows: http://ourcomments.org/Emacs/EmacsW32.html
Его установщик создает запись меню Explorer, которая делает то, что Вы хотите.
Вот, другой способ сделать то же самое. Работы в WinXP и Vista.
Добавляют это к Вашему реестру:
edit-with-emacs.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Emacs]
@="Edit With &Emacs"
[HKEY_CLASSES_ROOT\*\shell\Emacs\command]
@="Wscript.exe C:\\emacs\\emacs-22.3\\bin\\launch-emacs-client.vbs \"%1\""
Место этот файл в Вашем emacs каталоге bin:
Примечание launch-emacs-client.vbs
Set objShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count = 1 Then
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
Dim isRunning
isRunning = False
For Each objItem in colItems
If InStr(objItem.CommandLine, "emacs.exe") Then
isRunning = True
End If
Next
If isRunning Then
objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/emacsclientw.exe -n """ & WScript.Arguments(0) & """")
Else
objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe """ & WScript.Arguments(0) & """")
End If
Else
objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe")
End If
: установщик W32 запускает подобный скрипт на установке.
Я хочу добавить к ответу полиглота выше - ярлык AutoHotkey, о котором он упоминает, очень удобен, но код неполный: функция GetText () была написана кем-то на форуме AutoHotkey ( http://www.autohotkey.com/forum/viewtopic.php?p=279576#279576 ), и это:
GetText(ByRef MyText = "")
{
SavedClip := ClipboardAll
Clipboard =
Send ^c
ClipWait 0.1
If ERRORLEVEL
{
Clipboard := SavedClip
MyText =
ERRORLEVEL := 1
Return
}
MyText := Clipboard
Clipboard := SavedClip
Return MyText
}
;to test:
#k::
GetText(FileName)
msgbox clipboard=%FileName%
return
Обратите внимание, что задержку ClipWait, возможно, нужно изменить: мне пришлось ее установить к 2!