From: Meik S. <acy...@ph...> - 2009-08-30 11:10:59
|
Author: acydburn Date: Sun Aug 30 12:10:12 2009 New Revision: 10063 Log: script to update email hashes (they are not strings btw, but BINT) Added: branches/phpBB-3_0_0/phpBB/develop/update_email_hash.php Added: branches/phpBB-3_0_0/phpBB/develop/update_email_hash.php ============================================================================== *** branches/phpBB-3_0_0/phpBB/develop/update_email_hash.php (added) --- branches/phpBB-3_0_0/phpBB/develop/update_email_hash.php Sun Aug 30 12:10:12 2009 *************** *** 0 **** --- 1,57 ---- + <?php + /** + * Corrects user_email_hash values if DB moved from 32-bit system to 64-bit system or vice versa. + * The CRC32 function in PHP generates different results for both systems. + * @PHP dev team: no, a hexdec() applied to it does not solve the issue. And please document it. + * + */ + die("Please read the first lines of this script for instructions on how to enable it"); + + set_time_limit(0); + + define('IN_PHPBB', true); + $phpbb_root_path = './../'; + $phpEx = substr(strrchr(__FILE__, '.'), 1); + include($phpbb_root_path . 'common.' . $phpEx); + + // Start session management + $user->session_begin(); + $auth->acl($user->data); + $user->setup(); + + $start = request_var('start', 0); + $num_items = 1000; + + echo '<br />Updating user email hashes' . "\n"; + + $sql = 'SELECT user_id, user_email + FROM ' . USERS_TABLE . ' + ORDER BY user_id ASC'; + $result = $db->sql_query($sql); + + $echos = 0; + while ($row = $db->sql_fetchrow($result)) + { + $echos++; + + $sql = 'UPDATE ' . USERS_TABLE . " + SET user_email_hash = '" . $db->sql_escape(phpbb_email_hash($row['user_email'])) . "' + WHERE user_id = " . (int) $row['user_id']; + $db->sql_query($sql); + + if ($echos == 200) + { + echo '<br />'; + $echos = 0; + } + + echo '.'; + flush(); + } + $db->sql_freeresult($result); + + echo 'FINISHED'; + + // Done + $db->sql_close(); + ?> \ No newline at end of file |