Esempio n. 1
0
    /**
     *Errors before the database connection has been made
     */
    function startUpError($msg, $title)
    {
        if (!defined('_CHARSET')) {
            define('_CHARSET', 'UTF-8');
        }
        if (!defined('_HTML_XML_NAME_SPACE_AND_LANG_CODE')) {
            define('_HTML_XML_NAME_SPACE_AND_LANG_CODE', 'xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us"');
        }
        sendContentType('text/html', '', _CHARSET);
        ?>
<html <?php 
        echo _HTML_XML_NAME_SPACE_AND_LANG_CODE;
        ?>
>
	<head><meta http-equiv="Content-Type" content="text/html; charset=<?php 
        echo _CHARSET;
        ?>
" />
	<title><?php 
        echo htmlspecialchars($title, ENT_QUOTES);
        ?>
</title></head>
	<body>
		<h1><?php 
        echo htmlspecialchars($title, ENT_QUOTES);
        ?>
</h1>
		<?php 
        echo $msg;
        ?>
 
	</body>
</html>
<?php 
        exit;
    }
Esempio n. 2
0
<?php

$ROOTDIR = '..';
require "{$ROOTDIR}/base.php";
sendContentType();
openDocument();
?>
<script type="text/javascript">
//<![CDATA[
var playing = false;
var testTimeout = false;

window.onload = function() {
  menuInit();
  initVideo();
  registerKeyEventListener();
  initApp();
  setInstr('Please run all steps in the displayed order. Navigate to the test using up/down, then press OK to start the test. For some tests, you may need to follow some instructions.');
  showVidState();
};
function handleKeyCode(kc) {
  if (kc==VK_UP) {
    menuSelect(selected-1);
    return true;
  } else if (kc==VK_DOWN) {
    menuSelect(selected+1);
    return true;
  } else if (kc==VK_ENTER) {
    var liid = opts[selected].getAttribute('name');
    if (liid=='exit') {
      document.location.href = '../index.php';
Esempio n. 3
0
 function parse($type)
 {
     global $manager, $CONF, $skinid;
     $manager->notify('InitSkinParse', array('skin' => &$this, 'type' => $type));
     $skinid = $this->id;
     // set output type
     sendContentType($this->getContentType(), 'skin', _CHARSET);
     // set skin name as global var (so plugins can access it)
     global $currentSkinName;
     $currentSkinName = $this->getName();
     $contents = $this->getContent($type);
     if (!$contents) {
         // use base skin if this skin does not have contents
         $defskin =& new SKIN($CONF['BaseSkin']);
         $contents = $defskin->getContent($type);
         if (!$contents) {
             echo _ERROR_SKIN;
             return;
         }
     }
     $actions = $this->getAllowedActionsForType($type);
     $manager->notify('PreSkinParse', array('skin' => &$this, 'type' => $type, 'contents' => &$contents));
     $skinid = $this->id;
     // set IncludeMode properties of parser
     PARSER::setProperty('IncludeMode', $this->getIncludeMode());
     PARSER::setProperty('IncludePrefix', $this->getIncludePrefix());
     $handler =& new ACTIONS($type, $this);
     $parser =& new PARSER($actions, $handler);
     $handler->setParser($parser);
     $handler->setSkin($this);
     $parser->parse($contents);
     $manager->notify('PostSkinParse', array('skin' => &$this, 'type' => $type));
     $skinid = $this->id;
 }
Esempio n. 4
0
/**
 * Actually sends the data in the specified file.
 * 
 * 
 * @author Ben Dodson, PHP.net
 * @version 11/11/04
 * @since 11/11/04
 */
function streamFile($path, $name, $limit = false, $resample = "", $download = false, $contentTypeFor = false)
{
    global $always_resample, $allow_resample, $always_resample_rate, $jzUSER;
    // Let's ignore if they abort, that way we'll know when the track stops...
    ignore_user_abort(TRUE);
    $jzSERVICES = new jzServices();
    $jzSERVICES->loadStandardServices();
    $status = false;
    if ($limit === false) {
        $speed_limit = 1 * 1024;
    } else {
        $speed_limit = $limit;
    }
    // limit is passed as a param because we may want to limit it for downloads
    // but not for streaming / image viewing.
    // Also, we may want to write a different function for resampling,
    // but I don't know yet.
    // IF NO SPEED LIMIT:
    // the 'speed_limit' from above is the amount
    // of buffer used while sending the file.
    // but with no speed limit, there is no 'sleep' issued.
    // this makes seeking in a file much faster.
    // Let's get the extension of the real file
    $extArr = explode(".", $path);
    $ext = $extArr[count($extArr) - 1];
    if (!is_file($path) || connection_status() != 0) {
        return false;
    }
    $meta = $jzSERVICES->getTagData($path);
    $do_resample = false;
    if (!isNothing($resample)) {
        $do_resample = true;
    }
    if ($allow_resample == "true" && stristr($always_resample, $ext)) {
        $do_resample = true;
    }
    if ($meta['type'] == "mp3") {
        if (!isNothing($resample) && $resample >= $meta['bitrate']) {
            $do_resample = false;
        }
    }
    if ($download) {
        $do_resample = false;
    }
    // Are they resampling or transcoding?
    if ($do_resample) {
        // Ok, if resampling isn't set let's go with the default
        if ($resample == "") {
            $resample = $always_resample_rate;
        }
        // Now let's load up the resampling service
        $jzSERVICES = new jzServices();
        $jzSERVICES->loadService("resample", "resample");
        $jzSERVICES->resampleFile($path, $name, $resample);
        // Now let's unset what they are playing
        $be = new jzBackend();
        $be->unsetPlaying($_GET['jz_user'], $_GET['sid']);
        return;
    }
    // Now we need to know if this is an ID3 image or not
    // First let's get their limit
    $limit = "7";
    $size = filesize($path);
    $range = getContentRange($size);
    if ($range !== false) {
        $range_from = $range[0];
        $range_to = $range[1];
    } else {
        $range_from = 0;
        $range_to = $size - 1;
    }
    $ps3 = false;
    $allheaders = getallheaders();
    if (isset($allheaders['User-Agent']) && $allheaders['User-Agent'] == "PLAYSTATION 3") {
        $ps3 = true;
    }
    if ($ps3) {
        // ps3 is picky and bizarre.
        if ($range_from > $size) {
            // This happens if the ps3 thinks the file
            // is larger than it is, and sending a
            // This is supposed to be a read of the id3v1 tag at
            // the end of a file (128 bytes), or the lyrics tag
            // (138 bytes)
            $requested = $range_to - $range_from + 1;
            $range_from = $size - $requested;
            $range_to = $size - 1;
            header("HTTP/1.1 206 Partial content");
        } else {
            if ($range_from == 0 && $size == $range_to + 1) {
                header("HTTP/1.1 200 OK");
            } else {
                header("HTTP/1.1 206 Partial content");
                header("CONTENT-RANGE: bytes {$range_from}-{$range_to}/{$size}");
            }
        }
        header("transferMode.dlna.org: Streaming");
        header("contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000");
        header("Accept-Ranges: bytes");
        header("Connection: keep-alive");
        header("Content-Length: " . ($size - $range_from));
    } else {
        if ($range === false) {
            // Content length has already been sent
            header("Content-Length: " . (string) $size);
        } else {
            header("HTTP/1.1 206 Partial Content");
            header("Accept-Range: bytes");
            header("Content-Length: " . ($size - $range_from));
            header("Content-Range: bytes {$range_from}" . "-" . $range_to . "/{$size}");
        }
    }
    if ($contentTypeFor !== false) {
        sendContentType($contentTypeFor);
    }
    if (!$ps3) {
        header("Content-Disposition: inline; filename=\"" . $name . "\"");
        header("Expires: " . gmdate("D, d M Y H:i:s", mktime(date("H") + 2, date("i"), date("s"), date("m"), date("d"), date("Y"))) . " GMT");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime($path)) . " GMT");
        header("Cache-Control: no-cache, must-revalidate");
        header("Pragma: no-cache");
    }
    if ($file = fopen($path, 'rb')) {
        @set_time_limit(0);
        fseek($file, $range_from);
        while (!feof($file) and connection_status() == 0 and ($cur_pos = ftell($file)) < $range_to + 1) {
            print fread($file, min(1024 * $speed_limit, $range_to + 1 - $cur_pos));
            flush();
            if ($limit !== false) {
                sleep(1);
            }
        }
        $status = connection_status() == 0;
        fclose($file);
        @set_time_limit(30);
    }
    // Now let's unset what they are playing
    $be = new jzBackend();
    $be->unsetPlaying($_GET['jz_user'], $_GET['sid']);
    return $status;
}
Esempio n. 5
0
 * @license http://nucleuscms.org/license.txt GNU General Public License
 * @copyright Copyright (C) 2002-2007 The Nucleus Group
 * @version $Id: media.php,v 1.8.2.1 2007-09-07 07:36:44 kimitake Exp $
 * $NucleusJP: media.php,v 1.8 2007/03/20 19:32:19 kmorimatsu Exp $
 *
 */
$CONF = array();
// defines how much media items will be shown per page. You can override this
// in config.php if you like. (changing it in config.php instead of here will
// allow your settings to be kept even after a Nucleus upgrade)
$CONF['MediaPerPage'] = 10;
// include all classes and config data
require '../../../../../config.php';
include $DIR_LIBS . 'MEDIA.php';
// media classes
sendContentType('application/xhtml+xml', 'media');
// user needs to be logged in to use this
if (!$member->isLoggedIn()) {
    media_loginAndPassThrough();
    exit;
}
// check if member is on at least one teamlist
$query = 'SELECT * FROM ' . sql_table('team') . ' WHERE tmember=' . $member->getID();
if ($manager->pluginInstalled('NP_SQLite')) {
    $teams = nucleus_mysql_query($query);
    if (nucleus_mysql_num_rows($teams) == 0) {
        media_doError(_ERROR_DISALLOWEDUPLOAD);
    }
} else {
    $teams = sql_query($query);
    if (sql_num_rows($teams) == 0) {
Esempio n. 6
0
            array_push($aFound, $fileDesc);
        }
    }
    if (@is_writable('../config.php')) {
        array_push($aFound, _ERRORS_CONFIGPHP);
    }
    if (sizeof($aFound) > 0) {
        startUpError(_ERRORS_STARTUPERROR1 . implode($aFound, '</li><li>') . _ERRORS_STARTUPERROR2, _ERRORS_STARTUPERROR3);
    }
}
$bNeedsLogin = false;
$bIsActivation = in_array($action, array('activate', 'activatesetpwd'));
if ($action == 'logout') {
    $bNeedsLogin = true;
}
if (!$member->isLoggedIn() && !$bIsActivation) {
    $bNeedsLogin = true;
}
// show error if member cannot login to admin
if ($member->isLoggedIn() && !$member->canLogin() && !$bIsActivation) {
    $error = _ERROR_LOGINDISALLOWED;
    $bNeedsLogin = true;
}
if ($bNeedsLogin) {
    setOldAction($action);
    // see ADMIN::login() (sets old action in POST vars)
    $action = 'showlogin';
}
sendContentType('text/html', 'admin-' . $action);
$admin = new ADMIN();
$admin->action($action);
Esempio n. 7
0
/**
 * Sends the actual media file
 * and possibly resamples it.
 * 
 * 
 * @author Ben Dodson
 * @version 11/11/04
 * @since 11/11/04
 */
function sendMedia($path, $name, $resample = false, $download = false)
{
    // Let's get the extension from the file
    $extArr = explode(".", $path);
    $ext = $extArr[count($extArr) - 1];
    // Now let's fix up the name
    if (substr($name, 0 - strlen($ext) - 1) != "." . $ext) {
        $name .= "." . $ext;
    }
    // First are we resampling?
    // If so no header here
    if ($resample == "") {
        sendContentType($ext);
    }
    // TODO: resample.
    // probably make a different streamFile (streamResampled)
    streamFile($path, $name, false, $resample, $download);
}
Esempio n. 8
0
 /**
  *  Sends a new password
  */
 function forgotPassword()
 {
     $membername = trim(postVar('name'));
     if (!MEMBER::exists($membername)) {
         doError(_ERROR_NOSUCHMEMBER);
     }
     $mem = MEMBER::createFromName($membername);
     /* below keeps regular users from resetting passwords using forgot password feature
     		 Removing for now until clear why it is required.*/
     /*if (!$mem->canLogin())
     		doError(_ERROR_NOLOGON_NOACTIVATE);*/
     // check if e-mail address is correct
     if (!($mem->getEmail() == postVar('email'))) {
         doError(_ERROR_INCORRECTEMAIL);
     }
     // send activation link
     $mem->sendActivationLink('forgot');
     if (postVar('url')) {
         redirect(postVar('url'));
     } else {
         //			header ("Content-Type: text/html; charset="._CHARSET);
         sendContentType('text/html', '', _CHARSET);
         echo _MSG_ACTIVATION_SENT;
         echo '<br /><br />Return to <a href="' . $CONF['IndexURL'] . '" title="' . $CONF['SiteName'] . '">' . $CONF['SiteName'] . '</a>';
     }
     exit;
 }
Esempio n. 9
0
if ($action == 'contextmenucode') {
    bm_doContextMenuCode();
    exit;
}
if (!$member->isLoggedIn()) {
    bm_loginAndPassThrough();
    exit;
}
// on successfull login
if ($action == 'login' && $member->isLoggedIn()) {
    $action = requestVar('nextaction');
}
if ($action == '') {
    $action = 'add';
}
sendContentType('text/html', 'bookmarklet-' . $action);
// check ticket
$action = strtolower($action);
$aActionsNotToCheck = array('login', 'add', 'edit');
if (!in_array($action, $aActionsNotToCheck)) {
    if (!$manager->checkTicket()) {
        bm_doError(_ERROR_BADTICKET);
    }
}
// find out what to do
switch ($action) {
    // adds the item for real
    case 'additem':
        bm_doAddItem();
        break;
        // shows the edit item form