function processAdminRequest($url) { global $modulesMgr, $structureMgr, $authenticationMgr, $permissionsMgr, $cacheMgr, $templatesMgr; $userID = $authenticationMgr->getUserID(); $userGroupID = $authenticationMgr->getUserGroup(); // Если пользователь - гость, то отправить логиниться if ($userID == 1 || $userGroupID != 5) { header('Status: 302 Moved'); header('Location: /login'); exit; } SetCfg('InAdmin', true); //$pageID = isset($_GET['pageID']) ? $_GET['pageID'] : -1; if ($url == '/') { $pageID = -1; } else { //direct link is provided to edit some content $pageID = $structureMgr->getPageIDByPath($url); //$md = $structureMgr->getMetaData($pageID); if (!$pageID) { trigger_error('Admin 404 will be provided later. But now it is just a fatal error.', PM_FATAL); } if (!$permissionsMgr->canUpdate($pageID, $userID)) { trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL); } } include '_kernel.edit.php'; $tpl = $templatesMgr->getTemplate(-1, GetCfg('TemplatesPath') . '/admin/page.html'); $tpl = str_replace('%site_name%', GetCfg('SiteName'), $tpl); $res = ''; $cmd = _var('cmd'); if ($pageID == -1) { $pageID = _var('pageID'); if (!$pageID) { $pageID = $structureMgr->getRootPageID(); } //print 'pageID='.$pageID; if ($permissionsMgr->canUpdate($pageID, $userID) == false) { trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL); } if (!$cmd) { $res .= navi($pageID, false); $res .= structure($pageID); // this very evil function. Very slowed. } else { $res .= processAdminCommand($cmd, $pageID); } } else { if ($permissionsMgr->canUpdate($pageID, $userID) == false) { trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL); } $res .= processAdminCommand('editPage', $pageID); } $admMenu = admMenu($cmd); $tpl = str_replace('%content%', $res, $tpl); $tpl = str_replace('%adm_menu%', $admMenu, $tpl); print $tpl; }
<?php // 建立 .cer/.pfx 证书文件 function _var($mixed, $is_dump = false) { if ($is_dump) { var_dump($mixed); } } $dn = array("countryName" => "CN", "stateOrProvinceName" => "Beijing", "localityName" => "Beijing", "organizationName" => "Eyou", "organizationalUnitName" => "Develop team", "commonName" => "Li Bo", "emailAddress" => "*****@*****.**"); $config = array('config' => '/etc/pki/tls/openssl.cnf', 'encrypt_key' => 1, 'private_key_type' => OPENSSL_KEYTYPE_RSA, "digest_alg" => "sha1", 'x509_extensions' => 'v3_ca', 'private_key_bits' => 1024, "encrypt_key_cipher" => OPENSSL_CIPHER_AES_256_CBC); $privkey = openssl_pkey_new($config); var_dump($privkey); $csr = openssl_csr_new($dn, $privkey); var_dump($csr); $sscert = openssl_csr_sign($csr, null, $privkey, 365); var_dump($sscert); exit; $path = __DIR__ . '/keys'; $path_pub = "{$path}/cert-x509.crt"; $path_priv = "{$path}/cert-pkcs12.pfx"; openssl_csr_export($csr, $csrout) and _var($csrout); openssl_x509_export_to_file($sscert, $path_pub); // export to pfx style // PKCS #12(公钥加密标准 #12)是业界格式,适用于证书及相关私钥的传输、备份和还原。 $pub_key = file_get_contents($path_pub); openssl_pkcs12_export_to_file($pub_key, $path_priv, $privkey, 'mypassword', $config); while (($e = openssl_error_string()) !== false) { echo $e . "\n"; } echo "ok, create certificate/private-key";
function editPage($pageID) { global $structureMgr, $modulesMgr, $templatesMgr; $specificLines = ""; if ($pageID != -1) { $md = $structureMgr->getMetaData($pageID); $md["ShortTitle"] = str_replace("\"", """, $md["ShortTitle"]); $pageTemplate = ""; $templates = $templatesMgr->getTemplates(); $pageTemplate .= "<select name=\"tplID\">"; foreach ($templates as $tID => $tname) { $pageTemplate .= "<option value=\"{$tID}\""; if ($tID == $md["tplID"]) { $pageTemplate .= " selected"; } else { if ($tID == 5) { $pageTemplate .= " selected"; } } $pageTemplate .= ">{$tname}</option>\n"; } $pageTemplate .= "</select>\n"; $submit = "Обновить"; $dt = $modulesMgr->execute($md["ModuleName"], "getItemType", array($md["DataType"]), false); $idesc = $modulesMgr->execute($md["ModuleName"], "getItemDesc", array($md["DataType"]), false); $specDesc = $modulesMgr->execute($md["ModuleName"], "getSpecificBlockDesc", array($md["DataType"]), false); $eVars = $modulesMgr->execute($md["ModuleName"], "getSpecificDataForEditing", array($md["sID"]), false); if ($md["isHidden"]) { $isHidden = "checked"; } else { $isHidden = ""; } $content = $structureMgr->getData($pageID); $header = "Обновление " . $dt[2]; $title = "Общие сведения"; $mtags = "Мета-теги"; $hiddenForAdding = ""; } else { $md["ShortTitle"] = ""; $md["Title"] = ""; $md["URLName"] = ""; $md["MetaDesc"] = ""; $md["MetaKeywords"] = ""; $isHidden = ""; $content = ""; $pageTemplate = ""; $templates = $templatesMgr->getTemplates(); $tplID = $templatesMgr->getDefaultTplID(); $pageTemplate .= "<select name=\"tplID\">"; foreach ($templates as $tID => $tname) { $pageTemplate .= "<option value=\"{$tID}\""; if ($tID == $tplID) { $pageTemplate .= " selected"; } $pageTemplate .= ">{$tname}</option>\n"; } $pageTemplate .= "</select>\n"; $submit = "Добавить"; $dt = $modulesMgr->execute(_var("ModuleName"), "getItemType", array(_var("DataType")), false); $idesc = $modulesMgr->execute(_var("ModuleName"), "getItemDesc", array(_var("DataType")), false); $specDesc = $modulesMgr->execute(_var("ModuleName"), "getSpecificBlockDesc", array(_var("DataType")), false); $eVars = $modulesMgr->execute(_var("ModuleName"), "getSpecificDataForEditing", array(-1, _var("DataType"), _var("pageID")), false); $header = "Добавление " . $dt[2]; $title = "Общие сведения"; $mtags = "Мета-теги"; $md["pms_sID"] = _var("pageID"); $hiddenForAdding = "<input type=hidden name=\"ModuleName\" value=\"" . _var("ModuleName") . "\">\n" . "<input type=hidden name=\"DataType\" value=\"" . _var("DataType") . "\">\n"; } // $fromPost = array("ShortTitle", "Title", "URLName", "MetaDesc", "MetaKeywords", "isHidden", "Content"); $specificLines = renderProperties(&$eVars); $active_color = "#DEEBFA"; $back_color = "#EEFBFF"; if ($specificLines) { $spec_link = "\n \t\t\t<td class=\"tl1\"><a href=# onclick=\"show('specific'); return false;\">{$specDesc}</a></td>\n "; $spec_active = "\n <td class=\"tl1a\"><strong>{$specDesc}</strong></td>\n "; $specJS = ", \"specific\""; } else { $spec_link = ""; $spec_active = ""; $specJS = ""; } if ($idesc) { /* $editorDIV = <<<DIV <div class="tmenulevel_1"> <table cellspacing="0" cellpadding="3"><tr> <td class="tl1"><a href=# onclick="show('maindata'); return false;">$title</a></td> <td class="tl1a"><strong>$idesc</strong></td> <td class="tl1"><a href=# onclick="show('metadata'); return false;">$mtags</a></td> $spec_link </tr></table> </div> <div class="tmenulevel_2"> <textarea name="Content" id="Content" cols=80 rows=30>111</textarea> </div> DIV; */ $editorDIV = <<<DIV \t <div class="tmenulevel_1"> \t <table cellspacing="0" cellpadding="3"><tr> \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td> \t\t\t<td class="tl1a"><strong>{$idesc}</strong></td> \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td> \t\t\t{$spec_link} \t\t\t</tr></table> \t\t</div> \t\t<div class="tmenulevel_2"> <textarea name="Content" id="Content" cols=80 rows=30 class="widgEditor nothing">{$content}</textarea> \t\t</div> DIV; $content = str_replace("\"", "\\\"", $content); $content = str_replace("\r\n", "\" + \r\n\"\\n", $content); // $editorLink = "initialSetContent();"; $editorLink = ""; /* $editorJS = <<<JS <script language="javascript" type="text/javascript" src="/js/tiny_mce/tiny_mce_src.js"></script> <script language="javascript" type="text/javascript"> tinyMCE.init({ theme : "advanced", mode : "exact", cleanup: false, language : "ru", elements : "Content", content_css : "/css/carumba.css", width: "640", height: "300", plugins : "table", relative_urls : false, visual : false, theme_advanced_buttons3_add_before : "tablecontrols,separator", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", debug : false }); var contentWasSet = false; function initialSetContent() { if (!contentWasSet) { tinyMCE.setContent("$content"); contentWasSet = true; } } </script> JS; */ $editorJS = <<<JS <style type="text/css" media="all"> \t@import "/js/widg/css/info.css"; \t@import "/js/widg/css/main.css"; \t@import "/js/widg/css/widgEditor.css"; </style> <script type="text/javascript" src="/js/widg/widgEditor.js"></script> <script type="text/javascript"> \tvar contentWasSet = false; \tfunction initialSetContent() \t{ \t if (!contentWasSet) \t { tinyMCE.setContent("{$content}"); contentWasSet = true; } \t} </script> JS; } else { $editorJS = ""; $editorDIV = ""; $editorLink = ""; } $res = <<<EF <style> .tmenulevel_1 { margin: 0px; border: 0; padding: 5px; padding-bottom: 0px; position: relative; } .tmenulevel_2 { margin-top: 0px; margin-left: 0px; border: 0; padding: 10px; padding-top: 8px; background-color: {$active_color}; position: relative; } .tl1a { background-color: {$active_color}; font-size: 12px; font-weight: bold;} .tl1 { font-size: 12px; } </style> <script> function hideAll() { ids = new Array("maindata", "dcontent", "metadata"{$specJS}); for (i=0; i < ids.length; i++) { d = document.getElementById(ids[i]); d.style.display = "none"; } } function show(a) { hideAll(); d = document.getElementById(a); d.style.display = "block"; } </script> <div style="border: double #A0A0A0; padding: 5px; margin: 0px; background-color: #ffFFA0"> <form action="/admin/" method="POST"> <input type=hidden name=cmd value=updatePage> <input type=hidden name=pageID value="{$pageID}"> <input type=hidden name=pms_sID value="{$md['pms_sID']}"> {$hiddenForAdding} <h4>{$header}</h4> <div id="maindata"> \t <div class="tmenulevel_1"> \t <table cellspacing="0" cellpadding="4"><tr> \t\t\t<td class="tl1a"><strong>{$title}</strong></td> \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td> \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td> \t\t\t{$spec_link} \t\t\t</tr></table> \t\t</div> \t\t<div class="tmenulevel_2"> <table> <tr> <td>Заголовок</td><td><input type=text name="ShortTitle" value="{$md['ShortTitle']}" size=80></td></tr> <tr> <td>URL</td><td><input type=text name="URLName" value="{$md['URLName']}" size=80></td></tr> <tr> <td><Title></td><td><input type=text name="Title" value="{$md['Title']}" size=80></td></tr> <tr> <td>Шаблон страницы</td><td>{$pageTemplate}</td></tr> <tr> <td>Скрывать</td><td><input type=checkbox name="isHidden" value="1" {$isHidden}></td></tr> </table> \t\t</div> \t </div> <div id="dcontent" style="display:none;"> {$editorDIV} \t </div> {$editorJS} <div id="metadata" style="display:none;"> \t <div class="tmenulevel_1"> \t <table cellspacing="0" cellpadding="3"><tr> \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td> \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td> \t\t\t<td class="tl1a"><strong>{$mtags}</strong></td> \t\t\t{$spec_link} \t\t\t</tr></table> \t\t</div> \t\t<div class="tmenulevel_2"> <table> <tr> <td>Ключевые слова</td><td><input type=text name="MetaKeywords" value="{$md['MetaKeywords']}" size=80></td></tr> <tr> <td valign=top>Описание</td><td><textarea name="MetaDesc" cols=60 rows=8>{$md['MetaDesc']}</textarea></td></tr> </table> \t\t</div> \t </div> <div id="specific" style="display:none;"> \t <div class="tmenulevel_1"> \t <table cellspacing="0" cellpadding="3"><tr> \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td> \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td> \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td> \t\t\t{$spec_active} \t\t\t</tr></table> \t\t</div> \t\t<div class="tmenulevel_2"> {$specificLines} \t\t</div> \t </div> <br> <input type=submit value="{$submit}"> </form> </div> EF; return $res; }
_step("Function call"); $func(); _mem(); $funcAlias = $func; _step("Function call again via alias"); $funcAlias(); _mem(); _step("Function remove"); unset($func); _mem(); _step("Function alias remove"); unset($funcAlias); _mem(); $loop = 5; for ($i = 1; $i <= $loop; $i++) { _step("Loop [{$i}/{$loop}] function create"); $func = create_function('', <<<'FUNC' static $static = 0; $static = _data(1); $dynamic = _data(1); echo " --- in function ----" . PHP_EOL; _mem(); echo " -------------------------" . PHP_EOL; FUNC ); _mem(); _step("Loop [{$i}/{$loop}] function call [loop]"); $func(); _mem(); _var('func'); }
function getItemsListByPageID($pageID, &$branch) { global $structureMgr, $templatesMgr; $prodIDs = _varByPattern('/p-\\d+/'); $propVals = _varByPattern('/propVal-\\d+/'); $res = ""; $pager = ""; $topContent = $structureMgr->getData($pageID); $metaData = $structureMgr->getMetaData($pageID); $from = _get("from"); $to = _get("to"); $propID = _get("propID"); $order = _get("order"); $filterTpl = $templatesMgr->getTemplate(-1, GetCfg("TemplatesPath") . "/" . "Catalogue/filterMenu.html"); $br = $structureMgr->getChildrenDataTypesForPageID($this->getParentPageID($pageID), 1); //echo $pageID; $catFilter = ""; $propsArray = array(); $bsIDArray = array(); for ($i = 0; $i < count($branch); $i++) { $bsID = $branch[$i]["sID"]; $URL = $structureMgr->getPathByPageID($branch[$i]["sID"], false); $chCount = $structureMgr->getChildrenCount($branch[$i]["sID"]); if ($chCount > 0) { $catFilter .= "<img src=\"/images/arr_gray2.gif\" width=\"7\" height=\"9\" alt=\"\" /><a href=\"?c-{$i}={$bsID}\" >" . $branch[$i]["Title"] . " ({$chCount})</a><br/>\n"; } $bsIDArray[] = $bsID; } $subCats = $this->getSubCategoris($this->getParentPageID($pageID), $bsIDArray, $this->FILTER_CONSTANT_ARRAY[$pageID]['otherParamId']); foreach ($subCats as $key => $value) { $propsArray[$key] = $value; } $pageIDList = array(); for ($i = 0; $i < count($br); $i++) { $pageIDList[] = $br[$i]["sID"]; } $prodList = array(); if (count($pageIDList) > 0) { $prodList = $structureMgr->getProducersByPageIDList($pageIDList); } $prods = ""; foreach ($prodList as $prodItem) { $prods .= "<option value=\"" . $prodItem[0] . "\" " . (in_array($prodItem[0], $prodIDs) ? "selected" : "") . ">" . $prodItem[1] . "</option>"; } $filterTpl = str_replace("%prods%", $prods, $filterTpl); $propsValues = ""; foreach ($propsArray as $propsArrayItem) { $propsValues .= "<option value=\"" . $propsArrayItem['propListID'] . "\" " . ($propsArrayItem['propListID'] == $propID ? "selected" : "") . ">" . $propsArrayItem['propValue'] . "</option>"; } $filterTpl = str_replace("%propsValues%", $propsValues, $filterTpl); $filterTpl = str_replace("%filter_result%", $this->FILTER_CONSTANT_ARRAY[$pageID]['result'], $filterTpl); $filterTpl = str_replace("%from%", $from, $filterTpl); $filterTpl = str_replace("%to%", $to, $filterTpl); //$filterTpl = str_replace("%ShortTitle%", $ShortTitle, $filterTpl); //$filterTpl = str_replace("%actionUrl%", $_SERVER['QUERY_STRING'], $filterTpl); $props = array(); $filterArray = array(); $podborArray = array(); $hidenInputArray = array(); foreach ($propVals as $key => $value) { if ($value) { $param = explode("_", $value); $props['props'][] = "pp.propValue = '" . $param[1] . "' && s.pms_sID = '" . $param[0] . "'"; //$props['p.accCatID'][] = $param[0]; $podborArray['prop'][] = $param[1]; $filterArray[] = $key . "=" . $value; $hidenInputArray[] = '<input type="hidden" name="' . $key . '" value="' . $value . '">' . "\n"; } } foreach ($prodIDs as $key => $value) { if ($value) { $props['prods'][] = "ap.accPlantID = '" . $value . "'"; $filterArray[] = $key . "=" . $value; $query = "SELECT * FROM pm_as_producer WHERE accPlantID='" . $value . "'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $podborArray['prod'][] = $row['accPlantName']; $hidenInputArray[] = '<input type="hidden" name="' . $key . '" value="' . $value . '">'; } } if (count($podborArray)) { $catFilter = "<p><img src=\"/images/arr_gray2.gif\" width=\"7\" height=\"9\" alt=\"\" />" . implode(', ', $podborArray['prod']) . " " . (count($podborArray['prod']) && count($podborArray['prop']) ? ":" : "") . " " . implode(', ', $podborArray['prop']) . "</p>" . "\n<p>" . $catFilter . "</p>"; } if (count($hidenInputArray)) { $catFilter .= implode("\n", $hidenInputArray); } $filterTpl = str_replace("%catFilter%", $catFilter, $filterTpl); $filter = $_SERVER['QUERY_STR']; $filter .= "&" . implode("&", $filterArray); $pNum = $structureMgr->getPageNumberByPageID($pageID); $URL = $structureMgr->getPathByPageID($pageID, false); $carIDFilter = _var("carID"); if ("" == $carIDFilter) { $carIDFilter = "0"; } $producerIDFilter = _var("producerID"); $prodIDFilter = _varByPattern('/p-\\d+/'); $perPage = GetCfg("Catalogue.perPage"); $startFrom = ($pNum - 1) * $perPage; $endAt = $startFrom + $perPage - 1; $cnt = count($branch); if ($endAt >= $cnt) { $endAt = $cnt - 1; } $pagesCount = ceil($cnt / $perPage); if ($pagesCount < $pNum) { trigger_error("Invalid pageNumber [{$pNum} of {$pagesCount}] - possibly hacking or serious change in DB", PM_ERROR); } else { if ($pagesCount > 1) { $tpl = $templatesMgr->getTemplate(-1, GetCfg("TemplatesPath") . "/" . "pager.html"); $purePager = ""; $filter = ""; if ($carIDFilter != "" && count($prodIDFilter) == 0) { $filter .= "carID={$carIDFilter}"; } if ($producerIDFilter != "") { if ($filter) { $filter .= "&"; } $filter .= "producerID={$producerIDFilter}"; } else { if (count($prodIDFilter) > 0) { foreach ($prodIDFilter as $prod => $_p) { if ($filter) { $filter .= "&"; } $filter .= "{$prod}={$_p}"; } } } $cats = _varByPattern('/c' . $carIDFilter . '-\\d+/'); if (count($cats) > 0) { foreach ($cats as $cat => $v) { if ($filter) { $filter .= "&"; } $filter .= "{$cat}={$v}"; } } for ($i = 1; $i <= $pagesCount; $i++) { if ($i > 1) { $purePager .= " - "; $u = $URL . "/page" . $i; } else { $u = $URL; } if ($filter) { $u .= "?" . $filter; } if ($i == $pNum) { $purePager .= $i; } else { $purePager .= "<a href=\"{$u}\" class=\"levm\">" . $i . "</a>"; } } $pager = str_replace("%links%", $purePager, $tpl); $filterTpl = str_replace("%links%", "Страницы: " . $purePager, $filterTpl); } else { $filterTpl = str_replace("%links%", "", $filterTpl); } for ($i = $startFrom; $i <= $endAt; $i++) { switch ($branch[$i]["DataType"]) { case "CatItem": $items = true; $ci = $this->getCatItemByPageID($branch[$i]["sID"]); $style = $i > $startFrom ? "mid" : "up"; $res .= $this->getFilledItemTemplate($ci, $style); break; } } } return " {$filterTpl}\n <div class=\"items\"><table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#DCDDE0\" class=\"items-table\">\n {$res}\n </table></div>\n <img src=\"/images/pix.gif\" width=\"1\" height=\"10\" alt=\"\" />\n {$pager}\n "; }
require_once 'lib.php'; _step("GC Cyclic Start!"); _mem(); _step("Bruce come"); $someData = _data(); $bruce = new User('bruce', '1960-12-26'); $bruce->store($someData); _mem(); _var('someData'); _var('bruce'); _step("Robin come and talk to bruce"); $robin = new User('robin', '1970-10-14'); $robin->store($someData); $bruce->talk($robin); $robin->talk($bruce); _mem(); _var('someData'); _var('bruce'); _var('robin'); _step("Clear all"); unset($robin); unset($bruce); unset($someData); _mem(); _var('someData'); _var('bruce'); _var('robin'); _step("Collecting cycles"); gc_collect_cycles(); _mem();
function _var($mixed, $is_dump = false) { if ($is_dump) { var_dump($mixed); } } $dn = array("countryName" => "CN", "stateOrProvinceName" => "Beijing", "localityName" => "Beijing", "organizationName" => "Eyou", "organizationalUnitName" => "Develop team", "commonName" => "Li Bo", "emailAddress" => "*****@*****.**"); $config = array('config' => '/etc/pki/tls/openssl.cnf', 'encrypt_key' => 1, 'private_key_type' => OPENSSL_KEYTYPE_RSA, "digest_alg" => "sha1", 'x509_extensions' => 'v3_ca', 'private_key_bits' => 1024, "encrypt_key_cipher" => OPENSSL_CIPHER_AES_256_CBC); $privkey = openssl_pkey_new($config); $csr = openssl_csr_new($dn, $privkey); $sscert = openssl_csr_sign($csr, null, $privkey, 365); openssl_csr_export($csr, $csrout) and _var($csrout); openssl_x509_export($sscert, $cer_x509) and _var($cer_x509); openssl_pkey_export($privkey, $pkeyout, "mypassword", $config) and _var($pkeyout); openssl_pkcs12_export($cer_x509, $pkcs12, $privkey, 'mypassword', $config) && _var(base64_encode($pkcs12)); openssl_pkcs12_read($pkcs12, $cert, 'mypassword') && _var($cert); //_var(getenv('OPENSSL_CONF')); // Show any errors that occurred here //while (($e = openssl_error_string()) !== false) { // echo $e . "\n"; //} //exit; $cleartext = '1234 5678 9012 3456'; echo "\nClear txt: \n{$cleartext}\n"; $pub_key = $cert['cert']; $priv_key = $cert['pkey']; openssl_public_encrypt($cleartext, $crypttext, $pub_key); echo "\nCrypt text:\n" . base64_encode($crypttext) . "\n"; openssl_private_decrypt($crypttext, $decrypted, $priv_key); echo "\nDecrypted text:\n{$decrypted}\n\n"; //print_r(openssl_x509_parse($certout));
$all[] = $data; _mem(); } _mem(); _var('data'); _step("Pass string value to read"); dataSize($data); _mem(); _var('data'); _step("Pass array value to read"); dataSize($all); _mem(); _var('all'); _step("Pass string value to change"); changeValueOf($data); _mem(); _var('data'); _step("Pass array value to change"); changeValueOf($all); _mem(); _var('all'); // passing by reference to immutable values uses more memory in this case! _step("Pass string reference to change"); changeValueOfReference($data); _mem(); _var('data'); _step("Pass array reference to change"); changeValueOfReference($all); _mem(); _var('all');
/** * Эта функция использует "некрасивые" URL-пераметры. Ее нужно переписать * * @param array $cats * @param array $prodIDs * @param array $propVals * @param array $carID * @return string */ function getTitleFromParams($cats = 0, $prodIDs = 0, $propVals = 0, $carID = 0) { if (!$cats) { $cats = _varByPattern('/c-\\d+/'); } if (!$prodIDs) { $prodIDs = _varByPattern('/p-\\d+/'); } if (!$propVals) { $propVals = _varByPattern('/propVal-\\d+/'); } if (!$carID) { $carID = _var('carID'); } $shownCats = array(); $shownProds = array(); $shownProps = array(); $resArray = array(); foreach ($cats as $pageID) { if (!in_array($pageID, $shownCats)) { $metaData = $this->getMetaData($pageID); $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle']; $shownCats[] = $pageID; } } foreach ($propVals as $prop) { $val = explode('_', $prop); if (!in_array($val[0], $shownCats)) { $metaData = $this->getMetaData($val[0]); $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle']; $shownCats[] = $val[0]; } } if ($carID) { $query = 'SELECT pm_as_cars.carName, pm_as_cars.carModel, pm_as_autocreators.plantName FROM pm_as_cars, pm_as_autocreators WHERE pm_as_cars.plantID = pm_as_autocreators.plantID AND pm_as_cars.carID = \'' . $carID . '\''; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $resArray['other'][] = $row['plantName'] . ' ' . ($row['carName'] ? $row['carModel'] . $row['carName'] : $row['carModel']); } foreach ($prodIDs as $prodID) { if (!in_array($prodID, $shownProds)) { $query = 'SELECT * FROM pm_as_producer WHERE accPlantID=\'' . $prodID . '\''; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $resArray['other'][] = $row['accPlantName']; $shownProds[] = $prodID; } } foreach ($propVals as $prop) { $val = explode('_', $prop); if (!in_array($val[1], $shownProps)) { $resArray['other'][] = $val[1]; $shownProps[] = $val[0]; } } /* if ( empty($resArray) ) { die('yes'); } else { die('no'); } */ if (!empty($resArray['other']) || !empty($resArray['cats'])) { if (count($resArray['other']) || count($resArray['cats'])) { $str = trim(implode(", ", $resArray['cats'])) . (count($resArray['other']) && count($resArray['cats']) ? ': ' : '') . implode(', ', $resArray['other']); } return $str; } else { return ''; } }
/** * Handle automatic client-side updates via the CLX */ public function handleClientUpdates() { $h = ''; $delim = '<<' . time() . '>>'; if ($this->_clientElms) { foreach ($this->_clientElms as $sel => $content) { $p = strrpos($sel, '|'); $h = ''; $mode = substr($sel, $p + 1); $selector = substr($sel, 0, $p); if ($content instanceof DOMNode) { $h = trim($this->nodeContent($content, true)); } else { if (is_array($content)) { foreach ($content as $elm) { $h .= trim($this->nodeContent($elm, true)); if ($mode == 'update') { $h .= $delim; } } } else { $h = (string) $content; } } if ($mode == 'append') { C($selector)->append($h); } else { if ($mode == 'prepend') { C($selector)->prepend($h); } else { if ($mode == 'before') { C($selector)->before($h); } else { if ($mode == 'after') { C($selector)->after($h); } else { if ($mode == 'replace') { C($selector)->replaceWith($h); } else { if ($mode == 'update') { // setup custom action $a = 'Raxan.iUpdateClient(' . _var($selector) . ',' . _var($h) . ',"' . $delim . '");'; array_unshift(RaxanWebPage::$actions, $a); } else { C($selector)->html($h); } } } } } } } } return $this; }
function echo_date_fields($bd) { ?> <table> <tr><td><?php echo _('Month'); ?> :</td><td> <?php echo write_months_list($bd, _var($bd, 'month')); ?> </td></tr> <tr><td><?php echo _('Day'); ?> :</td><td> <?php echo write_days_list($bd, _var($bd, 'day')); ?> </td></tr> <tr><td><?php echo _('Year'); ?> :</td><td> <input type="radio" name="<?php echo $bd; ?> yearRadio" value="0"<?php echo _var($bd, 'yearRadio') == '0' ? ' CHECKED' : ''; ?> /><?php echo _('Unknown'); ?> <br/><input type="radio" name="<?php echo $bd; ?> yearRadio" value="1"<?php echo _var($bd, 'yearRadio') == '1' ? ' CHECKED' : ''; ?> onClick="this.form.<?php echo $bd; ?> year.focus();" /><?php echo _('As entered'); ?> : <input type="text" name="<?php echo $bd; ?> year" size="4" maxlength="4"<?php echo _var($bd, 'yearRadio') == '1' ? ' VALUE="' . abs(_var($bd, 'year')) . '"' : ''; ?> onFocus="this.form.<?php echo $bd; ?> yearRadio[1].checked=true;" /> <input type="checkbox" name="<?php echo $bd; ?> bc" value="yes"<?php echo _var($bd, 'bc') ? ' CHECKED' : ''; ?> /><?php echo _('B. C.'); ?> </td></tr><tr><td><?php echo _('Comments (in<br />English, please)'); ?> :</td><td><input type="text" size="20" maxlength="20" name="<?php echo $bd; ?> comments" value="<?php echo attr_safe(_var($bd, 'comments')); ?> " /> <?php echo _('Handy links:') . ' '; ?> <a href="javascript:setComments('<?php echo $bd; ?> ', '');" onClick="false">Empty (Unknown)</A> | <a href="javascript:setComments('<?php echo $bd; ?> ', '(circa)');" onClick="false">(circa)</A> <?php // 'Still alive' only if death-field. if ($bd == 'd') { echo " | <a href=\"javascript:setComments('{$bd}', 'Still alive');\" onClick=\"false\">Still alive</A>"; } echo '</td></tr></table>'; }
function getTitleFromParamsTranslit($cats = 0, $prodIDs = 0, $propVals = 0, $carID = 0) { if (!$cats) { $cats = _varByPattern('/c-\\d+/'); } if (!$prodIDs) { $prodIDs = _varByPattern('/p-\\d+/'); } if (!$propVals) { $propVals = _varByPattern('/propVal-\\d+/'); } if (!$carID) { $carID = _var('carID'); } $shownCats = array(); $shownProds = array(); $shownProps = array(); $resArray = array(); foreach ($cats as $pageID) { if (!in_array($pageID, $shownCats)) { $metaData = $this->getMetaData($pageID); $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle']; $shownCats[] = $pageID; } } foreach ($propVals as $prop) { $val = explode('_', $prop); if (!in_array($val[0], $shownCats)) { $metaData = $this->getMetaData($val[0]); $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle']; $shownCats[] = $val[0]; } } if ($carID) { $query = 'SELECT pm_as_cars.carName, pm_as_cars.carModel, pm_as_autocreators.plantName FROM pm_as_cars, pm_as_autocreators WHERE pm_as_cars.plantID = pm_as_autocreators.plantID AND pm_as_cars.carID = "' . $carID . '"'; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $resArray['other'][] = $row['plantName'] . ' ' . ($row['carName'] ? $row['carModel'] . $row['carName'] : $row['carModel']); } foreach ($prodIDs as $prodID) { if (!in_array($prodID, $shownProds)) { $query = 'SELECT * FROM pm_as_producer WHERE accPlantID="' . $prodID . '"'; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $resArray['other'][] = $row['accPlantName']; $shownProds[] = $prodID; } } foreach ($propVals as $prop) { $val = explode('_', $prop); if (!in_array($val[1], $shownProps)) { $resArray['other'][] = $val[1]; $shownProps[] = $val[0]; } } if (isset($resArray['cats']) && count($resArray['cats'])) { $str = trim(implode(', ', $resArray['cats'])); if (!empty($resArray['other']) && count($resArray['other'])) { foreach ($resArray['other'] as $key => $val) { $query = sprintf("SELECT propValue FROM pm_as_parts_properties WHERE propValueTranslit = '%s' LIMIT 1", $val); $result = mysql_query($query); if (0 != mysql_num_rows($result)) { $resArray['other'][$key] = mysql_result($result, 0); } } $str .= ': ' . implode(', ', $resArray['other']); } return $str; } else { return ''; } }