амперсанд в проблеме с паролем - php
В значительной степени то, что написано в названии. Я пытаюсь подключиться к базе данных Microsoft SQL Server с паролем, который содержит амперсанд:
<?php
$mssqlHost = "Reports.autotask.net,1433";
$mssqlUser = 'NetworkROI';
$mssqlPass = 'Rosdcpe7&Essdcscpalda'; //has been changed
$mssqlATDB = 'TF_3745000_WH';
$SQLConnect = mssql_connect($mssqlHost,$mssqlUser,$mssqlPass)
or die('Could not connect to SQL Server on '.$mssqlHost
.' '. mssql_get_last_message());
?>
По, возможно, связанному с этим вопросу: Я получаю сообщение "Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка". при попытке подключиться.
Как мне избежать этого?
Джонси
1 answers
Вам нужно будет только экранировать амперсанд в строке HTTP-запроса, если вы передадите его с запросом GET, что вам никогда не следует делать, потому что это передаст пароль открытого текста в вашем URL-адресе. Используйте запрос POST и протокол HTTPS при отправке конфиденциальных данных.
Вам не нужно экранировать амперсанд в SQL-запросе. Это совершенно правильный SQL:
SELECT ... FROM Accounts WHERE user = 'Jonesy' AND password = 'M&Ms are tasty'
Но я также рекомендую научиться использовать параметры запроса:
SELECT ... FROM Accounts WHERE username = ? AND password = ?
Тогда тебе никогда не придется спросите, как снова избежать этого персонажа или того персонажа. Параметр запроса SQL - это лучший способ отправить динамическое значение без необходимости заключать его в кавычки или экранировать.
Повторите свой обновленный вопрос:
Поиск этого сообщения об ошибке приводит меня ко многим другим людям, которые используют Google Chrome в качестве своего веб-браузера, которые получают ошибку, когда они изменили настройки своего интернет-прокси или испортили свой браузер или конфигурацию сети каким-либо другим способом.
Поэтому я сделайте вывод, что у вас проблема с сетью, это не имеет никакого отношения к вашему коду или паролю.