Ejemplo n.º 1
0
        unset($user['chat']);
    }
    unset($user['olFrns']);
    $spv = shm_put_var($shmId, $key, $user);
    $sr = sem_release($semId);
    $sd = shm_detach($shmId);
    //$shr = shm_remove($shmId);
    $userStr = serialize($user);
    $f = fopen("{$_SERVER['DOCUMENT_ROOT']}/userFiles/" . $_SESSION['username'] . "/live.shm", 'r+');
    $fw = fwrite($f, $userStr);
    $fc = fclose($f);
}
//close live tables
if (isset($_SESSION['tables'])) {
    foreach ($_SESSION['tables'] as $tid => $value) {
        $liveDBTable = getLiveTable($tid);
        foreach ($liveDBTable['dbtUpdates'] as $key => &$update) {
            if ($update['data']['swallowedBy'][$_SESSION['uid']]) {
                unset($update['data']['swallowedBy'][$_SESSION['uid']]);
            }
            if (count($sdbtu['data']['swallowedBy']) == count($liveDBTable['usersData']) - 1) {
                unset($liveDBTable['dbtUpdates'][$key]);
            }
        }
        if ($liveDBTable['usersData'][$_SESSION['uid']] and count($liveDBTable['usersData']) == 1) {
            $liveDBTable = null;
            closeLiveTable($tid, $liveDBTable);
            removeLiveTable($tid);
        } else {
            unset($liveDBTable['usersData'][$_SESSION['uid']]);
            closeLiveTable($tid, $liveDBTable);
Ejemplo n.º 2
0
function updateLiveTable(&$liveDBTable, &$dbtUpdate, $updateOp)
{
    $dbTable = $liveDBTable['name'];
    if ($dbtUpdate['op'] and $updateOp) {
        foreach ($dbtUpdate['op'] as $opid => $op) {
            if ($opid == 'renametableName') {
                $newName = $dbtUpdate['op']['renametableName']['newName'];
                removeLiveTable($dbTable);
                getLiveTable($newName);
                $liveDBTable['name'] = $newName;
            } elseif ($opid == 'renamecolName') {
                foreach ($dbtUpdate['op']['renamecolName'] as $colName => $newProps) {
                    $newName = $newProps['newName'];
                    foreach ($liveDBTable['cells']['tHR'] as $cid => $col) {
                        if ($cid == $colName) {
                            $tHR[$newName] = $col;
                            $tHR[$newName]['Type'] = $newProps['Type'];
                            $tHR[$newName]['Size'] = $newProps['Size'];
                            $tHR[$newName]['Null'] = $newProps['Null'];
                            $tHR[$newName]['Default'] = $newProps['Default'];
                            //$tHR[$newName]['Key'] = $newProps['Key'];
                            //$tHR[$newName]['Comment'] = $dbtUpdate['cells']['tHR'][$newName]['Comment'];
                            //$tHR[$newName]['Extra'] = $dbtUpdate['cells']['tHR'][$newName]['Extra'];
                        } else {
                            $tHR[$cid] = $col;
                        }
                    }
                    $liveDBTable['cells']['tHR'] =& $tHR;
                    unset($row);
                    foreach ($liveDBTable['cells'] as $rid => &$row) {
                        if ($row[$colName] && $rid != 'tHR') {
                            $row[$newName] =& $row[$colName];
                            unset($row[$colName]);
                        }
                    }
                }
            } elseif ($opid == 'delTable') {
                if ($op) {
                    $liveDBTable = null;
                    removeLiveTable($dbTable);
                }
            } elseif ($opid == 'delRow') {
                foreach ($dbtUpdate['op']['delRow'] as $rid => $info) {
                    unset($liveDBTable['cells'][$rid]);
                }
            } elseif ($opid == 'updateFormula') {
            } elseif ($opid == 'delColumn') {
                $columnName = $dbtUpdate['op']['delColumn']['columnName'];
                foreach ($liveDBTable['cells'] as $rid => &$row) {
                    unset($row[$columnName]);
                }
            } elseif ($opid == 'insColumn') {
                foreach ($dbtUpdate['op']['insColumn'] as $columnName => $value) {
                    $cols = $liveDBTable['cells']['tHR'];
                    $liveDBTable['cells']['tHR'] = array();
                    foreach ($cols as $colName => &$col) {
                        $liveDBTable['cells']['tHR'][$colName] = $col;
                        if ($colName == $value['after']) {
                            $liveDBTable['cells']['tHR'][$columnName]['Type'] = $dbtUpdate['cells']['tHR'][$columnName]['Type'];
                            $liveDBTable['cells']['tHR'][$columnName]['Size'] = $dbtUpdate['cells']['tHR'][$columnName]['Size'];
                            $liveDBTable['cells']['tHR'][$columnName]['Null'] = $dbtUpdate['cells']['tHR'][$columnName]['Null'];
                            $liveDBTable['cells']['tHR'][$columnName]['Default'] = $dbtUpdate['cells']['tHR'][$columnName]['Default'];
                            $liveDBTable['cells']['tHR'][$columnName]['Key'] = $dbtUpdate['cells']['tHR'][$columnName]['Key'];
                            //$liveDBTable['cells']['tHR'][$columnName]['Comment'] = $dbtUpdate['cells']['tHR'][$columnName]['Comment'];
                            //$liveDBTable['cells']['tHR'][$columnName]['Extra'] = $dbtUpdate['cells']['tHR'][$columnName]['Extra'];
                        }
                    }
                }
            }
        }
    }
    foreach ($dbtUpdate['cells'] as $rid => &$row) {
        foreach ($row as $cid => &$cell) {
            foreach ($cell as $pid => $prop) {
                $liveDBTable['cells'][$rid][$cid][$pid] = $prop;
            }
        }
    }
}
Ejemplo n.º 3
0
     } elseif ($cQuery[strpos($cQuery, $filters[$i], $start) - 1] == '$' and $cQuery[strpos($cQuery, $filters[$i], $start) - 2] == '@' and !$sString) {
         $sString = $filters[$i];
         $matchCase = true;
     } else {
         echo 'More than one filter of single type. ~&|~';
         die;
     }
     $filterCount++;
     $start += strlen($filters[$i]);
 }
 /* $dbtKey = ftok("$root/dbTableData/$dbTable", 'c');
    $dbtSemId = sem_get($dbtKey);
    $dbtShmId = shm_attach($dbtKey,1000000);
    $sa = sem_acquire($dbtSemId);
    $liveDBTable = shm_get_var($dbtShmId, $dbtKey); */
 $liveDBTable = getLiveTable($dbTable);
 $cQuery = str_replace('CCZZCC', ':', str_replace('ZZCCZZ', '?', $cQuery));
 if (!$liveDBTable) {
     $liveDBTable['liveD'] = FALSE;
     $query = "SHOW FULL COLUMNS FROM `" . $dbTable . "`";
     $result = mysql_query($query, $dbc);
     $error1 = mysql_error($dbc);
     if ($error1 and authorizeTransit($_SESSION['adminLevel'], 'Zz0')) {
         require '../adminScripts/db_login.php';
         $query = "SHOW FULL COLUMNS FROM `" . $dbTable . "`";
         $result = mysql_query($query, $dbc);
         $error1 = mysql_error($dbc) ? TRUE : FALSE;
         if (!$error1) {
             $liveDBTable['adminTable'] = $adminTable = true;
         }
     }