本文整理汇总了PHP中mso_checkreferer函数的典型用法代码示例。如果您正苦于以下问题:PHP mso_checkreferer函数的具体用法?PHP mso_checkreferer怎么用?PHP mso_checkreferer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了mso_checkreferer函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: theme_switch_init
function theme_switch_init($args = array())
{
global $MSO;
// если есть get ?theme=шаблон , то выставляем новую куку по этому значению
// идея nicothin (Николай Громов) - http://forum.max-3000.com/viewtopic.php?p=9943#p9943
$get = mso_parse_url_get(mso_url_get());
$get = (isset($get['theme']) and $get['theme']) ? mso_xss_clean($get['theme']) : false;
// проверяем есть ли post
if ($post = mso_check_post(array('f_session_id', 'f_theme_switch_submit', 'theme_switch_radio')) or $get) {
if (!$get) {
mso_checkreferer();
$dir = $post['theme_switch_radio'][0];
// каталог шаблона
} else {
$dir = $get;
}
// если он есть - проверяем, то пишем куку и редиректимся
if (file_exists(getinfo('templates_dir') . $dir . '/index.php')) {
$opt = mso_get_option('theme_switch', 'plugins', array());
if (isset($opt['templates'][$dir])) {
// 30 дней = 2592000 секунд 60 * 60 * 24 * 30
mso_add_to_cookie('theme_switch', $dir, time() + 2592000, true);
}
}
}
// проверяем существование куки theme_switch
if (isset($_COOKIE['theme_switch'])) {
$dir = $_COOKIE['theme_switch'];
// значение текущего кука
if (file_exists(getinfo('templates_dir') . $dir . '/index.php')) {
$opt = mso_get_option('theme_switch', 'plugins', array());
if (isset($opt['templates'][$dir])) {
$MSO->config['template'] = $dir;
$functions_file = $MSO->config['templates_dir'] . $dir . '/functions.php';
if (file_exists($functions_file)) {
require_once $functions_file;
}
} else {
@setcookie('theme_switch', '', time());
}
// сбросили куку
} else {
@setcookie('theme_switch', '', time());
}
// сбросили куку
}
return $args;
}
示例2: mso_check_post_ini
function mso_check_post_ini()
{
$CI =& get_instance();
// проверяем входящие данные - поля всегда одни
if ($post = mso_check_post(array('f_session_id', 'f_options', 'f_submit', 'f_ini'))) {
# защита рефера
mso_checkreferer();
$options = $post['f_options'];
if (isset($post['f_all_checkbox'])) {
$all_checkbox = $post['f_all_checkbox'];
} else {
$all_checkbox = array();
}
// добавим к $options $all_checkbox если их нет
// и сразу заменим on на 1
// pr($options);
foreach ($all_checkbox as $key => $val) {
if (!isset($options[$key])) {
$options[$key] = '0';
} else {
if (!is_array($options[$key])) {
$options[$key] = '1';
} else {
$options[$key] = array_map('trim', $options[$key]);
}
}
}
// pr($options);
// pr($all_checkbox);
foreach ($options as $key_type => $val) {
// разделим имя опции на ключ и группу
$key_type = explode('_m_s_o_', $key_type);
$key = $key_type[0];
$type = $key_type[1];
// pr($key . ' ' . $val . ' ' . $type, 1);
// добавляем опцию без mso_refresh_options();
mso_add_option($key, $val, $type, false);
}
mso_refresh_options();
mso_flush_cache();
// посколько у нас всегда true, то результат не анализируем
return true;
}
return false;
}
示例3: exit
<?php
if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
/**
* MaxSite CMS
* (c) http://max-3000.com/
*/
$CI =& get_instance();
$options_key = 'mail_send';
if ($post = mso_check_post(array('f_session_id', 'f_subject', 'f_from', 'f_files', 'f_message', 'f_list'))) {
mso_checkreferer();
$options = array();
$options['maillist'] = $post['f_list'];
$options['subject'] = $post['f_subject'];
$options['files'] = $post['f_files'];
$options['message'] = $post['f_message'];
$options['from'] = $post['f_from'];
mso_add_option($options_key, $options, 'plugins');
// сохраним в опциях введенные данные
if (isset($post['f_submit_send'])) {
$error = '';
if (!$post['f_subject']) {
$error .= 'Нужно указать тему письма. ';
}
if (!$post['f_message']) {
$error .= 'Нужно указать текст письма. ';
}
if (!$post['f_list']) {
$error .= 'Список рассылки пуст. ';
示例4: mso_page_content
function mso_page_content($page_content = '', $use_password = true, $message = 'Данная запись защищена паролем.')
{
global $page;
mso_hook('content_start');
# хук на начало блока
if ($use_password and $page['page_password']) {
$form = '<p><strong>' . tf($message) . '</strong></p>';
$form .= '<form action="' . getinfo('siteurl') . 'page/' . $page['page_slug'] . '" method="post">' . mso_form_session('f_session_id');
$form .= '<input type="hidden" name="f_page_id" value="' . $page['page_id'] . '">';
$form .= '<p>' . tf('Пароль:') . ' <input type="text" name="f_password" value=""> ';
$form .= '<input type="submit" name="f_submit" value="ОК"></p>';
$form .= '</form>';
// возможно пароль уже был отправлен
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_page_id', 'f_password'))) {
mso_checkreferer();
$f_page_id = (int) $post['f_page_id'];
// номер записи
$f_password = $post['f_password'];
// пароль
if ($f_page_id == $page['page_id'] and $f_password == $page['page_password']) {
// верный пароль
$page['page_password_ok'] = true;
echo mso_hook('content_content', $page_content);
} else {
echo '<p style="color: red;">' . tf('<strong>Ошибочный пароль!</strong> Повторите ввод.') . '</p>' . $form;
}
} else {
echo $form;
}
} else {
echo mso_hook('content_content', $page_content);
}
}
示例5: forms_content_callback
//.........这里部分代码省略.........
$val = trim($val);
if (!$val) {
continue;
}
$val = str_replace(' = ', '=', $val);
$val = str_replace('= ', '=', $val);
$val = str_replace(' =', '=', $val);
$val = explode("\n", $val);
// разделим на строки
$ar_val = array();
foreach ($val as $pole) {
$pole = preg_replace('!=!', '_VAL_', $pole, 1);
$ar_val = explode('_VAL_', $pole);
// строки разделены = type = select
if (isset($ar_val[0]) and isset($ar_val[1])) {
$f[$i][$ar_val[0]] = $ar_val[1];
}
}
$i++;
}
if (!$f) {
return '';
}
// нет полей - выходим
// теперь по-идее у нас есть вся необходимая информация по полям и по форме
// смотрим есть ли POST. Если есть, то проверяем введенные поля и если они корректные,
// то выполняем отправку почты, выводим сообщение и редиректимся
// если POST нет, то выводим обычную форму
// pr($f);
if ($_POST) {
$_POST = mso_clean_post(array('forms_antispam1' => 'integer', 'forms_antispam2' => 'integer', 'forms_antispam' => 'integer', 'forms_name' => 'base', 'forms_email' => 'email', 'forms_session' => 'base'));
}
if ($post = mso_check_post(array('forms_session', 'forms_antispam1', 'forms_antispam2', 'forms_antispam', 'forms_name', 'forms_email', 'forms_submit'))) {
mso_checkreferer();
$out .= '<div class="forms-post">';
// верный email?
if (!($ok = mso_valid_email($post['forms_email']))) {
$out .= '<div class="message error small">' . tf('Неверный email!') . '</div>';
}
// антиспам
if ($ok) {
$antispam1s = (int) $post['forms_antispam1'];
$antispam2s = (int) $post['forms_antispam2'];
$antispam3s = (int) $post['forms_antispam'];
if ($antispam1s / 984 + $antispam2s / 765 != $antispam3s) {
// неверный код
$ok = false;
$out .= '<div class="message error small">' . tf('Неверная сумма антиспама') . '</div>';
}
}
if ($ok) {
foreach ($f as $key => $val) {
if ($ok and isset($val['require']) and $val['require'] == 1) {
if (!isset($post['forms_fields'][$key]) or !$post['forms_fields'][$key]) {
$ok = false;
$out .= '<div class="message error small">' . tf('Заполните все необходимые поля!') . '</div>';
}
}
if (!$ok) {
break;
}
}
}
// всё ок
if ($ok) {
//pr($post);
示例6: mso_comuser_lost
function mso_comuser_lost($args = array())
{
global $MSO;
if (!isset($args['css_ok'])) {
$args['css_ok'] = 'comment-ok';
}
if (!isset($args['css_error'])) {
$args['css_error'] = 'comment-error';
}
// если нет опции password_recovery, значит восстанавливаем с учетом номера комюзера во втором сегмента адреса
// если опция есть, значит восстанавливаем без учета id комюзера
if (!isset($args['password_recovery'])) {
$password_recovery = false;
} else {
$password_recovery = true;
}
# id комюзера, который в сессии - какой комюзер
# если комюзер залогинен, то будет $id_session
# если нет, то залогиненности нет
if (isset($MSO->data['session']['comuser']) and $MSO->data['session']['comuser']) {
$id_session = $MSO->data['session']['comuser']['comusers_id'];
} else {
$id_session = false;
}
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_comusers_email'))) {
# защита рефера
mso_checkreferer();
# защита сессии - если не нужно закомментировать строчку!
if ($MSO->data['session']['session_id'] != $post['f_session_id']) {
mso_redirect();
}
if (!$password_recovery) {
// получаем номер юзера id из f_submit[]
$id = (int) mso_array_get_key($post['f_submit']);
if (!$id) {
return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '!</div>';
}
# проверяем id в сессии с сабмитом
if ($id_session and $id != $id_session) {
return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя2') . '</div>';
}
}
$comusers_email = trim($post['f_comusers_email']);
if (!$comusers_email) {
return '<div class="' . $args['css_error'] . '">' . tf('Нужно указать email') . '</div>';
}
if (!mso_valid_email($comusers_email)) {
return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный email') . '</div>';
}
$CI =& get_instance();
// проверим есть ли вообще такой юзер
$CI->db->select('comusers_id');
if (!$password_recovery) {
$CI->db->where('comusers_id', $id);
}
// если явно указан id, то ищем по нему
$CI->db->where('comusers_email', $comusers_email);
$query = $CI->db->get('comusers');
if ($query->num_rows() == 0) {
// нет такого комментатора
return '<div class="' . $args['css_error'] . '">' . tf('Неверный email или номер пользователя') . '!</div>';
}
if ($password_recovery) {
// получим id этого комюзера
$res = $query->result_array();
$id = $res[0]['comusers_id'];
}
$comusers_new_password = trim($post['f_comusers_password']);
$comusers_activate_key = trim($post['f_comusers_activate_key']);
if ($comusers_email and !$comusers_activate_key and !$comusers_new_password) {
// проверим есть ли активация
$CI->db->select('comusers_id, comusers_activate_key');
$CI->db->where('comusers_id', $id);
$CI->db->where('comusers_activate_string=comusers_activate_key', '', false);
$CI->db->where('comusers_email', $comusers_email);
$CI->db->limit(1);
$query = $CI->db->get('comusers');
if ($query->num_rows() > 0) {
$comuser = $query->result_array();
// данные комюзера
mso_email_message_new_comuser($id, array('comusers_email' => $comusers_email, 'comusers_activate_key' => $comuser[0]['comusers_activate_key']));
return '<div class="' . $args['css_ok'] . '">' . tf('Код активации отправлен на ваш email') . '!</div>';
} else {
return '<div class="' . $args['css_error'] . '">' . tf('Данный email не зарегистрирован или не активирован') . '</div>';
}
} elseif ($comusers_email and $comusers_new_password and !$comusers_activate_key) {
return '<div class="' . $args['css_error'] . '">' . tf('Для установки нового пароля нужно заполнить все поля!') . '</div>';
} elseif ($comusers_email and !$comusers_new_password and $comusers_activate_key) {
// указан email и код активации, но не указан новый пароль
return '<div class="' . $args['css_error'] . '">' . tf('Для установки нового пароля нужно заполнить все поля!') . '</div>';
}
// если указано поле активации и новый пароль, то сверяем код активации с базой + email + id и если все верно,
// то обновляем пароль
// если же поле активации не указано, то высылаем его на указанный email
$CI->db->select('comusers_id');
$CI->db->where('comusers_id', $id);
$CI->db->where('comusers_activate_key', $comusers_activate_key);
$CI->db->where('comusers_activate_string', $comusers_activate_key);
$CI->db->where('comusers_email', $comusers_email);
$CI->db->limit(1);
//.........这里部分代码省略.........
示例7: mso_admin_plugin_options
function mso_admin_plugin_options($key, $type, $ar, $title = '', $info = '', $text_other = '', $show_goto_plugins = false)
{
if ($show_goto_plugins) {
echo '<p><a href="' . getinfo('site_admin_url') . 'plugins" class="i plugins">' . t('Плагины') . '</a></p>';
}
if ($title) {
echo '<h1><a href="">' . $title . '</a></h1>';
} else {
echo '<h1><a href="">' . t('Опции плагина') . '</a></h1>';
}
if ($info) {
echo '<p class="info">' . $info . '</p>';
} else {
echo '<p class="info">' . t('Укажите необходимые опции плагина.') . '</p>';
}
if ($text_other) {
echo '<p>' . $text_other . '</p>';
}
# тут получаем текущие опции
$options = mso_get_option($key, $type, array());
// получаем опции
# здесь смотрим post
# в post должен быть $key . '-' . $type
if ($post = mso_check_post(array('f_session_id', 'f_submit', $key . '-' . $type))) {
# защита рефера
mso_checkreferer();
# наши опции
$in = $post[$key . '-' . $type];
if (isset($in['_mso_checkboxs'])) {
$ch_names = array_keys($in['_mso_checkboxs']);
// получили все чекбоксы
$t = array();
// временный массив
foreach ($ch_names as $val) {
if (isset($in[$val])) {
$t[$val] = '1';
}
// если есть, значит отмечен
}
$t = array_merge($in['_mso_checkboxs'], $t);
// объединим с чекбоксамии
unset($in['_mso_checkboxs']);
// удалим _mso_checkboxs
$in = array_merge($in, $t);
// объединим с $in
// теперь в $in все чекбоксы
}
# перед проверкой удалим из $ar все типы info
$ar1 = $ar;
foreach ($ar1 as $m => $val) {
if ($val['type'] == 'info') {
unset($ar1[$m]);
}
}
# проверяем их с входящим $ar - ключи должны совпадать
# финт ушами: смотрим разность ключей массивов - красиво?
# если будет разность, значит неверные входящие данные, все рубим
if (array_diff(array_keys($ar1), array_keys($in))) {
die('Error key. :-(');
}
$newoptions = array_merge($options, $in);
// объединим
if ($options != $newoptions) {
mso_add_option($key, $newoptions, $type);
// обновим
$options = $newoptions;
// сразу обновим переменную на новые опции
mso_flush_cache();
// сбросим кэш
}
echo '<div class="update">' . t('Обновлено!') . '</div>';
}
if ($ar) {
# тут генерируем форму
$form = '';
foreach ($ar as $m => $val) {
if ($val['type'] == 'info') {
if (isset($val['id'])) {
$tag_id = ' id="' . $val['id'] . '"';
} else {
$tag_id = '';
}
if (isset($val['class'])) {
$tag_class = ' ' . $val['class'];
} else {
$tag_class = '';
}
$form .= '<div class="admin_plugin_options_info' . $tag_class . '"' . $tag_id . '>';
if (isset($val['title'])) {
$form .= '<h3>' . $val['title'] . '</h3>';
}
if (isset($val['text'])) {
$form .= '<p>' . $val['text'] . '</p>';
}
$form .= '</div>';
continue;
}
if (!isset($options[$m])) {
$options[$m] = $val['default'];
}
//.........这里部分代码省略.........
示例8: forms_content_post
function forms_content_post($options, $files, $fields, $format)
{
$result['show_error'] = array();
// каждый элемент сообщение об ошибке
$result['show_form'] = false;
$result['show_ok'] = false;
$result['fields'] = array();
// массив полей в случае ошибок
$out = '';
// принимаем post
if ($post = mso_check_post(array('forms_session', 'forms_fields'))) {
mso_checkreferer();
$subject_key = false;
// если у поля отмечен subject, то ставим номер поля
$from_key = false;
// если у поля отмечен from, то ставим номер поля
// добавляем в массив $field полученные значения и сразу их чистим через mso_clean_str()
foreach ($fields as $key => $field) {
if (isset($fields[$key]['post_value'])) {
unset($fields[$key]['post_value']);
}
$field = array_map('trim', $field);
if (isset($post['forms_fields'][$key])) {
$p_v = mso_clean_str($post['forms_fields'][$key], $field['clean']);
$fields[$key]['post_value'] = $p_v;
// обязательное поле и не получены данные (браузер должен был это сам отсеить)
if ($field['require'] and !$p_v) {
$result['show_error'][] = tf('Неверно заполнено поле: ') . $field['description'];
}
}
if ($field['subject']) {
$subject_key = $key;
}
if ($field['from']) {
$from_key = $key;
}
}
// если есть ошибки то выходим
if ($result['show_error']) {
$result['show_form'] = true;
$result['fields'] = $fields;
return $result;
}
// если были ошибки, то уже вышли из функции
$prefs = '';
// дополнительные опции для mso_mail
// если есть вложения
if ($file_attaches = forms_files_post($files)) {
// формируем вложения к письму
$prefs['attach'] = $file_attaches;
}
// формируем само письмо
// куда приходят письма
$email = $options['email'];
if (!mso_valid_email($email)) {
$email = mso_get_option('admin_email', 'general', 'admin@site.com');
}
// тема письма может быть в опциях
$subject = $options['subject'];
if (!$subject) {
// нет, значит ищем в полях
$subject = $fields[$subject_key]['post_value'];
}
// тема письма может быть в опциях
$from = $options['from'];
if (!$from) {
// нет, значит ищем в полях
$from = $fields[$from_key]['post_value'];
}
// pr($fields);
$message = '';
foreach ($fields as $field) {
$description = $field['description'];
$post_value = $field['post_value'];
$m = $format['mail_field'];
$m = str_replace('[description]', $description, $m);
$m = str_replace('[post_value]', $post_value, $m);
$m = str_replace('[NR]', NR, $m);
$message .= $m;
}
// добавляем служебную информацию
$message .= tf('IP: ') . $_SERVER['REMOTE_ADDR'] . NR;
$message .= tf('Браузер: ') . $_SERVER['HTTP_USER_AGENT'] . NR;
mso_hook('forms_send', $post);
// pr($email);
// pr($subject);
// pr($from);
// pr($message);
// pr($prefs);
// тут отправка почты
mso_mail($email, $subject, $message, $from, $prefs);
// удаляем временные файлы вложений
if ($files) {
mso_flush_cache(false, 'forms_attaches/');
}
$result['show_ok'] = true;
} else {
$result['show_error'][] = tf('Ошибка сессии');
}
return $result;
//.........这里部分代码省略.........