<?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();
