Intereting Posts
PHP Неустранимая ошибка: вызов неопределенной функции imagettftext () вывод чисел жирным шрифтом, кроме некоторых Ошибка ключа API Карт Google получить список активировать плагин в wordpress и удалить ссылку плагина из меню администратора Почему на PHP PHP преобразует результат (int) ((0.1 + 0.7) * 10) в 7, а не 8? Как добавить орфографические предложения в скрипт поиска PHP / SQL Прекратите использование `global` в PHP Неисправность «408 Тайм-аут запроса» на Apache с PHP Youtube Analytics API PHP Неверный запрос. Запрос не соответствовал ожиданиям PHP shuffle не работает, как ожидалось, на моем вложенном массиве Возможно ли создать DateTimeZone со смещения? Подключитесь к Facebook-чату, используя PHP? Неустранимая ошибка: допустимый размер памяти 268435456 байт исчерпан (пытался выделить 71 байт) Исключение значения переменной из физической памяти в PHP Исключено исключение «PPConnectionException» в адаптивном платежном платежном платеже PayPal

GET переменные с пробелами – они работают, но это правильно или нормально?

У меня есть страница PHP, где я передаю название города через переменную URL / GET города. В настоящее время оно передает фактическое название города, даже если оно имеет пробелы (например, .php?city=New York ). Затем я беру переменную GET $ city и запускаю запрос MySQL в адрес city.name.

Это работает очень хорошо – но у меня всегда было впечатление, что любые переменные, URL / GET или иначе никогда не должны иметь пробелов. Я более чем способен либо заменять пробелы w / подчеркиваниями, либо удалять их, и возвращать их обратно для запроса … и т. Д. – но я думал, что сначала попрошу, чтобы пробелы были полностью прекрасными, и это было просто мое суеверие говорит мне иначе.

Пространства в порядке и обычно кодируются символом + .

Чтобы быть более безопасным, используйте urlencode() для своих значений, если вручную добавить их к вашим параметрам GET.

 echo urlencode('New York'); // New+York 

CodePad .

В противном случае, если ваша форма, если вы представляете параметры GET, просто оставите их такими, какие они есть 🙂

Затем я беру переменную GET $ city и запускаю запрос MySQL в адрес city.name.

Убедитесь, что вы используете подходящий механизм экранирования базы данных, чтобы быть в безопасности от SQL-инъекции.

Пространство в URL-адресе отлично. Следует обратить внимание на то, когда вы работаете с переменной, взятой извне вашего контроля (переменная URL, Cookies и т. Д. И т. Д.). Всегда помните, чтобы очистить его, чтобы предотвратить инъекцию sql, XSS и другие вредоносные атаки.

Это отлично работает без использования encodeURI () или encodeURIComponent () для параметров с пробелами от Javascript до Php или Python.

 echo shell_exec("python test.py \"".$_POST['ytitle']."\" \"".$_POST['yurl']."\""); 

Спасибо за примечание от https://stackoverflow.com/users/8712097/tom-aranda Вот более безопасный код.

 system(escapeshellcmd("python GreaseMonkey_Php_Youtube_srt_generator.py ".$_POST['yurl']));