2010-08-23 17 views
5

Prawie co mówi o tytule. Próbuję połączyć się z bazą danych Microsoft SQL Server z hasłem, który zawiera ampersanda:ampersand w problemie z hasłem - php

<?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()); 
?> 

Na ewentualnie pokrewnej materii: Dostaję „Błąd 101 (net :: ERR_CONNECTION_RESET): Nieznany błąd. "Wiadomość, gdy próbuję się połączyć.

Jak mogę uciec?

Jonesy

+4

Dlaczego musisz uciec? –

+2

Podaj nam metodę, której używasz do łączenia się z DB, i do jakiego rodzaju DB ... – canni

+0

zaktualizowałem moje pytanie – iamjonesy

Odpowiedz

5

byłby tylko trzeba uciec się ampersanda na żądanie HTTP ciąg jeśli przejdą ją żądanie GET, który nigdy nie należy robić dlatego, że przekazuje zwykłego tekstu hasła w adresie URL. Użyj żądania POST i protokołu HTTPS podczas wysyłania poufnych danych.

Nie musisz uciec od znaku ampersand w zapytaniu SQL. To jest całkowicie poprawny SQL:

SELECT ... FROM Accounts WHERE user = 'Jonesy' AND password = 'M&Ms are tasty' 

Ale ja również polecam nauki korzystania parametry zapytania:

SELECT ... FROM Accounts WHERE username = ? AND password = ? 

Wtedy nie musisz pytać, jak znowu uciec z tego znaku lub ten znak. Parametr zapytania SQL to najlepszy sposób na wysłanie wartości dynamicznej o wartości bez konieczności cytowania lub unikania.


Re zaktualizowanym pytanie:

Poszukiwanie tego komunikatu o błędzie prowadzi mnie do wielu innych ludzi, którzy używają Google Chrome jako przeglądarkę internetową, która pojawia się błąd, gdy zmieniły swoje ustawienia internetowego serwera proxy, lub wkręcili swoją przeglądarkę lub konfigurację sieciową w jakiś inny sposób.

Podsumowując, masz problem z siecią, nie ma on nic wspólnego z kodem ani hasłem.

Powiązane problemy