~vcs-imports/b2evolution/trunk

« back to all changes in this revision

Viewing changes to blogs/htsrv/async.php

  • Committer: sam2kb
  • Date: 2010-10-18 23:47:46 UTC
  • Revision ID: vcs-imports@canonical.com-20101018234746-jnd23nzo2rgm6gco
doc

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 *
25
25
 * @package evocore
26
26
 *
27
 
 * @version $Id: async.php,v 1.59 2010/10/17 23:12:57 sam2kb Exp $
 
27
 * @version $Id: async.php,v 1.60 2010/10/18 23:47:46 sam2kb Exp $
28
28
 */
29
29
 
30
30
 
133
133
                // fp> TODO: is there a permission to just 'view' users? It would be appropriate here
134
134
                $current_User->check_perm( 'users', 'edit', true );
135
135
 
136
 
                $text = trim( param( 'q', 'string', '' ) );
 
136
                $text = trim( urldecode( param( 'q', 'string', '' ) ) );
137
137
 
 
138
                /**
 
139
                 * sam2kb> The code below decodes percent-encoded unicode string produced by Javascript "escape"
 
140
                 * function in format %uxxxx where xxxx is a Unicode value represented as four hexadecimal digits.
 
141
                 * Example string "MAMA" (cyrillic letters) encoded with "escape": %u041C%u0410%u041C%u0410
 
142
                 * Same word encoded with "encodeURI": %D0%9C%D0%90%D0%9C%D0%90
 
143
                 *
 
144
                 * jQuery hintbox plugin uses "escape" function to encode URIs
 
145
                 *
 
146
                 * More info here: http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations
 
147
                 */
138
148
                if( preg_match( '~%u[0-9a-f]{3,4}~i', $text ) && version_compare(PHP_VERSION, '5', '>=') )
139
149
                {       // Decode UTF-8 string (PHP 5 and up)
140
 
                        $text = preg_replace( '~%u([0-9a-f]{3,4})~i', '&#x\\1;', urldecode($text) );
 
150
                        $text = preg_replace( '~%u([0-9a-f]{3,4})~i', '&#x\\1;', $text );
141
151
                        $text = html_entity_decode( $text, ENT_COMPAT, 'UTF-8' );
142
152
                }
143
153
 
146
156
                        $SQL = new SQL();
147
157
                        $SQL->SELECT( 'user_login' );
148
158
                        $SQL->FROM( 'T_users' );
149
 
                        $SQL->WHERE( 'user_login LIKE \''.$text.'%\'' );
 
159
                        $SQL->WHERE( 'user_login LIKE "'.$DB->escape($text).'%"' );
150
160
                        $SQL->LIMIT( '10' );
151
161
                        $SQL->ORDER_BY('user_login');
152
162
 
335
345
 
336
346
/*
337
347
 * $Log: async.php,v $
 
348
 * Revision 1.60  2010/10/18 23:47:46  sam2kb
 
349
 * doc
 
350
 *
338
351
 * Revision 1.59  2010/10/17 23:12:57  sam2kb
339
352
 * Correctly decode utf-8 logins
340
353
 *