本文整理汇总了PHP中SystemTextEncoding::magicDequote方法的典型用法代码示例。如果您正苦于以下问题:PHP SystemTextEncoding::magicDequote方法的具体用法?PHP SystemTextEncoding::magicDequote怎么用?PHP SystemTextEncoding::magicDequote使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SystemTextEncoding
的用法示例。
在下文中一共展示了SystemTextEncoding::magicDequote方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: switchAction
//.........这里部分代码省略.........
}
} else {
if ($httpVars["bm_action"] == "rename_bookmark" && isset($httpVars["bm_title"])) {
$title = AJXP_Utils::decodeSecureMagic($httpVars["bm_title"]);
$bmUser->renameBookmark($bmPath, $title);
}
}
}
AJXP_Controller::applyHook("msg.instant", array("<reload_bookmarks/>", ConfService::getRepository()->getId()));
if (AuthService::usersEnabled() && AuthService::getLoggedUser() != null) {
$bmUser->save("user");
AuthService::updateUser($bmUser);
} else {
if (!AuthService::usersEnabled()) {
$bmUser->save("user");
}
}
}
AJXP_XMLWriter::header();
AJXP_XMLWriter::writeBookmarks($bmUser->getBookmarks(), true, isset($httpVars["format"]) ? $httpVars["format"] : "legacy");
AJXP_XMLWriter::close();
break;
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
case "save_user_pref":
$userObject = AuthService::getLoggedUser();
$i = 0;
while (isset($httpVars["pref_name_" . $i]) && isset($httpVars["pref_value_" . $i])) {
$prefName = AJXP_Utils::sanitize($httpVars["pref_name_" . $i], AJXP_SANITIZE_ALPHANUM);
$prefValue = AJXP_Utils::sanitize(SystemTextEncoding::magicDequote($httpVars["pref_value_" . $i]));
if ($prefName == "password") {
continue;
}
if ($prefName != "pending_folder" && $userObject == null) {
$i++;
continue;
}
$userObject->setPref($prefName, $prefValue);
$userObject->save("user");
AuthService::updateUser($userObject);
//setcookie("AJXP_$prefName", $prefValue);
$i++;
}
header("Content-Type:text/plain");
print "SUCCESS";
break;
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
case "custom_data_edit":
case "user_create_user":
$data = array();
if ($action == "user_create_user" && isset($httpVars["NEW_new_user_id"])) {
$updating = false;
AJXP_Utils::parseStandardFormParameters($httpVars, $data, null, "NEW_");
$original_id = AJXP_Utils::decodeSecureMagic($data["new_user_id"]);
$data["new_user_id"] = AJXP_Utils::decodeSecureMagic($data["new_user_id"], AJXP_SANITIZE_EMAILCHARS);
if ($original_id != $data["new_user_id"]) {
throw new Exception(str_replace("%s", $data["new_user_id"], $mess["ajxp_conf.127"]));
示例2: processFileName
function processFileName($fileName)
{
$max_caracteres = ConfService::getConf("MAX_CHAR");
// Don't allow those chars : ' " & , ; / \ ` < > : * ? | ! + ^
$fileName = SystemTextEncoding::magicDequote($fileName);
// Unless I'm mistaken, ' is a valid char for a file name (under both Linux and Windows).
// I've found this regular expression for Windows file name validation, not sure how it applies for linux :
// ^[^\\\./:\*\?\"<>\|]{1}[^\\/:\*\?\"<>\|]{0,254}$ This reg ex remove ^ \ . / : * ? " < > | as the first char, and (same thing but . for any other char), and it limits to 254 chars (could use max_caracteres instead)
// Anyway, here is the corrected version of the big str_replace calls below that doesn't kill UTF8 encoding
$fileNameTmp = preg_replace("/[\",;\\/`<>:\\*\\|\\?!\\^]/", "", $fileName);
return substr($fileNameTmp, 0, $max_caracteres);
}
示例3: fromPostedFileName
/**
* call fromUTF8
* @static
* @param string $filesystemElement
* @return string
*/
public static function fromPostedFileName($filesystemElement)
{
return SystemTextEncoding::fromUTF8(SystemTextEncoding::magicDequote($filesystemElement));
}
示例4: switchAction
public function switchAction($action, $httpVars, $filesVars)
{
if (!isset($this->actions[$action])) {
return false;
}
$repository = ConfService::getRepository();
if (!$repository->detectStreamWrapper(true)) {
return false;
}
$streamData = $repository->streamData;
$destStreamURL = $streamData["protocol"] . "://" . $repository->getId();
if ($action == "post_to_zohoserver") {
$sheetExt = explode(",", "xls,xlsx,ods,sxc,csv,tsv");
$presExt = explode(",", "ppt,pps,odp,sxi");
$docExt = explode(",", "doc,docx,rtf,odt,sxw");
require_once AJXP_BIN_FOLDER . "/http_class/http_class.php";
$file = base64_decode($httpVars["file"]);
$file = SystemTextEncoding::magicDequote(AJXP_Utils::securePath($file));
$target = base64_decode($httpVars["parent_url"]);
$tmp = call_user_func(array($streamData["classname"], "getRealFSReference"), $destStreamURL . $file);
$tmp = SystemTextEncoding::fromUTF8($tmp);
$extension = strtolower(pathinfo(urlencode(basename($file)), PATHINFO_EXTENSION));
$httpClient = new http_class();
$httpClient->request_method = "POST";
$secureToken = $httpVars["secure_token"];
$_SESSION["ZOHO_CURRENT_EDITED"] = $destStreamURL . $file;
$_SESSION["ZOHO_CURRENT_UUID"] = md5(rand() . "-" . microtime());
if ($this->pluginConf["USE_ZOHO_AGENT"]) {
$saveUrl = $this->pluginConf["ZOHO_AGENT_URL"];
} else {
$saveUrl = $target . "/" . AJXP_PLUGINS_FOLDER . "/editor.zoho/agent/save_zoho.php";
}
$params = array('id' => $_SESSION["ZOHO_CURRENT_UUID"], 'apikey' => $this->pluginConf["ZOHO_API_KEY"], 'output' => 'url', 'lang' => "en", 'filename' => urlencode(basename($file)), 'persistence' => 'false', 'format' => $extension, 'mode' => 'normaledit', 'saveurl' => $saveUrl);
$service = "exportwriter";
if (in_array($extension, $sheetExt)) {
$service = "sheet";
} else {
if (in_array($extension, $presExt)) {
$service = "show";
} else {
if (in_array($extension, $docExt)) {
$service = "exportwriter";
}
}
}
$httpClient->GetRequestArguments("https://" . $service . ".zoho.com/remotedoc.im", $arguments);
$arguments["PostValues"] = $params;
$arguments["PostFiles"] = array("content" => array("FileName" => $tmp, "Content-Type" => "automatic/name"));
$err = $httpClient->Open($arguments);
if (empty($err)) {
$err = $httpClient->SendRequest($arguments);
if (empty($err)) {
$response = "";
while (true) {
$error = $httpClient->ReadReplyBody($body, 1000);
if ($error != "" || strlen($body) == 0) {
break;
}
$response .= $body;
}
$result = trim($response);
$matchlines = explode("\n", $result);
$resultValues = array();
foreach ($matchlines as $line) {
list($key, $val) = explode("=", $line, 2);
$resultValues[$key] = $val;
}
if ($resultValues["RESULT"] == "TRUE" && isset($resultValues["URL"])) {
header("Location: " . $resultValues["URL"]);
} else {
echo "Zoho API Error " . $resultValues["ERROR_CODE"] . " : " . $resultValues["WARNING"];
echo "<script>window.parent.setTimeout(function(){parent.hideLightBox();}, 2000);</script>";
}
}
$httpClient->Close();
}
} else {
if ($action == "retrieve_from_zohoagent") {
$targetFile = $_SESSION["ZOHO_CURRENT_EDITED"];
$id = $_SESSION["ZOHO_CURRENT_UUID"] . "." . pathinfo($targetFile, PATHINFO_EXTENSION);
$node = new AJXP_Node($targetFile);
$node->loadNodeInfo();
AJXP_Controller::applyHook("node.before_change", array(&$node));
if ($this->pluginConf["USE_ZOHO_AGENT"]) {
$data = AJXP_Utils::getRemoteContent($this->pluginConf["ZOHO_AGENT_URL"] . "?ajxp_action=get_file&name=" . $id);
if (strlen($data)) {
file_put_contents($targetFile, $data);
echo "MODIFIED";
}
} else {
if (is_file(AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/editor.zoho/agent/files/" . $id)) {
copy(AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/editor.zoho/agent/files/" . $id, $targetFile);
unlink(AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/editor.zoho/agent/files/" . $id);
echo "MODIFIED";
}
}
}
}
}
示例5: switchAction
function switchAction($action, $httpVars, $fileVars)
{
if (!isset($this->actions[$action])) {
return;
}
$xmlBuffer = "";
foreach ($httpVars as $getName => $getValue) {
${$getName} = Utils::securePath(SystemTextEncoding::magicDequote($getValue));
}
$selection = new UserSelection();
$selection->initFromHttpVars($httpVars);
if (isset($dir) && $action != "upload") {
$safeDir = $dir;
$dir = SystemTextEncoding::fromUTF8($dir);
}
if (isset($dest)) {
$dest = SystemTextEncoding::fromUTF8($dest);
}
$mess = ConfService::getMessages();
$recycleBinOption = $this->repository->getOption("RECYCLE_BIN");
// FILTER ACTION FOR DELETE
if ($recycleBinOption != "" && $action == "delete" && $dir != "/" . $recycleBinOption) {
$action = "move";
$dest = "/" . $recycleBinOption;
$dest_node = "AJAXPLORER_RECYCLE_NODE";
}
// FILTER ACTION FOR RESTORE
if ($recycleBinOption != "" && $action == "restore" && $dir == "/" . $recycleBinOption) {
$originalRep = RecycleBinManager::getFileOrigin($selection->getUniqueFile());
if ($originalRep != "") {
$action = "move";
$dest = $originalRep;
}
}
switch ($action) {
//------------------------------------
// DOWNLOAD, IMAGE & MP3 PROXYS
//------------------------------------
case "download":
AJXP_Logger::logAction("Download", array("files" => $selection));
$zip = false;
if ($selection->isUnique()) {
if (is_dir($this->getPath() . "/" . $selection->getUniqueFile())) {
$zip = true;
$dir .= "/" . basename($selection->getUniqueFile());
}
} else {
$zip = true;
}
if ($zip) {
// Make a temp zip and send it as download
$this->downFile($this->makeName($selection->getFiles()), "force-download", "archive.zip");
} else {
$this->downFile($this->makeName($selection->getUniqueFile()), "force-download", $selection->getUniqueFile());
}
exit(0);
break;
case "image_proxy":
$this->downFile($this->makeName($file), "image", $file);
exit(0);
break;
case "mp3_proxy":
$this->downFile($this->makeName($file), "mp3", $file);
exit(0);
break;
//------------------------------------
// ONLINE EDIT
//------------------------------------
//------------------------------------
// ONLINE EDIT
//------------------------------------
case "edit":
if (isset($save) && $save == 1) {
AJXP_Logger::logAction("Online Edition", array("file" => SystemTextEncoding::fromUTF8($file)));
$code = stripslashes($code);
$code = str_replace("<", "<", $code);
$this->SSHOperation->setRemoteContent($this->makeName($file), $code);
echo $mess[115];
} else {
$this->sendFile($this->SSHOperation->getRemoteContent($this->makeName($file)), "plain", $file);
}
exit(0);
break;
//------------------------------------
// COPY / MOVE
//------------------------------------
//------------------------------------
// COPY / MOVE
//------------------------------------
case "copy":
case "move":
if ($selection->isEmpty()) {
$errorMessage = $mess[113];
break;
}
$result = "";
if ($action == "move") {
$result = $this->SSHOperation->moveFile($this->makeName($selection->getFiles()), $this->makeName($dest));
} else {
$result = $this->SSHOperation->copyFile($this->makeName($selection->getFiles()), $this->makeName($dest));
//.........这里部分代码省略.........
示例6: switchAction
//.........这里部分代码省略.........
$bmString .= ' ajxp_mime="' . $cData["AJXP_MIME"] . '"';
}
print '<tree text="' . AJXP_Utils::xmlEntities($cData["LABEL"]) . '" description="' . AJXP_Utils::xmlEntities($cData["DESCRIPTION"]) . '" icon="' . $cData["ICON"] . '" filename="' . $parentName . $key . '/' . $cKey . '" ' . $bmString . '/>';
}
print '</tree>';
}
}
AJXP_XMLWriter::close();
}
break;
case "stat":
header("Content-type:application/json");
print '{"mode":true}';
return;
break;
case "clear_plugins_cache":
AJXP_XMLWriter::header();
// Clear plugins cache if they exist
AJXP_PluginsService::clearPluginsCache();
ConfService::clearMessagesCache();
AJXP_XMLWriter::sendMessage($mess["ajxp_conf." . (AJXP_SKIP_CACHE ? "132" : "131")], null);
AJXP_XMLWriter::reloadDataNode();
AJXP_XMLWriter::close();
break;
case "create_group":
if (isset($httpVars["group_path"])) {
$basePath = AJXP_Utils::forwardSlashDirname($httpVars["group_path"]);
if (empty($basePath)) {
$basePath = "/";
}
$gName = AJXP_Utils::sanitize(AJXP_Utils::decodeSecureMagic(basename($httpVars["group_path"])), AJXP_SANITIZE_ALPHANUM);
} else {
$basePath = substr($httpVars["dir"], strlen("/data/users"));
$gName = AJXP_Utils::sanitize(SystemTextEncoding::magicDequote($httpVars["group_name"]), AJXP_SANITIZE_ALPHANUM);
}
$gLabel = AJXP_Utils::decodeSecureMagic($httpVars["group_label"]);
AuthService::createGroup($basePath, $gName, $gLabel);
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage($mess["ajxp_conf.124"], null);
AJXP_XMLWriter::reloadDataNode();
AJXP_XMLWriter::close();
break;
case "create_role":
$roleId = AJXP_Utils::sanitize(SystemTextEncoding::magicDequote($httpVars["role_id"]), AJXP_SANITIZE_HTML_STRICT);
if (!strlen($roleId)) {
throw new Exception($mess[349]);
}
if (AuthService::getRole($roleId) !== false) {
throw new Exception($mess["ajxp_conf.65"]);
}
$r = new AJXP_Role($roleId);
if (AuthService::getLoggedUser() != null && AuthService::getLoggedUser()->getGroupPath() != null) {
$r->setGroupPath(AuthService::getLoggedUser()->getGroupPath());
}
AuthService::updateRole($r);
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage($mess["ajxp_conf.66"], null);
AJXP_XMLWriter::reloadDataNode("", $httpVars["role_id"]);
AJXP_XMLWriter::close();
break;
case "edit_role":
$roleId = SystemTextEncoding::magicDequote($httpVars["role_id"]);
$roleGroup = false;
$userObject = null;
$groupLabel = null;
if (strpos($roleId, "AJXP_GRP_") === 0) {
示例7: switchAction
//.........这里部分代码省略.........
AJXP_Logger::debug("Return error {$errorCode} {$errorMessage}");
return array("ERROR" => array("CODE" => $errorCode, "MESSAGE" => $errorMessage));
} else {
AJXP_Logger::debug("Return success");
return array("SUCCESS" => true);
}
return;
break;
//------------------------------------
// Public URL
//------------------------------------
//------------------------------------
// Public URL
//------------------------------------
case "public_url":
$file = AJXP_Utils::decodeSecureMagic($httpVars["file"]);
$url = $this->makePubliclet($file, $httpVars["password"], $httpVars["expiration"]);
header("Content-type:text/plain");
echo $url;
exit(1);
break;
//------------------------------------
// XML LISTING
//------------------------------------
//------------------------------------
// XML LISTING
//------------------------------------
case "ls":
if (!isset($dir) || $dir == "/") {
$dir = "";
}
$lsOptions = $this->parseLsOptions(isset($httpVars["options"]) ? $httpVars["options"] : "a");
$startTime = microtime();
$dir = AJXP_Utils::securePath(SystemTextEncoding::magicDequote($dir));
$path = $this->urlBase . ($dir != "" ? "/" . $dir : "");
$threshold = $this->repository->getOption("PAGINATION_THRESHOLD");
if (!isset($threshold) || intval($threshold) == 0) {
$threshold = 500;
}
$limitPerPage = $this->repository->getOption("PAGINATION_NUMBER");
if (!isset($limitPerPage) || intval($limitPerPage) == 0) {
$limitPerPage = 200;
}
$countFiles = $this->countFiles($path, !$lsOptions["f"]);
if ($countFiles > $threshold) {
$offset = 0;
$crtPage = 1;
if (isset($page)) {
$offset = (intval($page) - 1) * $limitPerPage;
$crtPage = $page;
}
$totalPages = floor($countFiles / $limitPerPage) + 1;
} else {
$offset = $limitPerPage = 0;
}
$metaData = array();
$crtLabel = AJXP_Utils::xmlEntities(basename($dir), true);
if (RecycleBinManager::recycleEnabled()) {
if (RecycleBinManager::currentLocationIsRecycle($dir)) {
$metaData["ajxp_mime"] = "ajxp_recycle";
$crtLabel = AJXP_Utils::xmlEntities($mess[122]);
} else {
if ($dir == "") {
$metaData["repo_has_recycle"] = "true";
}
}
示例8: switchAction
function switchAction($action, $httpVars, $fileVars)
{
if (!isset($this->actions[$action])) {
return;
}
$xmlBuffer = "";
foreach ($httpVars as $getName => $getValue) {
${$getName} = Utils::securePath(SystemTextEncoding::magicDequote($getValue));
}
$selection = new UserSelection();
$selection->initFromHttpVars($httpVars);
if (isset($dir) && $action != "upload") {
$safeDir = $dir;
$dir = SystemTextEncoding::fromUTF8($dir);
}
if (isset($dest)) {
$dest = SystemTextEncoding::fromUTF8($dest);
}
$mess = ConfService::getMessages();
if (class_exists("RecycleBinManager")) {
$newArgs = RecycleBinManager::filterActions($action, $selection, $dir);
foreach ($newArgs as $argName => $argValue) {
${$argName} = $argValue;
}
}
switch ($action) {
//------------------------------------
// DOWNLOAD, IMAGE & MP3 PROXYS
//------------------------------------
case "download":
case "image_proxy":
case "mp3_proxy":
AJXP_Logger::logAction("Download", array("files" => $selection));
$this->sendRemoteFile($selection->files[0], $action == "download");
exit(0);
break;
//------------------------------------
// ONLINE EDIT
//------------------------------------
//------------------------------------
// ONLINE EDIT
//------------------------------------
case "edit":
$file_name = basename($file);
$this->ftp_get_contents($file);
if (isset($save) && $save == 1 && isset($code)) {
// Reload "code" variable directly from POST array, do not "securePath"...
$code = $_POST["code"];
AJXP_Logger::logAction("Online Edition", array("file" => SystemTextEncoding::fromUTF8($file_name)));
$code = stripslashes($code);
$code = str_replace("<", "<", $code);
$fp = fopen("files/" . SystemTextEncoding::fromUTF8("{$file_name}"), "w");
fputs($fp, $code);
fclose($fp);
echo $mess[115];
ftp_put($this->connect, $this->secureFtpPath($this->getPath() . $file), "files/" . SystemTextEncoding::fromUTF8($file_name), FTP_BINARY);
$this->ftpRemoveFileTmp("files/" . SystemTextEncoding::fromUTF8("{$file_name}"));
$reload_current_node = true;
} else {
$this->readFile("files/" . SystemTextEncoding::fromUTF8($file_name), "plain");
}
exit(0);
break;
//------------------------------------
// COPY / MOVE
//------------------------------------
//------------------------------------
// COPY / MOVE
//------------------------------------
case "copy":
case "move":
if ($selection->isEmpty()) {
$errorMessage = $mess[113];
break;
}
$this->copyOrMove($dest, $selection->getFiles(), $error, $success, $action == "move" ? true : false);
if (count($error)) {
$errorMessage = join("\n", $error);
} else {
$logMessage = join("\n", $success);
}
$reload_current_node = true;
if (isset($dest_node)) {
$reload_dest_node = $dest_node;
}
$reload_file_list = true;
break;
//------------------------------------
// SUPPRIMER / DELETE
//------------------------------------
//------------------------------------
// SUPPRIMER / DELETE
//------------------------------------
case "delete":
if ($selection->isEmpty()) {
$errorMessage = $mess[113];
break;
}
$logMessages = array();
$errorMessage = $this->delete($selection->getFiles(), $logMessages, $dir);
//.........这里部分代码省略.........
示例9: switchAction
public function switchAction($action, $httpVars, $filesVars)
{
if (!isset($this->actions[$action])) {
return false;
}
$repository = ConfService::getRepository();
if (!$repository->detectStreamWrapper(true)) {
return false;
}
$streamData = $repository->streamData;
$destStreamURL = $streamData["protocol"] . "://" . $repository->getId();
if ($action == "post_to_server") {
$file = base64_decode($httpVars["file"]);
$file = SystemTextEncoding::magicDequote(AJXP_Utils::securePath($file));
$target = base64_decode($httpVars["parent_url"]) . "/plugins/editor.pixlr";
$tmp = call_user_func(array($streamData["classname"], "getRealFSReference"), $destStreamURL . $file);
$tmp = SystemTextEncoding::fromUTF8($tmp);
$fData = array("tmp_name" => $tmp, "name" => urlencode(basename($file)), "type" => "image/jpg");
//var_dump($fData);
$httpClient = new HttpClient("pixlr.com");
//$httpClient->setDebug(true);
$postData = array();
$httpClient->setHandleRedirects(false);
$params = array("referrer" => "AjaXplorer", "method" => "get", "loc" => ConfService::getLanguage(), "target" => $target . "/fake_save_pixlr.php", "exit" => $target . "/fake_close_pixlr.php", "title" => urlencode(basename($file)), "locktarget" => "false", "locktitle" => "true", "locktype" => "source");
$httpClient->postFile("/editor/", $params, "image", $fData);
$loc = $httpClient->getHeader("location");
header("Location:{$loc}");
} else {
if ($action == "retrieve_pixlr_image") {
$file = AJXP_Utils::decodeSecureMagic($httpVars["original_file"]);
$url = $httpVars["new_url"];
$urlParts = parse_url($url);
$query = $urlParts["query"];
$params = array();
$parameters = parse_str($query, $params);
$image = $params['image'];
/*
$type = $params['type'];
$state = $params['state'];
$filename = $params['title'];
*/
if (strpos($image, "pixlr.com") == 0) {
throw new AJXP_Exception("Invalid Referrer");
}
$headers = get_headers($image, 1);
$content_type = explode("/", $headers['Content-Type']);
if ($content_type[0] != "image") {
throw new AJXP_Exception("File Type");
}
$orig = fopen($image, "r");
$target = fopen($destStreamURL . $file, "w");
while (!feof($orig)) {
fwrite($target, fread($orig, 4096));
}
fclose($orig);
fclose($target);
header("Content-Type:text/plain");
print $mess[115];
}
}
return;
}
示例10: parseParameters
function parseParameters(&$repDef, &$options, $userId = null)
{
$replicationGroups = array();
foreach ($repDef as $key => $value) {
$value = AJXP_Utils::sanitize(SystemTextEncoding::magicDequote($value));
if (strpos($key, "DRIVER_OPTION_") !== false && strpos($key, "DRIVER_OPTION_") == 0 && strpos($key, "ajxptype") === false && strpos($key, "_replication") === false && strpos($key, "_checkbox") === false) {
if (isset($repDef[$key . "_ajxptype"])) {
$type = $repDef[$key . "_ajxptype"];
if ($type == "boolean") {
$value = $value == "true" ? true : false;
} else {
if ($type == "integer") {
$value = intval($value);
} else {
if ($type == "array") {
$value = explode(",", $value);
} else {
if ($type == "password" && $userId != null) {
if (trim($value != "") && function_exists('mcrypt_encrypt')) {
// The initialisation vector is only required to avoid a warning, as ECB ignore IV
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
// We encode as base64 so if we need to store the result in a database, it can be stored in text column
$value = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($userId . "CDAFx¨op#"), $value, MCRYPT_MODE_ECB, $iv));
}
}
}
}
}
unset($repDef[$key . "_ajxptype"]);
}
if (isset($repDef[$key . "_checkbox"])) {
$checked = $repDef[$key . "_checkbox"] == "checked";
unset($repDef[$key . "_checkbox"]);
if (!$checked) {
continue;
}
}
if (isset($repDef[$key . "_replication"])) {
$repKey = $repDef[$key . "_replication"];
if (!is_array($replicationGroups[$repKey])) {
$replicationGroups[$repKey] = array();
}
$replicationGroups[$repKey][] = $key;
}
$options[substr($key, strlen("DRIVER_OPTION_"))] = $value;
unset($repDef[$key]);
} else {
if ($key == "DISPLAY") {
$value = SystemTextEncoding::fromUTF8(AJXP_Utils::securePath($value));
}
$repDef[$key] = $value;
}
}
// DO SOMETHING WITH REPLICATED PARAMETERS?
if (count($replicationGroups)) {
}
}
示例11: switchAction
function switchAction($action, $httpVars, $fileVars)
{
if (!isset($this->actions[$action])) {
return;
}
$xmlBuffer = "";
foreach ($httpVars as $getName => $getValue) {
${$getName} = AJXP_Utils::securePath($getValue);
}
if (isset($dir) && $action != "upload") {
$dir = SystemTextEncoding::fromUTF8($dir);
}
$mess = ConfService::getMessages();
switch ($action) {
//------------------------------------
// SWITCH THE ROOT REPOSITORY
//------------------------------------
case "switch_repository":
if (!isset($repository_id)) {
break;
}
$dirList = ConfService::getRootDirsList();
if (!isset($dirList[$repository_id])) {
$errorMessage = "Trying to switch to an unkown repository!";
break;
}
ConfService::switchRootDir($repository_id);
// Load try to init the driver now, to trigger an exception
// if it's not loading right.
ConfService::loadRepositoryDriver();
if (AuthService::usersEnabled() && AuthService::getLoggedUser() != null) {
$user = AuthService::getLoggedUser();
$activeRepId = ConfService::getCurrentRootDirIndex();
$user->setArrayPref("history", "last_repository", $activeRepId);
$user->save();
}
//$logMessage = "Successfully Switched!";
AJXP_Logger::logAction("Switch Repository", array("rep. id" => $repository_id));
break;
//------------------------------------
// BOOKMARK BAR
//------------------------------------
//------------------------------------
// BOOKMARK BAR
//------------------------------------
case "get_bookmarks":
$bmUser = null;
if (AuthService::usersEnabled() && AuthService::getLoggedUser() != null) {
$bmUser = AuthService::getLoggedUser();
} else {
if (!AuthService::usersEnabled()) {
$confStorage = ConfService::getConfStorageImpl();
$bmUser = $confStorage->createUserObject("shared");
}
}
if ($bmUser == null) {
exit(1);
}
if (isset($_GET["bm_action"]) && isset($_GET["bm_path"])) {
if ($_GET["bm_action"] == "add_bookmark") {
$title = "";
if (isset($_GET["bm_title"])) {
$title = $_GET["bm_title"];
}
if ($title == "" && $_GET["bm_path"] == "/") {
$title = ConfService::getCurrentRootDirDisplay();
}
$bmUser->addBookMark(SystemTextEncoding::magicDequote($_GET["bm_path"]), SystemTextEncoding::magicDequote($title));
} else {
if ($_GET["bm_action"] == "delete_bookmark") {
$bmUser->removeBookmark($_GET["bm_path"]);
} else {
if ($_GET["bm_action"] == "rename_bookmark" && isset($_GET["bm_title"])) {
$bmUser->renameBookmark($_GET["bm_path"], $_GET["bm_title"]);
}
}
}
}
if (AuthService::usersEnabled() && AuthService::getLoggedUser() != null) {
$bmUser->save();
AuthService::updateUser($bmUser);
} else {
if (!AuthService::usersEnabled()) {
$bmUser->save();
}
}
AJXP_XMLWriter::header();
AJXP_XMLWriter::writeBookmarks($bmUser->getBookmarks());
AJXP_XMLWriter::close();
exit(1);
break;
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
//------------------------------------
// SAVE USER PREFERENCE
//------------------------------------
case "save_user_pref":
$userObject = AuthService::getLoggedUser();
$i = 0;
//.........这里部分代码省略.........
示例12: switchAction
public function switchAction($action, $httpVars, $filesVars)
{
if (!isset($this->actions[$action])) {
return false;
}
$repository = ConfService::getRepository();
if (!$repository->detectStreamWrapper(true)) {
return false;
}
$streamData = $repository->streamData;
$destStreamURL = $streamData["protocol"] . "://" . $repository->getId();
if ($action == "post_to_server") {
$file = base64_decode($httpVars["file"]);
$file = SystemTextEncoding::magicDequote(AJXP_Utils::securePath($file));
$target = base64_decode($httpVars["parent_url"]) . "/plugins/editor.pixlr";
$tmp = call_user_func(array($streamData["classname"], "getRealFSReference"), $destStreamURL . $file);
$tmp = SystemTextEncoding::fromUTF8($tmp);
$fData = array("tmp_name" => $tmp, "name" => urlencode(basename($file)), "type" => "image/jpg");
//var_dump($fData);
$httpClient = new HttpClient("pixlr.com");
//$httpClient->setDebug(true);
$postData = array();
$httpClient->setHandleRedirects(false);
$saveTarget = $target . "/fake_save_pixlr.php";
if ($this->pluginConf["CHECK_SECURITY_TOKEN"]) {
$saveTarget = $target . "/fake_save_pixlr_" . md5($httpVars["secure_token"]) . ".php";
}
$params = array("referrer" => "AjaXplorer", "method" => "get", "loc" => ConfService::getLanguage(), "target" => $saveTarget, "exit" => $target . "/fake_close_pixlr.php", "title" => urlencode(basename($file)), "locktarget" => "false", "locktitle" => "true", "locktype" => "source");
$httpClient->postFile("/editor/", $params, "image", $fData);
$loc = $httpClient->getHeader("location");
header("Location:{$loc}");
} else {
if ($action == "retrieve_pixlr_image") {
$file = AJXP_Utils::decodeSecureMagic($httpVars["original_file"]);
$node = new AJXP_Node($destStreamURL . $file);
$node->loadNodeInfo();
AJXP_Controller::applyHook("node.before_change", array(&$node));
$url = $httpVars["new_url"];
$urlParts = parse_url($url);
$query = $urlParts["query"];
if ($this->pluginConf["CHECK_SECURITY_TOKEN"]) {
$scriptName = basename($urlParts["path"]);
$token = str_replace(array("fake_save_pixlr_", ".php"), "", $scriptName);
if ($token != md5($httpVars["secure_token"])) {
throw new AJXP_Exception("Invalid Token, this could mean some security problem!");
}
}
$params = array();
parse_str($query, $params);
$image = $params['image'];
$headers = get_headers($image, 1);
$content_type = explode("/", $headers['Content-Type']);
if ($content_type[0] != "image") {
throw new AJXP_Exception("Invalid File Type");
}
$content_length = intval($headers["Content-Length"]);
if ($content_length != 0) {
AJXP_Controller::applyHook("node.before_change", array(&$node, $content_length));
}
$orig = fopen($image, "r");
$target = fopen($destStreamURL . $file, "w");
while (!feof($orig)) {
fwrite($target, fread($orig, 4096));
}
fclose($orig);
fclose($target);
AJXP_Controller::applyHook("node.change", array(&$node));
//header("Content-Type:text/plain");
//print($mess[115]);
}
}
return;
}
示例13: decodeSecureMagic
/**
* Perform standard urldecode, sanitization, securepath and magicDequote
* @static
* @param $data
* @param int $sanitizeLevel
* @return string
*/
public static function decodeSecureMagic($data, $sanitizeLevel = AJXP_SANITIZE_HTML)
{
return SystemTextEncoding::fromUTF8(AJXP_Utils::sanitize(AJXP_Utils::securePath(SystemTextEncoding::magicDequote($data)), $sanitizeLevel));
}
示例14: switchAction
function switchAction($action, $httpVars, $fileVars)
{
if (!isset($this->actions[$action])) {
return;
}
$xmlBuffer = "";
foreach ($httpVars as $getName => $getValue) {
${$getName} = Utils::securePath(SystemTextEncoding::magicDequote($getValue));
}
$selection = new UserSelection();
$selection->initFromHttpVars($httpVars);
if (isset($dir) && $action != "upload") {
$safeDir = $dir;
$dir = SystemTextEncoding::fromUTF8($dir);
}
if (isset($dest)) {
$dest = SystemTextEncoding::fromUTF8($dest);
}
$mess = ConfService::getMessages();
$newArgs = RecycleBinManager::filterActions($action, $selection, $dir);
foreach ($newArgs as $argName => $argValue) {
${$argName} = $argValue;
}
// FILTER DIR PAGINATION ANCHOR
if (isset($dir) && strstr($dir, "#") !== false) {
$parts = explode("#", $dir);
$dir = $parts[0];
$page = $parts[1];
}
switch ($action) {
//------------------------------------
// DOWNLOAD, IMAGE & MP3 PROXYS
//------------------------------------
case "download":
AJXP_Logger::logAction("Download", array("files" => $selection));
set_error_handler(array("HTMLWriter", "javascriptErrorHandler"), E_ALL & ~E_NOTICE);
register_shutdown_function("restore_error_handler");
if ($selection->inZip) {
$tmpDir = dirname($selection->getZipPath()) . "/.tmpExtractDownload";
$delDir = $this->getPath() . "/" . $tmpDir;
@mkdir($delDir);
register_shutdown_function(array($this, "deldir"), $delDir);
$this->convertSelectionToTmpFiles($tmpDir, $selection);
}
$zip = false;
if ($selection->isUnique()) {
if (is_dir($this->getPath() . "/" . $selection->getUniqueFile())) {
$zip = true;
$dir .= "/" . basename($selection->getUniqueFile());
}
} else {
$zip = true;
}
if ($zip) {
// Make a temp zip and send it as download
$loggedUser = AuthService::getLoggedUser();
$file = USERS_DIR . "/" . ($loggedUser ? $loggedUser->getId() : "shared") . "/" . time() . "tmpDownload.zip";
$zipFile = $this->makeZip($selection->getFiles(), $file, $dir);
if (!$zipFile) {
AJXP_Exception::errorToXml("Error while compressing");
}
register_shutdown_function("unlink", $file);
$localName = (basename($dir) == "" ? "Files" : basename($dir)) . ".zip";
$this->readFile($file, "force-download", $localName, false, false);
} else {
$this->readFile($this->getPath() . "/" . $selection->getUniqueFile(), "force-download");
}
exit(0);
break;
case "compress":
// Make a temp zip and send it as download
if (isset($archive_name)) {
$localName = SystemTextEncoding::fromUTF8($archive_name);
} else {
$localName = (basename($dir) == "" ? "Files" : basename($dir)) . ".zip";
}
$file = $this->getPath() . "/" . $dir . "/" . $localName;
$zipFile = $this->makeZip($selection->getFiles(), $file, $dir);
if (!$zipFile) {
AJXP_Exception::errorToXml("Error while compressing file {$localName}");
}
$reload_current_node = true;
$reload_file_list = $localName;
break;
case "image_proxy":
if ($split = UserSelection::detectZip(SystemTextEncoding::fromUTF8($file))) {
require_once "server/classes/pclzip.lib.php";
$zip = new PclZip($this->getPath() . $split[0]);
$data = $zip->extract(PCLZIP_OPT_BY_NAME, substr($split[1], 1), PCLZIP_OPT_EXTRACT_AS_STRING);
header("Content-Type: " . Utils::getImageMimeType(basename($split[1])) . "; name=\"" . basename($split[1]) . "\"");
header("Content-Length: " . strlen($data[0]["content"]));
header('Cache-Control: public');
print $data[0]["content"];
} else {
if (isset($get_thumb) && $get_thumb == "true" && $this->driverConf["GENERATE_THUMBNAIL"]) {
require_once "server/classes/PThumb.lib.php";
$pThumb = new PThumb($this->driverConf["THUMBNAIL_QUALITY"]);
if (!$pThumb->isError()) {
$pThumb->use_cache = $this->driverConf["USE_THUMBNAIL_CACHE"];
$pThumb->cache_dir = $this->driverConf["THUMBNAIL_CACHE_DIR"];
//.........这里部分代码省略.........
示例15: rename
public function rename($filePath, $filename_new, $dest = null)
{
$nom_fic = basename($filePath);
$mess = ConfService::getMessages();
$filename_new = AJXP_Utils::sanitize(SystemTextEncoding::magicDequote($filename_new), AJXP_SANITIZE_FILENAME);
$filename_new = substr($filename_new, 0, ConfService::getCoreConf("NODENAME_MAX_LENGTH"));
$old = $this->urlBase . "/{$filePath}";
if (!$this->isWriteable($old)) {
throw new AJXP_Exception($mess[34] . " " . $nom_fic . " " . $mess[99]);
}
if ($dest == null) {
$new = dirname($old) . "/" . $filename_new;
} else {
$new = $this->urlBase . $dest;
}
if ($filename_new == "" && $dest == null) {
throw new AJXP_Exception("{$mess['37']}");
}
if (file_exists($new)) {
throw new AJXP_Exception("{$filename_new} {$mess['43']}");
}
if (!file_exists($old)) {
throw new AJXP_Exception($mess[100] . " {$nom_fic}");
}
$oldNode = new AJXP_Node($old);
AJXP_Controller::applyHook("node.before_path_change", array(&$oldNode));
rename($old, $new);
AJXP_Controller::applyHook("node.change", array($oldNode, new AJXP_Node($new), false));
}