*/ require_once "setup.php"; $menu = $_GET["menu"]; $artistfirst = $_GET["artistfirst"]; if ($artistfirst == "newest") { $SelectStmtAlbum = "SELECT * FROM Album order by MusicTime DESC Limit 50"; } elseif ($artistfirst != "*") { $SelectStmtAlbum = "SELECT * FROM Album WHERE RootMenuNo == :q1 and ArtistFirst == :q2 order by SortArtist, Date, Album"; } else { $SelectStmtAlbum = "SELECT * FROM Album WHERE RootMenuNo == :q1 order by SortArtist, Date, Album"; } $db = new SQLite3($DATABASE_FILENAME); $stmtAlbum = $db->prepare($SelectStmtAlbum); if ($artistfirst != "newest") { $stmtAlbum->bindValue(":q1", $menu); if ($artistfirst != "*") { $stmtAlbum->bindValue(":q2", $artistfirst); } } $resultAlbum = $stmtAlbum->execute(); $R = array(); $i = 0; // fetchArray(SQLITE3_NUM | SQLITE_ASSOC | SQLITE_BOTH) - default both while ($row = $resultAlbum->fetchArray(SQLITE3_ASSOC)) { $R[$i] = AbsoluteURL($row); $i++; } $stmtAlbum->close(); $db->close(); //print_r($R); echo json_encode($R);
function image_properties() { global $WikiTheme; $img_url = AbsoluteURL($WikiTheme->getImageURL('logo')); if (!$img_url) { return false; } return array('title' => WIKI_NAME, 'link' => WikiURL(HOME_PAGE, false, 'absurl'), 'url' => $img_url); }
function DataURL($url) { if (preg_match('/^https?:/', $url)) { return $url; } $url = NormalizeWebFileName($url); if (DEBUG and $GLOBALS['request']->getArg('start_debug') and substr($url, -4, 4) == '.php') { $url .= "?start_debug=1"; } // XMLRPC and SOAP debugging helper. return AbsoluteURL($url); }
/** * Does an http-1.1-compliant redirection to an absolute or relative url. * * @param string $url * @return void Calls exit to end PHP processing. */ function Redirect($url) { $absoluteURL = MakeURLPretty(AbsoluteURL($url)); if (headers_sent()) { // Right, can't just spit out a Location: header, last-ditch effort: // Spit out JavaScript code to do a redirect... // echo "<SCRIPT>location.href=\"$absoluteURL\"</SCRIPT>"; echo "<br>Would like to Redirect to: "; echo '<a href="' . $absoluteURL . '">'; echo $absoluteURL; echo "</a>"; } else { header("Location: {$absoluteURL}"); } exit; }
function PrepareXML($xml) { $xml = AbsoluteURL($xml); // late binding of http server $xml = htmlspecialchars(str_replace(array("\n", "\r"), '', $xml)); $xml = str_replace("&#", "&#", $xml); // e.g. danish "å" is transcoded from "&#E5;" to "&#E5;" so we convert back return $xml; }
function createPaymentRequest($params, &$formErrors) { $memcache = new Memcache(); $memcache->connect('localhost', 11211) or die("Could not connect to memcache"); // $params contains: // merchant / address123 / amount123 / time / expires / memo // payment_url / ACK_message $codec = new \DrSlump\Protobuf\Codec\Binary(); $details = new \payments\PaymentDetails(); $details->setTime(time() + (int) $params['time']); if ($params['expires'] != "never") { $details->setExpires(time() + (int) $params['expires']); } setField($params, 'memo', array($details, 'setMemo')); $testnet = false; $totalAmount = 0; $nAddresses = 0; for ($i = 1; $i <= 3; $i++) { $field = "address" . $i; if (!empty($params[$field])) { $output = new \payments\Output(); $r = address_to_script($params[$field]); if ($r === false) { $script = pubkeys_to_script($params[$field]); if ($script === false) { $formErrors[$field] = "Invalid address/pubkey"; continue; } $r = array(true, $script); } $testnet = $r[0]; $output->setScript($r[1]); $output->setAmount($params["amount" . $i] * 100000000.0); $totalAmount += $params["amount" . $i]; $nAddresses += 1; $details->addOutputs($output); // Testnet only, we don't want anybody to be able to create // real-money payment requests // from bitcoincore.org/gavinandresen@gmail.com: if (!$testnet && $params['merchant'] != "None") { $formErrors[$field] = "Testnet-only addresses, please"; return NULL; } } } if ($testnet) { $details->setNetwork("test"); } if (isset($params['payment_url'])) { /* Generate a unique id for this request: */ $id = uniqid(mySecret($memcache)); /* ... store it in merchant data: */ $details->setMerchantData($id); $ackURL = AbsoluteURL('') . "payACK.php"; $details->setPaymentUrl($ackURL); if (isset($params['ACK_message'])) { $memcache->set($id, $params['ACK_message'], 0, 60 * 60 * 24); } else { $memcache->set($id, '', 0, 60 * 60 * 24); } } $paymentRequest = new \payments\PaymentRequest(); $serialized = $details->serialize($codec); $paymentRequest->setSerializedPaymentDetails($serialized); // Signed? if ($params['merchant'] != "None") { $certK = $params['merchant'] . "certificate"; $keyK = $params['merchant'] . "key"; $certChain = new \payments\X509Certificates(); $cachedCertChain = $memcache->get($certK); if ($cachedCertChain === FALSE) { $leafCert = file_get_contents("/home/gavin/.certs/" . $params['merchant'] . ".crt"); $certs = fetch_chain($leafCert); foreach ($certs as $cert) { $certChain->addCertificate($cert); } $cachedCertChain = $certChain->serialize($codec); $memcache->set($certK, $cachedCertChain); } else { $certChain->parse($cachedCertChain); } $paymentRequest->setPkiType("x509+sha1"); $paymentRequest->setPkiData($certChain->serialize($codec)); $priv_key = file_get_contents("/home/gavin/.certs/" . $params['merchant'] . ".key"); $pkeyid = openssl_get_privatekey($priv_key); $paymentRequest->setSignature(""); $dataToSign = $paymentRequest->serialize($codec); $signature = ""; $result = openssl_sign($dataToSign, $signature, $pkeyid, OPENSSL_ALGO_SHA1); if ($signature === FALSE) { return "ERROR: signing failed.\n"; } $paymentRequest->setSignature($signature); } $data = $paymentRequest->serialize($codec); if (isset($params['produce_uri'])) { $urlParams = array(); $hash = hash('ripemd128', $data); $memcache->set($hash, $data, FALSE, 60 * 60 * 24); /* cache for 24 hours */ // f.php is fetch payment request from memcache: $urlParams['r'] = AbsoluteURL('') . "f.php?h=" . $hash; if ($nAddresses == 1 && $totalAmount > 0) { $urlParams['amount'] = $totalAmount; } if ($nAddresses == 1) { $url = AddArgsToURL("bitcoin:" . $params["address1"], $urlParams); } else { $url = AddArgsToURL("bitcoin:", $urlParams); } return MakeAnchor("CLICK TO PAY", $url); } header('Content-Type: application/bitcoin-paymentrequest'); $filename = "r" . (string) time() . ".bitcoinpaymentrequest"; header('Content-Disposition: inline; filename=' . $filename); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . (string) strlen($data)); echo $data; exit(0); }
$Queue[0][MaxLinnId] = $row[MaxLinnId]; } $Stmt->close(); $Stmt = $db->prepare("SELECT * FROM State"); $result = $Stmt->execute(); while ($row = $result->fetchArray(SQLITE3_ASSOC)) { $Queue[0][$row[Id]] = $row[Value]; } $Stmt->close(); if ($RevNo == -1 || $Queue[0][RevNo] != $RevNo) { $QueueStmt = $db->prepare("SELECT S.Seq-L.Seq AS PlayState, Q.LinnId AS LinnId, S.Seq AS Seq, T.* FROM Queue Q, Sequence S, Tracks T, (SELECT S2.Seq FROM Sequence S2, (SELECT ST.value FROM State ST where ST.Id == 'LinnId') L2 WHERE S2.LinnId == L2.value) L WHERE Q.LinnId == S.LinnId AND Q.Preset == T.Preset AND Q.TrackSeq == T.TrackSeq ORDER BY S.Seq"); $result = $QueueStmt->execute(); $QueueCount = 1; while ($row = $result->fetchArray(SQLITE3_ASSOC)) { if ($row[PlayState] < 0) { $row[PlayState] = "Played"; } else { if ($row[PlayState] > 0) { $row[PlayState] = "Pending"; } else { $row[PlayState] = "Playing"; } } $Queue[$QueueCount] = AbsoluteURL($row); $QueueCount++; } $QueueStmt->close(); } $db->close(); //print_r($Queue); echo json_encode($Queue);