2009-05-01 14 views
6

sto sfuggire tutti i parametri di stringa che ricevo da un modulo php come questo:mysql_real_escape_string() rimuove completamente stringa

$usr_name = mysql_real_escape_string($_REQUEST['usr_name']); 

per evitare alcuni problemi con SQL Injection. Ma quando torno indietro dalla funzione, non finisco con niente.

Anche io continuo a ricevere questo strano avvertimento nel mio ceppo PHP:

PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in /hermes/bosweb/web279/b2798/ipw.bankingforms/public_html/formAckResponse_controller.php on line 39 

L'host utilizza: PHP versione 4.4.7

risposta

17

Da PHP.net:

Nota: A MySQL è necessario il collegamento prima di utilizzare mysql_real_escape_string() altrimenti un errore di il livello E_WARNING è generato e viene restituito FALSE. Se link_identifier non è definito, viene utilizzata l'ultima connessione MySQL .

In altre parole, si dovrà necessario per connettersi al database MySQL tramite mysql_connect() o mysql_pconnect() prima di poter utilizzare questa funzione.

+0

Ho saputo farlo, ma non ho mai saputo perché, esattamente. La funzione viene eseguita sul lato del server di database? O si tratta semplicemente di una limitazione API? – ryandenki

+2

Viene eseguito lato server, poiché l'escaping di MySQL dipende dal set di caratteri attualmente in uso dal server. – hbw

+0

grazie, è bello saperlo. – ryandenki

Problemi correlati