diff --git a/amfphp.php b/amfphp.php new file mode 100755 index 0000000..34d9947 --- /dev/null +++ b/amfphp.php @@ -0,0 +1,44 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function getUsers() { + # Return a list of all the users + if (!$result=@$this->mysqli->query("SELECT * from users")) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting 'sample' class database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $user_array[] = $row; + } + return($user_array); + } + + function submitUser($user) { + # Escape special characters + $name=$this->mysqli->real_escape_string(trim($user['username'])); + $addr=$this->mysqli->real_escape_string(trim($user['emailaddress'])); + $query = "INSERT INTO users VALUES ('', '$name', '$addr')"; + if (!@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting 'sample' class database INSERT query error: " . $errno); + } + } + +} +?> diff --git a/amfphp/DiscoveryService.php b/amfphp/DiscoveryService.php new file mode 100755 index 0000000..f861e21 --- /dev/null +++ b/amfphp/DiscoveryService.php @@ -0,0 +1,119 @@ +_omit = array(); + $this->_path = dirname(dirname(realpath(__FILE__))) . '/'; + $services = $this->_listServices(); + //Now sort on key + ksort($services); + $out = array(); + foreach($services as $key => $val) + { + if($key == "zzz_default") + { + foreach($val as $key2 => $val2) + { + $out[] = array("label" => $val2[0], "data" => $val2[1]); + } + } + else + { + $children = array(); + foreach($val as $key2 => $val2) + { + $children[] = array("label" => $val2[0], "data" => $val2[1]); + } + $out[] = array("label" => $key, "children" => $children, "open" => true); + } + } + return $out; + } + + /** + * Describe a service and all its methods + * @param $data An object containing 'label' and 'data' keys + */ + function describeService($data) + { + $className = $data['label']; + //Sanitize path + $path = str_replace('..', '', $data['data']); + //Generate the method table from this info + $this->_path = dirname(dirname(realpath(__FILE__))) . DIRECTORY_SEPARATOR; + + $methodTable = MethodTable::create($this->_path . $path . $className . '.php', NULL, $classComment); + return array($methodTable, $classComment); + } + + function _listServices($dir = "", $suffix = "") + { + if($dir == "") + { + $dir = $this->_path; + } + $services = array(); + if(in_array($suffix, $this->_omit)){ return; } + if ($handle = opendir($dir . $suffix)) + { + while (false !== ($file = readdir($handle))) + { + chdir(dirname(__FILE__)); + if ($file != "." && $file != "..") + { + if(is_file($dir . $suffix . $file)) + { + if(strpos($file, '.methodTable') !== FALSE) + { + continue; + } + $index = strrpos($file, '.'); + $before = substr($file, 0, $index); + $after = substr($file, $index + 1); + + if($after == 'php') + { + $loc = "zzz_default"; + if($suffix != "") + { + $loc = str_replace(DIRECTORY_SEPARATOR,'.', substr($suffix, 0, -1)); + } + + if($services[$loc] == NULL) + { + $services[$loc] = array(); + } + $services[$loc][] = array($before, $suffix); + //array_push($this->_classes, $before); + } + + } + elseif(is_dir($dir . $suffix . $file)) + { + $insideDir = $this->_listServices($dir, $suffix . $file . DIRECTORY_SEPARATOR); + if(is_array($insideDir)) + { + $services = $services + $insideDir; + } + } + } + } + }else{ + //echo("error"); + } + closedir($handle); + return $services; + } +} +?> diff --git a/friends.php b/friends.php new file mode 100755 index 0000000..df29344 --- /dev/null +++ b/friends.php @@ -0,0 +1,34 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function getFriends($data) { + $uid = $data['uid']; + $query = "SELECT friends FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + } +?> diff --git a/megapod.php b/megapod.php new file mode 100755 index 0000000..a723eb6 --- /dev/null +++ b/megapod.php @@ -0,0 +1,74 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function getPodz() { + $query = "SELECT * FROM podz WHERE pid > 100 ORDER BY podName"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query [$query] error: " . $errno); + } + + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + + return($return_array); + } + + function getCats() { + $query = "SELECT categoryName,categoryID + FROM categories + ORDER BY categoryName"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function searchPodz($data) { + $query = "SELECT * + FROM podz + WHERE podName like '%$data%' + OR podDescription like '%$data%' + OR podMetaData like '%$data%' + AND pid > 100 + ORDER BY podName"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + } +?> diff --git a/podmail.php b/podmail.php new file mode 100755 index 0000000..fff0092 --- /dev/null +++ b/podmail.php @@ -0,0 +1,91 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + #$user = "podz@domainatlantic.com"; + #$pass = "temp123"; + #$this->imap_server = "{mail.domainatlantic.com:143}"; + #$this->conn = @imap_open($this->imap_server, $user, $pass); + } + + function makeFolder($fName) { + if ($fName == "Inbox") + return("INBOX"); + else + return("INBOX." . $fName); + } + + function getMail($data) { + $imapServer = "{" . IMAP_SERVER . ":143}" . $this->makeFolder($data['folder']); + $conn = @imap_open($imapServer,IMAP_USER,IMAP_PASS); + + $headers = @imap_headers($conn); + $numEmails = sizeof($headers); + + for ($i = 1; $i < $numEmails+1; $i++) { + $mailHeader = @imap_headerinfo($conn, $i); + $from = $mailHeader->fromaddress; + $subject = strip_tags($mailHeader->subject); + $date = $mailHeader->date; + $return_array[] = array('id' => $i, 'from' => $from,'subject' => $subject,'date' => $date); + } + + if ($numEmails == 0x0) + $return_array[] = array('a' => 'b'); + + return($return_array); + } + + function getBody($data) { + $imapServer = "{" . IMAP_SERVER . ":143}" . $this->makeFolder($data['folder']); + $conn = @imap_open($imapServer,IMAP_USER,IMAP_PASS); + + //$body = nl2br(strip_tags(imap_body($this->conn, $data['id']))); + $body = imap_body($conn,$data['id']); + return($body); + } + + function getFolders() { + $imapServer = "{" . IMAP_SERVER . ":143}"; + + $conn = @imap_open($imapServer,IMAP_USER,IMAP_PASS); + + $list = imap_getmailboxes($conn,$imapServer, "*"); + sort($list); + + $retVal = "<>"; + + foreach ($list as $key => $val) { + $fn = ltrim(str_replace($imapServer . "INBOX","",imap_utf7_decode($val->name)),"."); + if ($fn == "") + $retVal .= "\n"; + else { + $retVal .= "\n"; + } + $prev = $fn; + } + $retVal .= ""; + + return($retVal); + } + + } +?> diff --git a/podz.php b/podz.php new file mode 100755 index 0000000..d440f7a --- /dev/null +++ b/podz.php @@ -0,0 +1,150 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function userAuth($data) { + $username = $data['username']; + $password = $data['password']; + $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function getView($uid) { + $query = "SELECT viewXML FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function getFriends($uid) { + $query = "SELECT friendsXML FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + + function updateView($data) { + $uid = $data['uid']; + $viewXML = $data['viewXML']; + $query = "UPDATE users SET viewXML = '$viewXML' WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + return(null); + } + + function getPublicView($username) { + $query = "SELECT viewXML FROM users WHERE username = '$username'"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + function getPortal($pid) { + $query = "SELECT portalXML,portalName FROM tmpP WHERE pid = $pid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function cmpMail($data) { + $query = "SELECT * FROM users WHERE uid = $data[mailTo]"; + $result = @$this->mysqli->query($query); + $userInfo = $result->fetch_array(MYSQLI_ASSOC); + + $name = $userInfo['firstName'] . " " . $userInfo['lastName']; + + switch($data['pid']) { + case -1: + $podName = "Mega Pod"; + break; + case -3: + $podName = "Friends Pod"; + break; + default: + $query = "SELECT * FROM podz WHERE pid = $data[pid]"; + $result = @$this->mysqli->query($query); + $podInfo = $result->fetch_array(MYSQLI_ASSOC); + $podName = $podInfo['podName']; + break; + } + + return(array(array('mailTo' => $name,'toUID' => $data['mailTo'],'podName' => $podName,'pid' => $data['pid']))); + } + + function getPod($pid) { + $query = "SELECT * FROM podz WHERE pid = $pid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: [$query] " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function sendMail($data) { + $query = "SELECT username FROM users WHERE uid = $data[toUID]"; + $result = $this->mysqli->query($query); + $userInfo = $result->fetch_array(MYSQLI_ASSOC); + + $email = $userInfo['username'] . "@podz.ubixos.com"; + $from = "From: " . $data['fromName'] . " <" . $data['fromEmail'] . "@cupid.ubixos.com>"; + mail($email,$data['subject'],$data['message'],$from); + + return; + } + + + } +?> diff --git a/podz_mail.php b/podz_mail.php new file mode 100755 index 0000000..735eb59 --- /dev/null +++ b/podz_mail.php @@ -0,0 +1,63 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function getMail($data) { + $uid = $data['uid']; + $boxid = $data['boxid']; + $query = "SELECT * FROM podmail WHERE uid = $uid AND boxid = $boxid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function updateMail($data) { + $bdata = $data['data']; + $uid = $data['uid']; + $boxid = $data['boxid']; + $query = "UPDATE podmail SET data = '$bdata' WHERE uid = $uid AND boxid = $boxid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + return(null); + } + + function getFriends($data) { + $uid = $data['uid']; + $query = "SELECT friends FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + + } +?> diff --git a/tuve.inc b/tuve.inc new file mode 100755 index 0000000..945aa2e --- /dev/null +++ b/tuve.inc @@ -0,0 +1,6 @@ + diff --git a/tuve.php b/tuve.php new file mode 100755 index 0000000..8a675d0 --- /dev/null +++ b/tuve.php @@ -0,0 +1,270 @@ +mysqli = new mysqli(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); + # Check MySQL connection + if (mysqli_connect_errno()) { + # Dont use die (Fatal Error), return useful info to the client + trigger_error("AMFPHP Remoting 'sample' class could not connect: " . mysqli_connect_error()); + } + } + + function sendFB($data) { + // To send HTML mail, the Content-type header must be set + $headers = 'MIME-Version: 1.0' . "\r\n"; + $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; + $headers .= 'From: TUve Feedback ' . "\r\n"; + + mail("Christopher Olsen ,Mark Iuzzolino ",$data['subject'] . " - " . $data['username'],$data['message'],$headers); + } + + function getChans() { + $query = "SELECT channel FROM channels"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database [$query] query error: " . $errno); + } + + if ($result->num_rows == 0) { + $return_array[] = array('channel' => '#General'); + } + else { + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + } + + return($return_array); + } + + + function getInfo($data) { + $query = "SELECT thumb,v.artist,title,sbio FROM videos v INNER JOIN artists a ON v.aid = a.aid WHERE vid = $data"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database [$query] query error: " . $errno); + } + + if ($result->num_rows == 0) { + $return_array[] = array('thumb' => 'UbixCube.swf','artist' => 'Unknown','title' => 'Unknown'); + } + else { + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + } + + return($return_array); + } + + function getFullInfo($data) { + $query = "SELECT thumb,v.artist,title,bio,photo,description FROM videos v INNER JOIN artists a ON v.aid = a.aid WHERE v.vid = $data"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database [$query] query error: " . $errno); + } + if ($result->num_rows == 0) { + + $query = "SELECT thumb,artist,title,'NA' as bio,'/images/UbixCube.swf' AS photo FROM videos WHERE vid = $data"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database [$query] query error: " . $errno); + } + + + } + + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + + function getNextMovie() { + $query = "SELECT file,artist,title FROM videos"; + if (!$result = @$this->mysqli->query($query)) { + $errno = $this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + + $rn = rand(0,$result->num_rows); + for ($i=0;$i < $rn;$i++) + $row = $result->fetch_assoc(); + + return($row); + } + + function findSongs($data) { + $skey = $data['skey']; + $srating = $data['srating']; + $sclass = $data['sclass']; + $exclusive = $data['exclusive']; + + $query = "SELECT * FROM videos WHERE (artist like \"%$skey%\" OR title like \"%$skey%\") AND rating <= $srating"; + if ($sclass != 0) + $query .= " AND classification = $sclass"; + if ($exclusive != 0) + $query .= " AND oid = $exclusive"; + + $query .= " ORDER BY artist"; + + if (!$result = @$this->mysqli->query($query)) { + $errno = $this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database [$query] query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + if ($row['length'] > 3600) + $row['length'] = date("H:i:s",$row['length']); + else + $row['length'] = date("i:s",$row['length']); + $return_array[] = $row; + } + return($return_array); + } + + function userAuth($data) { + $username = $data['username']; + $password = $data['password']; + $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function getView($uid) { + $query = "SELECT viewXML FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function getFriends($uid) { + $query = "SELECT friendsXML FROM users WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + + function updateView($data) { + $uid = $data['uid']; + $viewXML = $data['viewXML']; + $query = "UPDATE users SET viewXML = '$viewXML' WHERE uid = $uid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + return(null); + } + + function getPublicView($username) { + $query = "SELECT viewXML FROM users WHERE username = '$username'"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + function getPortal($pid) { + $query = "SELECT portalXML,portalName FROM tmpP WHERE pid = $pid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function cmpMail($data) { + $query = "SELECT * FROM users WHERE uid = $data[mailTo]"; + $result = @$this->mysqli->query($query); + $userInfo = $result->fetch_array(MYSQLI_ASSOC); + + $name = $userInfo['firstName'] . " " . $userInfo['lastName']; + + switch($data['pid']) { + case -1: + $podName = "Mega Pod"; + break; + case -3: + $podName = "Friends Pod"; + break; + default: + $query = "SELECT * FROM podz WHERE pid = $data[pid]"; + $result = @$this->mysqli->query($query); + $podInfo = $result->fetch_array(MYSQLI_ASSOC); + $podName = $podInfo['podName']; + break; + } + + return(array(array('mailTo' => $name,'toUID' => $data['mailTo'],'podName' => $podName,'pid' => $data['pid']))); + } + + function getPod($pid) { + $query = "SELECT * FROM podz WHERE pid = $pid"; + if (!$result=@$this->mysqli->query($query)) { + $errno=$this->mysqli->errno; + $this->mysqli->close(); + trigger_error("AMFPHP Remoting database SELECT query error: [$query] " . $errno); + } + while ($row = $result->fetch_assoc()) { + $return_array[] = $row; + } + return($return_array); + } + + function sendMail($data) { + $query = "SELECT username FROM users WHERE uid = $data[toUID]"; + $result = $this->mysqli->query($query); + $userInfo = $result->fetch_array(MYSQLI_ASSOC); + + $email = $userInfo['username'] . "@podz.ubixos.com"; + $from = "From: " . $data['fromName'] . " <" . $data['fromEmail'] . "@cupid.ubixos.com>"; + mail($email,$data['subject'],$data['message'],$from); + + return; + } + + + } +?>