Mailinglisten-Archive |
Hallo > ich würde da eher auf diese Funktion setzen: > http://de2.php.net/manual/en/function.mysql-real-escape-string.php Dazu hatte ich mir mal ein Funktion zusammengesucht (phpbar.de und php.net waren die Quellen): /** * Variable für sichere Verwendung quotieren * * ACHTUNG! * Damit mysql_real_escape_string selbstständig eine Verbindungskennung * finden kann, muss eine Verbindung zur DB ersteinmal bestehen. * Dies ist bei der Verwendung von PHPLib standartmäßig nicht der Fall. * Hier erfolgt die Verbindung erst mit dem $db->query-Aufruf. * Um das zu umgehen, muss man die Verbindung vor der Verwendung dieser * Funktion explizit herstellen: * $db = new DB_Example; // Erzeuge ein Datenbankobjekt * $db->connect(); // stelle Verbindung zur DB her * * @param string zu quotierende Variable * @param string DB-Verbindungskennung (falls vorhanden) * @see URL http://www.php.net/mysql_real_escape_string */ function escape_string($string, $dbcon = false) { // stripslashes, falls nötig if (get_magic_quotes_gpc()) { $string = stripslashes($string); } // mysql_escape_string funktioniert nicht vor PHP-Version 4.3.0 if (version_compare (phpversion(),"4.3.0") == '-1') { return (mysql_escape_string ($string)); } elseif ($dbcon) { // wurde eine MySQL-Verbindungskennung übergeben, verwende diese return (mysql_real_escape_string ($string, $dbcon)); } else { // Ohne MySQL-Verbindungskennung gehts auch; dann versucht // mysql_real_escape_string selbst eine Verbindungskennung zu finden. return (mysql_real_escape_string ($string)); } } Das im SQL eingebunden würde so aussehen: $sql = 'SELECT COUNT(*) as eingeloggt FROM users WHERE username = "'.escape_string($_POST['username']).'" AND password = MD5("'.escape_string($_POST['password']).'")'; $result = mysql_query($sql); -- Sven
php::bar PHP Wiki - Listenarchive