|
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
|