амперсанд в проблеме с паролем - 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): Неизвестная ошибка". при попытке подключиться.

Как мне избежать этого?

Джонси

Author: Gumbo, 2010-08-23

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 в качестве своего веб-браузера, которые получают ошибку, когда они изменили настройки своего интернет-прокси или испортили свой браузер или конфигурацию сети каким-либо другим способом.

Поэтому я сделайте вывод, что у вас проблема с сетью, это не имеет никакого отношения к вашему коду или паролю.

 5
Author: Bill Karwin, 2010-08-23 16:39:49