Забыли пароль?
Запросите новый здесь.

Автор темы: Vova
ID темы: 901
Информация:
Тема содержит 8 сообщения, была просмотрена 8604 раз.
Просмотр темы
PHP-Fusion Russia » Разное » Флуд
 Распечатать тему
Руководство по maincore.php
Vova
Небольшая проверка, чтобы файл не вызывали напрямую:
Загрузить источник  GeSHi: PHP
  1. if (eregi("maincore.php", $_SERVER['PHP_SELF'])) { die(); }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Включаем режим отображения ошибок:
Загрузить источник  GeSHi: PHP
Добавлено за 0.020 секунд, используя GeSHi 1.0.8.10


Это функция для подсчёта времени исполнения, возвращает секунды с микросекундами:
Загрузить источник  GeSHi: PHP
  1. function get_microtime() {
  2. list($usec, $sec) = explode(" ", microtime());
  3. return ((float)$usec + (float)$sec);
  4. }
  5.  
Добавлено за 0.018 секунд, используя GeSHi 1.0.8.10

Фиксируется время начала загрузки:
define("START_TIME", get_microtime());
[/geshi]
Загрузить источник  GeSHi: PHP
  1.  
  2. Защитные меры:
  3. // Prevent any possible XSS attacks via $_GET.
  4. foreach ($_GET as $check_url) {
  5. if (!is_array($check_url)) {
  6. $check_url = str_replace("\"", "", $check_url);
  7. if ((eregi("<[^>]*script*\"?[^>]*>", $check_url)) || (eregi("<[^>]*object*\"?[^>]*>", $check_url)) ||
  8. (eregi("<[^>]*iframe*\"?[^>]*>", $check_url)) || (eregi("<[^>]*applet*\"?[^>]*>", $check_url)) ||
  9. (eregi("<[^>]*meta*\"?[^>]*>", $check_url)) || (eregi("<[^>]*style*\"?[^>]*>", $check_url)) ||
  10. (eregi("<[^>]*form*\"?[^>]*>", $check_url)) || (eregi("\([^>]*\"?[^)]*\)", $check_url)) ||
  11. (eregi("\"", $check_url))) {
  12. die ();
  13. }
  14. }
  15. }
  16. unset($check_url);
  17.  
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Здесь можно включить сжатие страниц, по умолчанию выключено:
Загрузить источник  GeSHi: PHP
  1. // Start Output Buffering
  2. //ob_start("ob_gzhandler"); //Uncomment this line to enable output compression.
Добавлено за 0.020 секунд, используя GeSHi 1.0.8.10


Ищем файл config.php. Тот каталог, в котором он расположен, считается корневым каталогом сайта. Путь к нему запоминается в константе BASEDIR:
Загрузить источник  GeSHi: PHP
  1. // Locate config.php and set the basedir path
  2. $folder_level = ""; $i = 0;
  3. while (!file_exists($folder_level."config.php")) {
  4. $folder_level .= "../"; $i++;
  5. if ($i == 5) { die("Config file not found"); }
  6. }
  7. require_once $folder_level."config.php";
  8. define("BASEDIR", $folder_level);
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


Проверяется содержимое config.php. Если база данных не определена, запускается программа установки:
Загрузить источник  GeSHi: PHP
  1. // If config.php is empty, activate setup.php script
  2. if (!isset($db_name)) { redirect("setup.php"); }
Добавлено за 0.020 секунд, используя GeSHi 1.0.8.10


В комментарии указано, что это определения для многосайтовых приложений. Реально в подключаемом ниже сайте определены константы таблиц базы данных:
Загрузить источник  GeSHi: PHP
  1. // Multisite definitions
  2. require_once BASEDIR."includes/multisite_include.php";
Добавлено за 0.020 секунд, используя GeSHi 1.0.8.10


Устанавливается соединение с базой данных:
Загрузить источник  GeSHi: PHP
  1. // Establish mySQL database connection
  2. $link = dbconnect($db_host, $db_user, $db_pass, $db_name);
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


Получаем установки сайта из базы данных:
Загрузить источник  GeSHi: PHP
  1. // Fetch the Site Settings from the database and store them in the $settings variable
  2. $settings = dbarray(dbquery("SELECT * FROM ".DB_SETTINGS));
Добавлено за 0.021 секунд, используя GeSHi 1.0.8.10


Установка глобальных переменных:
Загрузить источник  GeSHi: PHP
  1. // Sanitise $_SERVER globals
  2. $_SERVER['PHP_SELF'] = cleanurl($_SERVER['PHP_SELF']);
  3. $_SERVER['QUERY_STRING'] = isset($_SERVER['QUERY_STRING']) ? cleanurl($_SERVER['QUERY_STRING']) : "";
  4. $_SERVER['REQUEST_URI'] = isset($_SERVER['REQUEST_URI']) ? cleanurl($_SERVER['REQUEST_URI']) : "";
  5. $PHP_SELF = cleanurl($_SERVER['PHP_SELF']);
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Определяются общие константы:
Загрузить источник  GeSHi: PHP
  1. // Common definitions
  2. define("IN_FUSION", TRUE);
  3. define("FUSION_REQUEST", isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != "" ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME']);
  4. define("FUSION_QUERY", isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : "");
  5. define("FUSION_SELF", basename($_SERVER['PHP_SELF']));
  6. define("USER_IP", $_SERVER['REMOTE_ADDR']);
  7. define("QUOTES_GPC", (ini_get('magic_quotes_gpc') ? TRUE : FALSE));
  8. // Path definitions
  9. define("ADMIN", BASEDIR."administration/");
  10. define("IMAGES", BASEDIR."images/");
  11. define("IMAGES_A", IMAGES."articles/");
  12. define("IMAGES_N", IMAGES."news/");
  13. define("IMAGES_NC", IMAGES."news_cats/");
  14. define("RANKS", IMAGES."ranks/");
  15. define("INCLUDES", BASEDIR."includes/");
  16. define("LOCALE", BASEDIR."locale/");
  17. define("LOCALESET", $settings['locale']."/");
  18. define("FORUM", BASEDIR."forum/");
  19. define("INFUSIONS", BASEDIR."infusions/");
  20. define("PHOTOS", IMAGES."photoalbum/");
  21. define("THEMES", BASEDIR."themes/");
Добавлено за 0.026 секунд, используя GeSHi 1.0.8.10


Инициализация некоторых переменных:
Загрузить источник  GeSHi: PHP
  1. // Predefine mysql_cache variables
  2. $smiley_cache = ""; $bbcode_cache = ""; $groups_cache = ""; $forum_rank_cache = ""; $forum_mod_rank_cache = "";
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Функции работы с базами данных:
// MySQL database functions
Загрузить источник  GeSHi: PHP
  1. function dbquery($query) {
  2. $result = @mysql_query($query);
  3. if (!$result) {
  4. echo mysql_error();
  5. return false;
  6. } else {
  7. return $result;
  8. }
  9. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbcount($field, $table, $conditions = "") {
  2. $cond = ($conditions ? " WHERE ".$conditions : "");
  3. $result = @mysql_query("SELECT Count".$field." FROM ".$table.$cond);
  4. if (!$result) {
  5. echo mysql_error();
  6. return false;
  7. } else {
  8. $rows = mysql_result($result, 0);
  9. return $rows;
  10. }
  11. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbresult($query, $row) {
  2. $result = @mysql_result($query, $row);
  3. if (!$result) {
  4. echo mysql_error();
  5. return false;
  6. } else {
  7. return $result;
  8. }
  9. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbrows($query) {
  2. $result = @mysql_num_rows($query);
  3. return $result;
  4. }
Добавлено за 0.028 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbarray($query) {
  2. $result = @mysql_fetch_assoc($query);
  3. if (!$result) {
  4. echo mysql_error();
  5. return false;
  6. } else {
  7. return $result;
  8. }
  9. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbarraynum($query) {
  2. $result = @mysql_fetch_row($query);
  3. if (!$result) {
  4. echo mysql_error();
  5. return false;
  6. } else {
  7. return $result;
  8. }
  9. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function dbconnect($db_host, $db_user, $db_pass, $db_name) {
  2. $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
  3. $db_select = @mysql_select_db($db_name);
  4. if (!$db_connect) {
  5. die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br />".mysql_errno()." : ".mysql_error()."</div>");
  6. } elseif (!$db_select) {
  7. die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to select MySQL database</b><br />".mysql_errno()." : ".mysql_error()."</div>");
  8. }
  9. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Подключение национальной локали:
Загрузить источник  GeSHi: PHP
  1. // Initialise the $locale array
  2. $locale = array();
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. // Load the Global language file
  2. include LOCALE.LOCALESET."global.php";
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Проверка IP, если он в вашем черном списке, то редиректим на google:
Загрузить источник  GeSHi: PHP
  1. // Check if users full or partial ip is blacklisted
  2. $sub_ip1 = substr(USER_IP, 0, strlen(USER_IP) - strlen(strrchr(USER_IP, ".")));
  3. $sub_ip2 = substr($sub_ip1, 0, strlen($sub_ip1) - strlen(strrchr($sub_ip1, ".")));
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. if (dbcount("(*)", DB_BLACKLIST, "blacklist_ip='".USER_IP."' OR blacklist_ip='$sub_ip1' OR blacklist_ip='$sub_ip2'")) {
  2. redirect("
  3. http://www.google.com/
  4. ");
  5. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Проверяем куки. Если не имеются, делаем:
Загрузить источник  GeSHi: PHP
  1. // PHP-Fusion user cookie functions
  2. if (!isset($_COOKIE[COOKIE_PREFIX.'visited'])) {
  3. $result = dbquery("UPDATE ".DB_SETTINGS." SET counter=counter+1");
  4. setcookie(COOKIE_PREFIX."visited", "yes", time() + 31536000, "/", "", "0");
  5. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Устанавливаем тему оформления в соответствии с пользовательскими настройками:
//check that site or user theme exists
Загрузить источник  GeSHi: PHP
  1. function theme_exists($theme) {
  2. if (!file_exists(THEMES) || !is_dir(THEMES)) {
  3. return false;
  4. } else if (file_exists(THEMES.$theme."/theme.php") && file_exists(THEMES.$theme."/styles.css")) {
  5. define("THEME", THEMES.$theme."/");
  6. return true;
  7. } else {
  8. $dh = opendir(THEMES);
  9. while (false !== ($entry = readdir($dh))) {
  10. if ($entry != "." && $entry != ".." && is_dir(THEMES.$entry)) {
  11. if (file_exists(THEMES.$entry."/theme.php") && file_exists(THEMES.$entry."/styles.css")) {
  12. define("THEME", THEMES.$entry."/");
  13. return true;
  14. }
  15. }
  16. }
  17. closedir($dh);
  18. if (!defined("THEME")) {
  19. return false;
  20. }
  21. }
  22. }
Добавлено за 0.025 секунд, используя GeSHi 1.0.8.10


Обработка входа на сайт (имя, пароль, права и т.д.):
Загрузить источник  GeSHi: PHP
  1. if (isset($_POST['login'])) {
  2. $user_pass = md5($_POST['user_pass']);
  3. $user_name = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", stripinput($_POST['user_name']));
  4. $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_name='$user_name' AND (user_password='".md5($user_pass)."' OR user_password='$user_pass') LIMIT 1");
  5. if (dbrows($result)) {
  6. $data = dbarray($result);
  7. if ($data['user_password'] == $user_pass) {
  8. $result = dbquery("UPDATE ".DB_USERS." SET user_password='".md5($user_pass)."' WHERE user_id='".$data['user_id']."'");
  9. }
  10. $cookie_value = $data['user_id'].".".$user_pass;
  11. if ($data['user_status'] == 0) {
  12. $cookie_exp = isset($_POST['remember_me']) ? time() + 3600 * 24 * 30 : time() + 3600 * 3;
  13. header("P3P: CP='NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM'");
  14. setcookie(COOKIE_PREFIX."user", $cookie_value, $cookie_exp, "/", "", "0");
  15. redirect(BASEDIR."setuser.php?user=".$data['user_name'], true);
  16. } elseif ($data['user_status'] == 1) {
  17. redirect(BASEDIR."setuser.php?error=1", true);
  18. } elseif ($data['user_status'] == 2) {
  19. redirect(BASEDIR."setuser.php?error=2", true);
  20. }
  21. } else {
  22. redirect(BASEDIR."setuser.php?error=3");
  23. }
  24. }
Добавлено за 0.027 секунд, используя GeSHi 1.0.8.10


Проверка на наличие cookies:
Загрузить источник  GeSHi: PHP
  1. if (isset($_COOKIE[COOKIE_PREFIX.'user'])) {
  2. $cookie_vars = explode(".", $_COOKIE[COOKIE_PREFIX.'user']);
  3. $cookie_1 = isnum($cookie_vars['0']) ? $cookie_vars['0'] : "0";
  4. $cookie_2 = (preg_check("/^[0-9a-z]{32}$/", $cookie_vars['1']) ? $cookie_vars['1'] : "");
  5. $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='$cookie_1' AND user_password='".md5($cookie_2)."' LIMIT 1");
  6. unset($cookie_vars,$cookie_1,$cookie_2);
  7. if (dbrows($result)) {
  8. $userdata = dbarray($result);
  9. if ($userdata['user_status'] == 0) {
  10. if ($userdata['user_theme'] != "Default" && file_exists(THEMES.$userdata['user_theme']."/theme.php") && ($settings['userthemes'] == 1 || $userdata['user_level'] >= 101)) {
  11. if (!theme_exists($userdata['user_theme'])) {
  12. echo "<strong>".$settings['sitename']." - ".$locale['global_300'].".</strong><br /><br />\n";
  13. echo $locale['global_301'];
  14. die();
  15. }
  16. } else {
  17. if (!theme_exists($settings['theme'])) {
  18. echo "<strong>".$settings['sitename']." - ".$locale['global_300'].".</strong><br /><br />\n";
  19. echo $locale['global_301'];
  20. die();
  21. }
  22. }
  23. if ($userdata['user_offset'] <> 0) {
  24. $settings['timeoffset'] = $settings['timeoffset'] + $userdata['user_offset'];
  25. }
  26. if (!isset($_COOKIE[COOKIE_PREFIX.'lastvisit'])) {
  27. $result = dbquery("UPDATE ".DB_USERS." SET user_threads='' WHERE user_id='".$userdata['user_id']."'");
  28. @setcookie(COOKIE_PREFIX."lastvisit", $userdata['user_lastvisit'], time() + 3600, "/", "", "0");
  29. $lastvisited = $userdata['user_lastvisit'];
  30. } else {
  31. $lastvisited = $_COOKIE[COOKIE_PREFIX.'lastvisit'];
  32. }
  33. if ($userdata['user_level'] > 101) {
  34. if (isset($_COOKIE[COOKIE_PREFIX.'admin']) && (!eregi(str_replace("../", "", "/".ADMIN), FUSION_REQUEST) || USER_IP != $userdata['user_ip'])) {
  35. setcookie(COOKIE_PREFIX."admin", "", time() - 7200, "/", "", "0");
  36. }
  37. }
  38. } else {
  39. header("P3P: CP='NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM'");
  40. setcookie(COOKIE_PREFIX."user", "", time() - 7200, "/", "", "0");
  41. setcookie(COOKIE_PREFIX."lastvisit", "", time() - 7200, "/", "", "0");
  42. redirect(BASEDIR."index.php", true);
  43. }
  44. } else {
  45. header("P3P: CP='NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM'");
  46. setcookie(COOKIE_PREFIX."user", "", time() - 7200, "/", "", "0");
  47. setcookie(COOKIE_PREFIX."lastvisit", "", time() - 7200, "/", "", "0");
  48. redirect(BASEDIR."index.php", true);
  49. }
  50. } else {
  51. if (!theme_exists($settings['theme'])) {
  52. echo "<strong>".$settings['sitename']." - ".$locale['global_300'].".</strong><br /><br />\n";
  53. echo $locale['global_301'];
  54. die();
  55. }
  56. $userdata = ""; $userdata['user_level'] = 0; $userdata['user_rights'] = ""; $userdata['user_groups'] = "";
  57. }
Добавлено за 0.035 секунд, используя GeSHi 1.0.8.10


Функция redirect - перенаправление на нужный адрес. В зависимости от значения переменной $script переход идёт либо 302, либо javascript. Для лучшего восприятия Яндексом желательно false поменять на true :
// Redirect browser using header or script function
Загрузить источник  GeSHi: PHP
  1. function redirect($location, $script = false) {
  2. if (!$script) {
  3. header("Location: ".str_replace("&amp;", "&", $location));
  4. } else {
  5. echo "<script type='text/javascript'>document.location.href='".str_replace("&amp;", "&", $location)."'</script>\n";
  6. }
  7. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Функция cleanurl - приводит УРЛ, сохранённый в базе данных в читаемый вид:
// Clean URL Function, prevents entities in server globals
Загрузить источник  GeSHi: PHP
  1. function cleanurl($url) {
  2. $bad_entities = array("&", "\"", "'", '\"', "\'", "<", ">", "(", ")", "*");
  3. $safe_entities = array("&amp;", "", "", "", "", "", "", "", "", "");
  4. $url = str_replace($bad_entities, $safe_entities, $url);
  5. return $url;
  6. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Функция stripinput - заменяет некоторые служебные символы на неинтерпретируемые эквиваленты:
// Strip Input Function, prevents HTML in unwanted places
Загрузить источник  GeSHi: PHP
  1. function stripinput($text) {
  2. if (QUOTES_GPC) $text = stripslashes($text);
  3. $search = array("&", "\"", "'", "\\", '\"', "\'", "<", ">", "&nbsp;");
  4. $replace = array("&amp;", "&quot;", "&#39;", "&#92;", "&quot;", "&#39;", "&lt;", "&gt;", " ");
  5. $text = str_replace($search, $replace, $text);
  6. return $text;
  7. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Ещё несколько функций, делающих обработку текстовых данных, подставляющих или удаляющих специальные символы:
// stripslash function, only stripslashes if magic_quotes_gpc is on
Загрузить источник  GeSHi: PHP
  1. function stripslash($text) {
  2. if (QUOTES_GPC) { $text = stripslashes($text); }
  3. return $text;
  4. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


// stripslash function, add correct number of slashes depending on quotes_gpc
Загрузить источник  GeSHi: PHP
  1. function addslash($text) {
  2. if (!QUOTES_GPC) {
  3. $text = addslashes(addslashes($text));
  4. } else {
  5. $text = addslashes($text);
  6. }
  7. return $text;
  8. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


// htmlentities is too agressive so we use this function
Загрузить источник  GeSHi: PHP
  1. function phpentities($text) {
  2. $search = array("&", "\"", "'", "\\", "<", ">");
  3. $replace = array("&amp;", "&quot;", "&#39;", "&#92;", "&lt;", "&gt;");
  4. $text = str_replace($search, $replace, $text);
  5. return $text;
  6. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


// Trim a line of text to a preferred length
Загрузить источник  GeSHi: PHP
  1. function trimlink($text, $length) {
  2. $dec = array("&", "\"", "'", "\\", '\"', "\'", "<", ">");
  3. $enc = array("&amp;", "&quot;", "&#39;", "&#92;", "&quot;", "&#39;", "&lt;", "&gt;");
  4. $text = str_replace($enc, $dec, $text);
  5. if (strlen($text) > $length) $text = substr($text, 0, ($length-3))."...";
  6. $text = str_replace($dec, $enc, $text);
  7. return $text;
  8. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Функции проверки входных данных:
// Validate numeric input
Загрузить источник  GeSHi: PHP
  1. function isnum($value) {
  2. if (!is_array($value)) {
  3. return (preg_match("/^[0-9]+$/", $value));
  4. } else {
  5. return false;
  6. }
  7. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


// custom preg-match function
Загрузить источник  GeSHi: PHP
  1. function preg_check($expression, $value) {
  2. if (!is_array($value)) {
  3. return preg_match($expression, $value);
  4. } else {
  5. return false;
  6. }
  7. }
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10


Функции работы со смайлами и bb- кодами:
// Cache smileys mysql
Загрузить источник  GeSHi: PHP
  1. function cache_smileys() {
  2. global $smiley_cache;
  3. $result = dbquery("SELECT * FROM ".DB_SMILEYS);
  4. if (dbrows($result)) {
  5. $smiley_cache = array();
  6. while ($data = dbarray($result)) {
  7. $smiley_cache[] = array(
  8. "smiley_code" => $data['smiley_code'],
  9. "smiley_image" => $data['smiley_image'],
  10. "smiley_text" => $data['smiley_text']
  11. );
  12. }
  13. } else {
  14. $smiley_cache = array();
  15. }
  16. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


// Parse smiley bbcode
Загрузить источник  GeSHi: PHP
  1. function parsesmileys($message) {
  2. global $smiley_cache;
  3. if (!preg_match("#(\[code\](.*?)\[/code\]|\[geshi=(.*?)\](.*?)\[/geshi\]|\[php\](.*?)\[/php\])#si", $message)) {
  4. if (!$smiley_cache) { cache_smileys(); }
  5. if (is_array($smiley_cache) && count($smiley_cache)) {
  6. foreach ($smiley_cache as $smiley) {
  7. $smiley_code = preg_quote($smiley['smiley_code']);
  8. $smiley_image = "<img src='".get_image("smiley_".$smiley['smiley_text'])."' alt='".$smiley['smiley_text']."' style='vertical-align:middle;' />";
  9. $message = preg_replace("#{$smiley_code}#si", $smiley_image, $message);
  10. }
  11. }
  12. }
  13. return $message;
  14. }
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10


// Show smiley icons in comments, forum and other post pages
Загрузить источник  GeSHi: PHP
  1. function displaysmileys($textarea, $form = "inputform") {
  2. global $smiley_cache;
  3. $smileys = ""; $i = 0;
  4. if (!$smiley_cache) { cache_smileys(); }
  5. if (is_array($smiley_cache) && count($smiley_cache)) {
  6. foreach ($smiley_cache as $smiley) {
  7. if ($i != 0 && ($i % 10 == 0)) { $smileys .= "<br />\n"; $i++; }
  8. $smileys .= "<img src='".get_image("smiley_".$smiley['smiley_text'])."' alt='".$smiley['smiley_text']."' onclick=\"insertText('".$textarea."', '".$smiley['smiley_code']."', '".$form."');\" />\n";
  9. }
  10. }
  11. return $smileys;
  12. }
Добавлено за 0.041 секунд, используя GeSHi 1.0.8.10


// Cache bbcode mysql
Загрузить источник  GeSHi: PHP
  1. function cache_bbcode() {
  2. global $bbcode_cache;
  3. $result = dbquery("SELECT * FROM ".DB_BBCODES." ORDER BY bbcode_order ASC");
  4. if (dbrows($result)) {
  5. $bbcode_cache = array();
  6. while ($data = dbarray($result)) {
  7. $bbcode_cache[] = $data['bbcode_name'];
  8. }
  9. } else {
  10. $bbcode_cache = array();
  11. }
  12. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


// Parse bbcode
Загрузить источник  GeSHi: PHP
  1. function parseubb($text, $selected=false) {
  2. global $bbcode_cache;
  3. if (!$bbcode_cache) { cache_bbcode(); }
  4. if (is_array($bbcode_cache) && count($bbcode_cache)) {
  5. if ($selected) { $sel_bbcodes = explode("|", $selected); }
  6. foreach ($bbcode_cache as $bbcode) {
  7. if ($selected && in_array($bbcode, $sel_bbcodes)) {
  8. if (file_exists(INCLUDES."bbcodes/".$bbcode."_bbcode_include.php")) {
  9. if (file_exists(LOCALE.LOCALESET."bbcodes/".$bbcode.".php")) {
  10. include (LOCALE.LOCALESET."bbcodes/".$bbcode.".php");
  11. } elseif (file_exists(LOCALE."English/bbcodes/".$bbcode.".php")) {
  12. include (LOCALE."English/bbcodes/".$bbcode.".php");
  13. }
  14. include (INCLUDES."bbcodes/".$bbcode."_bbcode_include.php");
  15. }
  16. } elseif (!$selected) {
  17. if (file_exists(INCLUDES."bbcodes/".$bbcode."_bbcode_include.php")) {
  18. if (file_exists(LOCALE.LOCALESET."bbcodes/".$bbcode.".php")) {
  19. include (LOCALE.LOCALESET."bbcodes/".$bbcode.".php");
  20. } elseif (file_exists(LOCALE."English/bbcodes/".$bbcode.".php")) {
  21. include (LOCALE."English/bbcodes/".$bbcode.".php");
  22. }
  23. include (INCLUDES."bbcodes/".$bbcode."_bbcode_include.php");
  24. }
  25. }
  26. }
  27. }
  28. $text = descript($text, false);
  29. return $text;
  30. }
Добавлено за 0.026 секунд, используя GeSHi 1.0.8.10


Функция, маскирующая e-mail на страницах сайта. Предназначена для защиты от парсеров различных спам-приложений:
// Javascript email encoder by Tyler Akins
//
Загрузить источник  GeSHi: PHP
  1. function hide_email($email, $title = "", $subject = "") {
  2. if (strpos($email, "@")) {
  3. $parts = explode("@", $email);
  4. $MailLink = "<a href='mailto:".$parts[0]."@".$parts[1];
  5. if ($subject != "") { $MailLink .= "?subject=".urlencode($subject); }
  6. $MailLink .= "'>".($title?$title:$parts[0]."@".$parts[1])."</a>";
  7. $MailLetters = "";
  8. for ($i = 0; $i < strlen($MailLink); $i++) {
  9. $l = substr($MailLink, $i, 1);
  10. if (strpos($MailLetters, $l) === false) {
  11. $p = rand(0, strlen($MailLetters));
  12. $MailLetters = substr($MailLetters, 0, $p).$l.substr($MailLetters, $p, strlen($MailLetters));
  13. }
  14. }
  15. $MailLettersEnc = str_replace("\\", "
  16. \\\\
  17. ", $MailLetters);
  18. $MailLettersEnc = str_replace("\"", "
  19. \\\
  20. "", $MailLettersEnc);
  21. $MailIndexes = "";
  22. for ($i = 0; $i < strlen($MailLink); $i ++) {
  23. $index = strpos($MailLetters, substr($MailLink, $i, 1));
  24. $index += 48;
  25. $MailIndexes .= chr($index);
  26. }
  27. $MailIndexes = str_replace("\\", "
  28. \\\\
  29. ", $MailIndexes);
  30. $MailIndexes = str_replace("\"", "
  31. \\\
  32. "", $MailIndexes);
  33.  
  34. $res = "<script type='text/javascript'>";
  35. $res .= "ML=\"".str_replace("<", "xxxx", $MailLettersEnc)."\";";
  36. $res .= "MI=\"".str_replace("<", "xxxx", $MailIndexes)."\";";
  37. $res .= "ML=ML.replace(/xxxx/g, '<');";
  38. $res .= "MI=MI.replace(/xxxx/g, '<');"; $res .= "OT=\"\";";
  39. $res .= "for(j=0;j < MI.length;j++){";
  40. $res .= "OT+=ML.charAt(MI.charCodeAt(j)-48);";
  41. $res .= "}document.write(OT);";
  42. $res .= "</script>";
  43.  
  44. return $res;
  45. } else {
  46. return $email;
  47. }
  48. }
Добавлено за 0.028 секунд, используя GeSHi 1.0.8.10


Замена пробелов, символов табуляции при форматировании текста:
// Format spaces and tabs in code bb tags
Загрузить источник  GeSHi: PHP
  1. function formatcode($text) {
  2. $text = str_replace(" ", "&nbsp; ", $text);
  3. $text = str_replace(" ", " &nbsp;", $text);
  4. $text = str_replace("\t", "&nbsp; &nbsp;", $text);
  5. $text = preg_replace("/^ {1}/m", "&nbsp;", $text);
  6. return $text;
  7. }
  8.  
  9. Функция, позволяющая выделять определённые слова:
  10. // Highlights given words in subject
  11. [geshi=php]function highlight_words($word, $subject) {
  12. if (is_array($word)) {
  13. $regex_chars = "*|#.+?(){}[]^$/";
  14. for ($j = 0; $j < count($word); $j++) {
  15. for ($i = 0; $i < strlen($regex_chars); $i++) {
  16. $char = substr($regex_chars, $i, 1);
  17. $word[$j] = str_replace($char, '\\'.$char, $word[$j]);
  18. }
  19. $subject = preg_replace("/(".$word[$j].")/is", "<span style='background-color:yellow;font-weight:bold;padding-left:2px;padding-right:2px'>\\1</span>", $subject);
  20. }
  21. }
  22. return $subject;
  23. }
Добавлено за 0.025 секунд, используя GeSHi 1.0.8.10


Функция descript - конвертироует проблематичные символы в их цифровые эквиваленты и удаляет потенциально опасные теги и ключевые слова:
// This function sanitises news & article submissions
Загрузить источник  GeSHi: PHP
  1. function descript($text, $striptags = true) {
  2. // Convert problematic ascii characters to their true values
  3. $search = array("40","41","58","65","66","67","68","69","70",
  4. "71","72","73","74","75","76","77","78","79","80","81",
  5. "82","83","84","85","86","87","88","89","90","97","98",
  6. "99","100","101","102","103","104","105","106","107",
  7. "108","109","110","111","112","113","114","115","116",
  8. "117","118","119","120","121","122"
  9. );
  10. $replace = array("(",")",":","a","b","c","d","e","f","g","h",
  11. "i","j","k","l","m","n","o","p","q","r","s","t","u",
  12. "v","w","x","y","z","a","b","c","d","e","f","g","h",
  13. "i","j","k","l","m","n","o","p","q","r","s","t","u",
  14. "v","w","x","y","z"
  15. );
  16. $entities = count($search);
  17. for ($i=0; $i < $entities; $i++) {
  18. $text = preg_replace("#(&\#)(0*".$search[$i]."+);*#si", $replace[$i], $text);
  19. }
  20. $text = preg_replace('#(&\#x)([0-9A-F]+);*#si', "", $text);
  21. $text = preg_replace('#(<[^>]+[/\"\'\s])(onmouseover|onmousedown|onmouseup|onmouseout|onmousemove|onclick|ondblclick|onfocus|onload|xmlns)[^>]*>#iU', ">", $text);
  22. $text = preg_replace('#([a-z]*)=([\`\'\"]*)script:#iU', '$1=$2nojscript...', $text);
  23. $text = preg_replace('#([a-z]*)=([\`\'\"]*)javascript:#iU', '$1=$2nojavascript...', $text);
  24. $text = preg_replace('#([a-z]*)=([\'\"]*)vbscript:#iU', '$1=$2novbscript...', $text);
  25. $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU', "$1>", $text);
  26. $text = preg_replace('#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU', "$1>", $text);
  27. if ($striptags) {
  28. do {
  29. $thistext = $text;
  30. $text = preg_replace('#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i', "", $text);
  31. } while ($thistext != $text);
  32. }
  33. return $text;
  34. }
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10


Функция verify_image - проверяет графические файлы на предмет внедрённых шпионскихили троянских фрагментов, вредоносного кода. Обязательно используйте подобные проверки при написании различного рода расширений:
// Scan image files for malicious code
Загрузить источник  GeSHi: PHP
  1. function verify_image($file) {
  2. $txt = file_get_contents($file);
  3. $image_safe = true;
  4. if (preg_match('#&(quot|lt|gt|nbsp|<?php);#i', $txt)) { $image_safe = false; }
  5. elseif (preg_match("#&\#x([0-9a-f]+);#i", $txt)) { $image_safe = false; }
  6. elseif (preg_match('#&\#([0-9]+);#i', $txt)) { $image_safe = false; }
  7. elseif (preg_match("#([a-z]*)=([\`\'\"]*)script:#iU", $txt)) { $image_safe = false; }
  8. elseif (preg_match("#([a-z]*)=([\`\'\"]*)javascript:#iU", $txt)) { $image_safe = false; }
  9. elseif (preg_match("#([a-z]*)=([\'\"]*)vbscript:#iU", $txt)) { $image_safe = false; }
  10. elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU", $txt)) { $image_safe = false; }
  11. elseif (preg_match("#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU", $txt)) { $image_safe = false; }
  12. elseif (preg_match("#</*(applet|link|style|script|iframe|frame|frameset)[^>]*>#i", $txt)) { $image_safe = false; }
  13. return $image_safe;
  14. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Функции работы с каптчей - проверочной картинкой, служащей для ограничения автоматического воздействия на сайт (регистрации, комментарии и т.д.):
// captcha routines
Загрузить источник  GeSHi: PHP
  1. function make_captcha() {
  2. global $settings;
  3. $captcha_string = ""; $captcha_encode = "";
  4. $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  5. for ($i = 0; $i < 5; $i++) {
  6. $captcha_string .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  7. }
  8. for ($i = 0; $i < 31; $i++) {
  9. $captcha_encode .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  10. }
  11. $result = mysql_query("INSERT INTO ".DB_PREFIX."captcha (captcha_datestamp, captcha_ip, captcha_encode, captcha_string) VALUES('".time()."', '".USER_IP."', '$captcha_encode', '$captcha_string')");
  12. if ($settings['validation_method'] == "image") {
  13. return "<input type='hidden' name='captcha_encode' value='".$captcha_encode."' /><img src='".INCLUDES."captcha_include.php?captcha_code=".$captcha_encode."' alt='' />\n";
  14. } else {
  15. return "<input type='hidden' name='captcha_encode' value='".$captcha_encode."' /><strong>".$captcha_string."</strong>\n";
  16. }
  17. }
Добавлено за 0.025 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function check_captcha($captchs_encode, $captcha_string) {
  2. if (preg_check("/^[0-9A-Za-z]+$/", $captchs_encode) && preg_check("/^[0-9A-Za-z]+$/", $captcha_string)) {
  3. $result = dbquery("SELECT * FROM ".DB_CAPTCHA." WHERE captcha_ip='".USER_IP."' AND captcha_encode='".$captchs_encode."' AND captcha_string='".$captcha_string."'");
  4. if (dbrows($result)) {
  5. $result = dbquery("DELETE FROM ".DB_CAPTCHA." WHERE captcha_ip='".USER_IP."' AND captcha_encode='".$captchs_encode."' AND captcha_string='".$captcha_string."'");
  6. return true;
  7. } else {
  8. return false;
  9. }
  10. } else {
  11. return false;
  12. }
  13. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Замена нецензурных, запрещённых слов:
// Replace offensive words with the defined replacement word
Загрузить источник  GeSHi: PHP
  1. function censorwords($text) {
  2. global $settings;
  3. if ($settings['bad_words_enabled'] == "1" && $settings['bad_words'] != "" ) {
  4. $word_list = explode("\r\n", $settings['bad_words']);
  5. for ($i=0; $i < count($word_list); $i++) {
  6. if ($word_list[$i] != "") $text = preg_replace("/".$word_list[$i]."/si", $settings['bad_word_replace'], $text);
  7. }
  8. }
  9. return $text;
  10. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Функция возвращает текст, соответствующий уровню пользователя ("пользователь", "администратор", "супер-администратор"):
// Display the user's level
Загрузить источник  GeSHi: PHP
  1. function getuserlevel($userlevel) {
  2. global $locale;
  3. if ($userlevel == 101) { return $locale['user1'];
  4. } elseif ($userlevel == 102) { return $locale['user2'];
  5. } elseif ($userlevel == 103) { return $locale['user3']; }
  6. }
Добавлено за 0.025 секунд, используя GeSHi 1.0.8.10


Проверка прав администратора:
// Check if Administrator has correct rights assigned
Загрузить источник  GeSHi: PHP
  1. function checkrights($right) {
  2. if (iADMIN && in_array($right, explode(".", iUSER_RIGHTS))) {
  3. return true;
  4. } else {
  5. return false;
  6. }
  7. }
Добавлено за 0.028 секунд, используя GeSHi 1.0.8.10


Проверка принадлежности пользователя к группе:
// Check if user is assigned to the specified user group
Загрузить источник  GeSHi: PHP
  1. function checkgroup($group) {
  2. if (iSUPERADMIN) { return true; }
  3. elseif (iADMIN && ($group == "0" || $group == "101" || $group == "102")) { return true;
  4. } elseif (iMEMBER && ($group == "0" || $group == "101")) { return true;
  5. } elseif (iGUEST && $group == "0") { return true;
  6. } elseif (iMEMBER && in_array($group, explode(".", iUSER_GROUPS))) {
  7. return true;
  8. } else {
  9. return false;
  10. }
  11. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Вспомогательные функции для работы с пользователями, группами и их правами:
// Cache groups mysql
Загрузить источник  GeSHi: PHP
  1. function cache_groups() {
  2. global $groups_cache;
  3. $result = dbquery("SELECT * FROM ".DB_USER_GROUPS." ORDER BY group_id ASC");
  4. if (dbrows($result)) {
  5. $groups_cache = array();
  6. while ($data = dbarray($result)) {
  7. $groups_cache[] = $data;
  8. }
  9. } else {
  10. $groups_cache = array();
  11. }
  12. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


// Compile access levels & user group array
Загрузить источник  GeSHi: PHP
  1. function getusergroups() {
  2. global $locale, $groups_cache;
  3. $groups_array = array(
  4. array("0", $locale['user0']),
  5. array("101", $locale['user1']),
  6. array("102", $locale['user2']),
  7. array("103", $locale['user3'])
  8. );
  9. if (!$groups_cache) { cache_groups(); }
  10. if (is_array($groups_cache) && count($groups_cache)) {
  11. foreach ($groups_cache as $group) {
  12. array_push($groups_array, array($group['group_id'], $group['group_name']));
  13. }
  14. }
  15. return $groups_array;
  16. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


// Get the name of the access level or user group
Загрузить источник  GeSHi: PHP
  1. function getgroupname($group_id, $return_desc = false) {
  2. global $locale, $groups_cache;
  3. if ($group_id == "0") { return $locale['user0'];
  4. } elseif ($group_id == "101") { return $locale['user1']; exit;
  5. } elseif ($group_id == "102") { return $locale['user2']; exit;
  6. } elseif ($group_id == "103") { return $locale['user3']; exit;
  7. } else {
  8. if (!$groups_cache) { cache_groups(); }
  9. if (is_array($groups_cache) && count($groups_cache)) {
  10. foreach ($groups_cache as $group) {
  11. if ($group_id == $group['group_id']) { return ($return_desc ? ($group['group_description'] ? $group['group_description'] : '-') : $group['group_name']); exit; }
  12. }
  13. }
  14. }
  15. return "N/A";
  16. }
Добавлено за 0.025 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: PHP
  1. function groupaccess($field) {
  2. if (iGUEST) { return "$field = '0'";
  3. } elseif (iSUPERADMIN) { return "1 = 1";
  4. } elseif (iADMIN) { $res = "($field='0' OR $field='101' OR $field='102'";
  5. } elseif (iMEMBER) { $res = "($field='0' OR $field='101'";
  6. }
  7. if (iUSER_GROUPS != "" && !iSUPERADMIN) { $res .= " OR $field='".str_replace(".", "' OR $field='", iUSER_GROUPS)."'"; }
  8. $res .= ")";
  9. return $res;
  10. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Полезная функция, создаёт массив, содержащий список файлов в каталоге (папке) на сайте:
// Create a list of files or folders and store them in an array
Загрузить источник  GeSHi: PHP
  1. function makefilelist($folder, $filter, $sort=true, $type="files") {
  2. $res = array();
  3. $filter = explode("|", $filter);
  4. $temp = opendir($folder);
  5. while ($file = readdir($temp)) {
  6. if ($type == "files" && !in_array($file, $filter)) {
  7. if (!is_dir($folder.$file)) { $res[] = $file; }
  8. } elseif ($type == "folders" && !in_array($file, $filter)) {
  9. if (is_dir($folder.$file)) { $res[] = $file; }
  10. }
  11. }
  12. closedir($temp);
  13. if ($sort) { sort($res); }
  14. return $res;
  15. }
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Функция, превращающая массив, выдаваемый предыдущей функцией, в html-список:
// Create a selection list from an array created by makefilelist()
Загрузить источник  GeSHi: PHP
  1. function makefileopts($files, $selected = "") {
  2. $res = "";
  3. for ($i = 0; $i < count($files); $i++) {
  4. $sel = ($selected == $files[$i] ? " selected='selected'" : "");
  5. $res .= "<option value='".$files[$i]."'$sel>".$files[$i]."</option>\n";
  6. }
  7. return $res;
  8. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Функция, создающая панель навигации с номерами страниц. К этому приёму приходится прибегать в том случае, когда количество элементов раздела (новостей, статей, ссылок, файлов и т.д.) достаточно велико для того, чтобы отображать их все на одной странице. Либо статья большая и требуется разбить её на несколько частей:
Загрузить источник  GeSHi: PHP
  1. function makepagenav($start, $count, $total, $range = 0, $link = "") {
  2. global $locale;
  3. if ($link == "") { $link = FUSION_SELF."?"; }
  4. $pg_cnt = ceil($total / $count);
  5. if ($pg_cnt <= 1) { return ""; }
  6. $idx_back = $start - $count;
  7. $idx_next = $start + $count;
  8. $cur_page = ceil(($start + 1) / $count);
  9. $res = $locale['global_092']." ".$cur_page.$locale['global_093'].$pg_cnt.": ";
  10. if($idx_back >= 0) {
  11. if($cur_page > ($range + 1)) {
  12. $res .= "<a href='".$link."rowstart=0'>1</a>...";
  13. }
  14. }
  15. $idx_fst = max($cur_page - $range, 1);
  16. $idx_lst = min($cur_page + $range, $pg_cnt);
  17. if ($range == 0) {
  18. $idx_fst = 1;
  19. $idx_lst = $pg_cnt;
  20. }
  21. for ($i = $idx_fst; $i <= $idx_lst; $i++) {
  22. $offset_page = ($i - 1) * $count;
  23. if ($i == $cur_page) {
  24. $res .= "<span><strong>".$i."</strong></span>";
  25. } else {
  26. $res .= "<a href='".$link."rowstart=".$offset_page."'>".$i."</a>";
  27. }
  28. }
  29. if ($idx_next < $total) {
  30. if ($cur_page < ($pg_cnt - $range)) {
  31. $res .= "...<a href='".$link."rowstart=".($pg_cnt - 1) * $count."'>".$pg_cnt."</a>\n";
  32. }
  33. }
  34.  
  35. return "<div class='pagenav'>\n".$res."</div>\n";
  36. }
Добавлено за 0.026 секунд, используя GeSHi 1.0.8.10


Форматирует дату/время в удобочитаемый формат:
// Format the date & time accordingly
Загрузить источник  GeSHi: PHP
  1. function showdate($format, $val) {
  2. global $settings;
  3. if ($format == "shortdate" || $format == "longdate" || $format == "forumdate") {
  4. return strftime($settings[$format], $val + ($settings['timeoffset']*3600));
  5. } else {
  6. return strftime($format, $val + ($settings['timeoffset'] * 3600));
  7. }
  8. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Преобразует байты в килобайты, мегабайты, гигабайты:
// Translate bytes into kb, mb, gb or tb by CrappoMan
Загрузить источник  GeSHi: PHP
  1. function parsebytesize($size, $digits = 2, $dir = false) {
  2. $kb = 1024; $mb = 1024 * $kb; $gb= 1024 * $mb; $tb = 1024 * $gb;
  3. if (($size == 0) && ($dir)) { return "Empty"; }
  4. elseif ($size < $kb) { return $size."Bytes"; }
  5. elseif ($size < $mb) { return round($size / $kb,$digits)."Kb"; }
  6. elseif ($size < $gb) { return round($size / $mb,$digits)."Mb"; }
  7. elseif ($size < $tb) { return round($size / $gb,$digits)."Gb"; }
  8. else { return round($size / $tb, $digits)."Tb"; }
  9. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Определение констант для проверки прав доступа:
Загрузить источник  GeSHi: PHP
  1. // User level, Admin Rights & User Group definitions
  2. define("iGUEST", $userdata['user_level'] == 0 ? 1 : 0);
  3. define("iMEMBER", $userdata['user_level'] >= 101 ? 1 : 0);
  4. define("iADMIN", $userdata['user_level'] >= 102 ? 1 : 0);
  5. define("iSUPERADMIN", $userdata['user_level'] == 103 ? 1 : 0);
  6. define("iUSER", $userdata['user_level']);
  7. define("iUSER_RIGHTS", $userdata['user_rights']);
  8. define("iUSER_GROUPS", substr($userdata['user_groups'], 1));
Добавлено за 0.024 секунд, используя GeSHi 1.0.8.10


Создание аутентификацийного ключа для админа:
Загрузить источник  GeSHi: PHP
  1. if (iADMIN;
  2. $PHP_SELF = cleanurl($_SERVER[) {
  3. define("iAUTH", substr($userdata['user_password'], 16, 32));
  4. $aidlink = "?aid=".iAUTH;
  5. }
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.10


Подключение скрипта определений системных картинок:
Загрузить источник  GeSHi: PHP
  1. include INCLUDES."system_images.php";
Добавлено за 0.022 секунд, используя GeSHi 1.0.8.10

x1 x2 x2 x1
 
Web
Polarfox
Не поставил версию..
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Zaxap
Конечно хорошо придумал, Вова, но чет слишком много букФФ=)
По-моему это больше статья...
Зло не дремлет, а я добрый...
 
Polarfox
Было бы отлично полный кодекс сделать как у нас был, с описаловом всех функций вообще.

Он как бы вроде будет к 8ой, так что я этим заниматься не буду, но может кто хочет ab
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Tempter
PolarFox написал:

Не поставил версию..

Это для версии "GGG-Energine - v1.0 BETA"! Правда варюги некоторые это утащили в прошлое http://php-fusion...icle_id=85 сволочи).
 
Vova
Tempter, я это с этого сайта и взял.

http://php-fusion...icle_id=85

И автор http://rusfusion....lookup=156

Это для версии "GGG-Energine - v1.0 BETA"!


У меня другое.
 
Web
Tempter
источник указать - пальцы устали.. . Может ето не первоисточник но указать стоит, да и копирайт вернуть на сайт, изменив 10% кода обозвать соим движком - всёравно что ладу калину помыть и назвать мерсом!
 
Alipapa
Ну да, это моя статья. Для 7.0 писалось. Хотел позже подредактировать, более детально описать, но забыл за текучкой, как часто бывает.
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
PHP FUSION 7 ПЕРЕОСМЫСЛЕНИЕ.  →  Народное творчество 8 / 602 18.04.2024 15:05
в PHP 7.4 нельзя вставлять пустое значение в `id` как раньше  →  Пожелания и предложения 4 / 1592 19.12.2023 03:32
От какой CMS лучше переделывать плагины сервисов оплаты, доставки, 1С для PHP-Fusion-7?  →  Пожелания и предложения 2 / 1824 08.08.2023 08:59
PHP Fusion 6 несколько проблем  →  Установка и настройка системы 7 / 4595 07.06.2021 23:12
ЧПУ Дополнительных страниц для PHP-Fusion 8  →  Разное 8 / 6458 26.10.2020 18:42
Помогите отключить часть кода в user_info_panel.php  →  Вопросы новичков 5 / 4843 05.10.2020 15:16
Как вебмастеру сформулировали УТП для создания сайтов на PHP-Fusion?  →  Пожелания и предложения 1 / 7410 25.07.2020 03:46
какие функции надо переписать для PHP 7?  →  Пожелания и предложения 15 / 14758 12.07.2020 07:19
SEO-оптимизация. дубли страниц в PHP-Fusion - где искать и как избавиться?  →  Ошибки, баги 0 / 5231 19.06.2020 17:06
PHP-Fusion 7 Bogatyr - бесплатная мультиязычная CMS для блога, форума, фотогалереи  →  Моды 20 / 27850 17.03.2020 19:59
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)