install/schemas/upgrade/1125.php
author Dan Fuhry <dan@enanocms.org>
Mon, 05 Jul 2010 19:52:10 -0400
changeset 1261 beb0da036222
parent 1259 49db7495f6b8
permissions -rw-r--r--
DiffieHellman: gracefully handle platforms that fail the sha256 self test, currently only known to be PowerPC. Added support for PHP's built-in hash functions (they were added in 5.1.2) and use them in lieu of the built-in sha256 implementation when available.

<?php

// Migrate usernames in the logs table

global $db, $session, $paths, $template, $plugins; // Common objects

$q = $db->sql_query('SELECT user_id, username FROM ' . table_prefix . 'users;');
if ( !$q )
  $db->_die();

$map = array();
while($row = $db->fetchrow())
{
  $map[ $row['username'] ] = $row['user_id'];
}
$db->free_result();

$q = $db->sql_query('SELECT author FROM ' . table_prefix . 'logs WHERE author_uid = 1;');
if ( !$q )
  $db->_die();

$updated = array();

while ( $row = $db->fetchrow($q) )
{
  if ( isset($map[ $row['author'] ]) && !is_valid_ip($row['author']) && !in_array($row['author'], $updated) )
  {
    $author = $db->escape($row['author']);
    $sql = "UPDATE " . table_prefix . "logs SET author_uid = {$map[ $row['author'] ]} WHERE author = '$author';";
    if ( !$db->sql_query($sql) )
      $db->_die();
    $updated[] = $row['author'];
  }
}