Список использованных источников

1. Насейкина, Л.Ф. Основы Microsoft FrontPage.:учебно-методическое пособие. - Оренбург: ИПК ГОУ ОГУ, 2006. – 145 с.

2. Насейкина, Л.Ф. Разработка Web-приложений средствами языка HTML.: учебное пособие. – Оренбург: ИПК ГОУ ОГУ, 2006. – 180 с.

3. Насейкина, Л.Ф. Программирование динамических Web-сайтов средствами каскадных таблиц стилей (CSS).: учебное пособие. – Оренбург: ИПК ГОУ ОГУ, 2006. – 155 с.

4. Насейкина, Л.Ф. Сетевые информационные технологии.: Учебное пособие. - Оренбург: ИПК ГОУ ОГУ, 2005. - 167 с.

5. Основы Web-технологий / П.Б. Храмцов, С.А. Брик, А.М. Русак, А.И. Сурин; под редакцией П.Б. Храмцова.– М.: ИНТУИТ.РУ “Интернет-Университет Информационных Технологий”, 2003. – 512 с. – ISBN 5-9556-0001

6. Гончаров, А. Самоучитель HTML. / А. Гончаров. - CПб.: Питер, 2001. - 240 с. - ISBN 5-272-00072-2.

7. Гультяев, А. К. Dreamweaver 4 - инструмент создания интерактивных Web – страниц.: практическое пособие / А. К. Гультяев. - CПб.: Корона принт, 2001. - 224 с. - ISBN 5-7931-0153-5.

8. Матросов, А.В. HTML 4.0. Новый уровень создания HTML – документов.: наиболее полное руководство в подлиннике / А.В. Матросова, А.О. Сергеев, М.П. Чаунин. - СПб.: БХВ-Петербург, 2001. - 672 с.

9. Штайнер, Г. HTML / XML / CSS.: Справочник / Г. Штайнер. - М.: Лаборатория Базовых Знаний, 2001. - 512 с. - ISBN 5-93208-091-4.

10. Шафран, Э. Создание Web-страниц / Э. Шафран. - CПб.: Питер, 2000. - 320 с. - ISBN 5-314-00072-5.

 

 



ПРИЛОЖЕНИЕ А

Код программы

define('WP_USE_THEMES', true);

 

/** Loads the WordPress Environment and Template */

require(dirname(__FILE__). '/wp-blog-header.php');

 

* Этот файл содержит следующие параметры:

 *

 * * Настройки MySQL

 * * Секретные ключи

 * * Префикс таблиц базы данных

 * * ABSPATH

 *

 * @link https://codex.wordpress.org/Editing_wp-config.php

 *

 * @package WordPress

 */

 

// ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //

/** Имя базы данных для WordPress */

define('DB_NAME', 'shop-thec');

 

/** Имя пользователя MySQL */

define('DB_USER', 'root');

 

/** Пароль к базе данных MySQL */

define('DB_PASSWORD', '');

 

/** Имя сервера MySQL */

define('DB_HOST', 'localhost');

 

/** Кодировка базы данных для создания таблиц. */

define('DB_CHARSET', 'utf8mb4');

 

/** Схема сопоставления. Не меняйте, если не уверены. */

define('DB_COLLATE', '');

 

/**#@+

 * Уникальные ключи и соли для аутентификации.

 *

 * Смените значение каждой константы на уникальную фразу.

 * Можно сгенерировать их с помощью {@link https://api.wordpress.org/secret-key/1.1/salt/ сервиса ключей на WordPress.org}

 * Можно изменить их, чтобы сделать существующие файлы cookies недействительными. Пользователям потребуется авторизоваться снова.

 *

 * @since 2.6.0

 */

*

 * Измените это значение на true, чтобы включить отображение уведомлений при разработке.

 * Разработчикам плагинов и тем настоятельно рекомендуется использовать WP_DEBUG

 * в своём рабочем окружении.

 *

 * Информацию о других отладочных константах можно найти в Кодексе.

 *

 * @link https://codex.wordpress.org/Debugging_in_ */

define('WP_DEBUG', false);

 

/* Это всё, дальше не редактируем. Успехов! */

 

/** Абсолютный путь к директории. */

if (!defined('ABSPATH'))

           define('ABSPATH', dirname(__FILE__). '/');

 

/** Инициализирует переменны и подключает файлы. */

require_once(ABSPATH. 'wp-settings.php');

 

// cron.php

<?php

/**

 * WordPress Cron Implementation for hosts, which do not offer CRON or for which

 * the user has not set up a CRON job pointing to this file.

 *

 * The HTTP request to this file will not slow down the visitor who happens to

 * visit when the cron job is needed to run.

 *

 * @package WordPress

 */

 

ignore_user_abort(true);

 

if (!empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON'))

           die();

 

/**

 * Tell WordPress we are doing the CRON task.

 *

 * @var bool

 */

define('DOING_CRON', true);

 

if (!defined('ABSPATH')) {

           /** Set up WordPress environment */

           require_once(dirname(__FILE__). '/wp-load.php');

}

 

/**

 * Retrieves the cron lock.

 *

 * Returns the uncached `doing_cron` transient.

 *

 * @ignore

 * @since 3.3.0

 *

 * @return string|false Value of the `doing_cron` transient, 0|false otherwise.

 */

function _get_cron_lock() {

           global $wpdb;

 

           $value = 0;

           if (wp_using_ext_object_cache()) {

                          /*

                           * Skip local cache and force re-fetch of doing_cron transient

                           * in case another process updated the cache.

                           */

                          $value = wp_cache_get('doing_cron', 'transient', true);

           } else {

                          $row = $wpdb->get_row($wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron'));

                          if (is_object($row))

                                          $value = $row->option_value;

           }

 

           return $value;

}

 

if (false === $crons = _get_cron_array())

           die();

 

$keys = array_keys($crons);

$gmt_time = microtime(true);

 

if (isset($keys[0]) && $keys[0] > $gmt_time)

           die();

 

 

// The cron lock: a unix timestamp from when the cron was spawned.

$doing_cron_transient = get_transient('doing_cron');

 

// Use global $doing_wp_cron lock otherwise use the GET lock. If no lock, trying grabbing a new lock.

if (empty($doing_wp_cron)) {

           if (empty($_GET[ 'doing_wp_cron' ])) {

                          // Called from external script/job. Try setting a lock.

                          if ($doing_cron_transient && ($doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time))

                                          return;

                          $doing_cron_transient = $doing_wp_cron = sprintf('%.22F', microtime(true));

                          set_transient('doing_cron', $doing_wp_cron);

           } else {

                          $doing_wp_cron = $_GET[ 'doing_wp_cron' ];

           }

}

 

/*

 * The cron lock (a unix timestamp set when the cron was spawned),

 * must match $doing_wp_cron (the "key").

 */

if ($doing_cron_transient!= $doing_wp_cron)

           return;

 

foreach ($crons as $timestamp => $cronhooks) {

           if ($timestamp > $gmt_time)

                          break;

 

           foreach ($cronhooks as $hook => $keys) {

 

                          foreach ($keys as $k => $v) {

 

                                          $schedule = $v['schedule'];

 

                                          if ($schedule!= false) {

                                                          $new_args = array($timestamp, $schedule, $hook, $v['args']);

                                                          call_user_func_array('wp_reschedule_event', $new_args);

                                          }

 

                                          wp_unschedule_event($timestamp, $hook, $v['args']);

 

                                          /**

                                           * Fires scheduled events.

                                           *

                                           * @ignore

                                           * @since 2.1.0

                                           *

                                           * @param string $hook Name of the hook that was scheduled to be fired.

                                           * @param array $args The arguments to be passed to the hook.

                                           */

                                          do_action_ref_array($hook, $v['args']);

 

                                          // If the hook ran too long and another cron process stole the lock, quit.

                                          if (_get_cron_lock()!= $doing_wp_cron)

                                                          return;

                          }

           }

}

 

if (_get_cron_lock() == $doing_wp_cron)

           delete_transient('doing_cron');

 

die();

 

<?php

/**

 * WordPress User Page

 *

 * Handles authentication, registering, resetting passwords, forgot password,

 * and other user handling.

 *

 * @package WordPress

 */

 

/** Make sure that the WordPress bootstrap has run before continuing. */

require(dirname(__FILE__). '/wp-load.php');

 

// Redirect to https login if forced to use SSL

if (force_ssl_admin() &&! is_ssl()) {

           if (0 === strpos($_SERVER['REQUEST_URI'], 'http')) {

                          wp_redirect(set_url_scheme($_SERVER['REQUEST_URI'], 'https'));

                          exit();

           } else {

                          wp_redirect('https://'. $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI']);

                          exit();

           }

}

 

/**

 * Output the login page header.

 *

 * @param string $title Optional. WordPress login Page title to display in the `<title>` element.

 *                      Default 'Log In'.

 * @param string $message Optional. Message to display in header. Default empty.

 * @param WP_Error $wp_error Optional. The error to pass. Default empty.

 */

function login_header($title = 'Log In', $message = '', $wp_error = '') {

           global $error, $interim_login, $action;

 

           // Don't index any of these forms

           add_action('login_head', 'wp_no_robots');

 

           add_action('login_head', 'wp_login_viewport_meta');

 

           if (empty($wp_error))

                          $wp_error = new WP_Error();

 

           // Shake it!

           $shake_error_codes = array('empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password');

           /**

            * Filters the error codes array for shaking the login form.

            *

            * @since 3.0.0

            *

            * @param array $shake_error_codes Error codes that shake the login form.

            */

           $shake_error_codes = apply_filters('shake_error_codes', $shake_error_codes);

 

           if ($shake_error_codes && $wp_error->get_error_code() && in_array($wp_error->get_error_code(), $shake_error_codes))

                          add_action('login_head', 'wp_shake_js', 12);

 

           $separator = is_rtl()? ' &rsaquo; ': ' &lsaquo; ';

 

          ?><!DOCTYPE html>

           <!--[if IE 8]>

                          <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes();?>>

           <![endif]-->

           <!--[if!(IE 8) ]><!-->

                          <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes();?>>

           <!--<![endif]-->

           <head>

           <meta http-equiv="Content-Type" content="<?php bloginfo('html_type');?>; charset=<?php bloginfo('charset');?>" />

           <title><?php echo get_bloginfo('name', 'display'). $separator. $title;?></title>

           <?php

 

           wp_enqueue_style('login');

 

           /*

            * Remove all stored post data on logging out.

            * This could be added by add_action('login_head'...) like wp_shake_js(),

            * but maybe better if it's not removable by plugins

            */

           if ('loggedout' == $wp_error->get_error_code()) {

                         ?>

                          <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>

                          <?php

           }

 

           /**

            * Enqueue scripts and styles for the login page.

            *

            * @since 3.1.0

            */

           do_action('login_enqueue_scripts');

 

           /**

            * Fires in the login page header after scripts are enqueued.

            *

            * @since 2.1.0

            */

           do_action('login_head');

 

           if (is_multisite()) {

                          $login_header_url = network_home_url();

                          $login_header_title = get_network()->site_name;

           } else {

                          $login_header_url = __('https://wordpress.org/');

                          $login_header_title = __('Powered by WordPress');

           }

 

           /**

            * Filters link URL of the header logo above login form.

            *

            * @since 2.1.0

            *

            * @param string $login_header_url Login header logo URL.

            */

           $login_header_url = apply_filters('login_headerurl', $login_header_url);

 

           /**

            * Filters the title attribute of the header logo above login form.

            *

            * @since 2.1.0

            *

            * @param string $login_header_title Login header logo title attribute.

            */

           $login_header_title = apply_filters('login_headertitle', $login_header_title);

 

           $classes = array('login-action-'. $action, 'wp-core-ui');

           if (is_rtl())

                          $classes[] = 'rtl';

           if ($interim_login) {

                          $classes[] = 'interim-login';

                         ?>

                          <style type="text/css">html{background-color: transparent;}</style>

                          <?php

 

                          if ('success' === $interim_login)

                                          $classes[] = 'interim-login-success';

           }

           $classes[] =' locale-'. sanitize_html_class(strtolower(str_replace('_', '-', get_locale())));

 

           /**

            * Filters the login page body classes.

            *

            * @since 3.5.0

            *

            * @param array $classes An array of body classes.

            * @param string $action The action that brought the visitor to the login page.

            */

           $classes = apply_filters('login_body_class', $classes, $action);

 

          ?>

           </head>

           <body class="login <?php echo esc_attr(implode(' ', $classes));?>">

           <?php

           /**

            * Fires in the login page header after the body tag is opened.

            *

            * @since 4.6.0

            */

           do_action('login_header');

          ?>

           <div id="login">

                          <h1><a href="<?php echo esc_url($login_header_url);?>" title="<?php echo esc_attr($login_header_title);?>" tabindex="-1"><?php bloginfo('name');?></a></h1>

           <?php

 

           unset($login_header_url, $login_header_title);

 

           /**

            * Filters the message to display above the login form.

            *

            * @since 2.1.0

            *

            * @param string $message Login message text.

            */

           $message = apply_filters('login_message', $message);

           if (!empty($message))

                          echo $message. "\n";

 

           // In case a plugin uses $error rather than the $wp_errors object

           if (!empty($error)) {

                          $wp_error->add('error', $error);

                          unset($error);

           }

 

           if ($wp_error->get_error_code()) {

                          $errors = '';

                          $messages = '';

                          foreach ($wp_error->get_error_codes() as $code) {

                                          $severity = $wp_error->get_error_data($code);

                                          foreach ($wp_error->get_error_messages($code) as $error_message) {

                                                          if ('message' == $severity)

                                                                         $messages.= ' '. $error_message. "<br />\n";

                                                          else

                                                                         $errors.= '        '. $error_message. "<br />\n";

                                          }

                          }

                          if (! empty($errors)) {

                                          /**

                                           * Filters the error messages displayed above the login form.

                                           *

                                           * @since 2.1.0

                                           *

                                           * @param string $errors Login error message.

                                           */

                                          echo '<div id="login_error">'. apply_filters('login_errors', $errors). "</div>\n";

                          }

                          if (! empty($messages)) {

                                          /**

                                           * Filters instructional messages displayed above the login form.

                                           *

                                           * @since 2.5.0

                                           *

                                           * @param string $messages Login messages.

                                           */

                                          echo '<p class="message">'. apply_filters('login_messages', $messages). "</p>\n";

                          }

           }

} // End of login_header()

 

/**

 * Outputs the footer for the login page.

 *

 * @param string $input_id Which input to auto-focus

 */

function login_footer($input_id = '') {

           global $interim_login;

 

           // Don't allow interim logins to navigate away from the page.

           if (! $interim_login):?>

           <p id="backtoblog"><a href="<?php echo esc_url(home_url('/'));?>"><?php

                          /* translators: %s: site title */

                          printf(_x('&larr; Back to %s', 'site'), get_bloginfo('title', 'display'));

          ?></a></p>

           <?php endif;?>

 

           </div>

 

           <?php if (!empty($input_id)):?>

           <script type="text/javascript">

           try{document.getElementById('<?php echo $input_id;?>').focus();}catch(e){}

           if(typeof wpOnload=='function')wpOnload();

           </script>

           <?php endif;?>

 

           <?php

           /**

            * Fires in the login page footer.

            *

            * @since 3.1.0

            */

           do_action('login_footer');?>

           <div class="clear"></div>

           </body>

           </html>

           <?php

}

 

/**

 * @since 3.0.0

 */

function wp_shake_js() {

?>

<script type="text/javascript">

addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};

function s(id,pos){g(id).left=pos+'px';}

function g(id){return document.getElementById(id).style;}

function shake(id,a,d){c=a.shift();s(id,c);if(a.length>0){setTimeout(function(){shake(id,a,d);},d);}else{try{g(id).position='static';wp_attempt_focus();}catch(e){}}}

addLoadEvent(function(){ var p=new Array(15,30,15,0,-15,-30,-15,0);p=p.concat(p.concat(p));var i=document.forms[0].id;g(i).position='relative';shake(i,p,20);});

</script>

<?php

}

 

/**

 * @since 3.7.0

 */

function wp_login_viewport_meta() {

          ?>

           <meta name="viewport" content="/>

           <?php

}

 

/**

 * Handles sending password retrieval email to user.

 *

 * @return bool|WP_Error True: when finish. WP_Error on error

 */

function retrieve_password() {

           $errors = new WP_Error();

 

           if (empty($_POST['user_login'])) {

                          $errors->add('empty_username', __('<strong>ERROR</strong>: Enter a username or email address.'));

           } elseif (strpos($_POST['user_login'], '@')) {

                          $user_data = get_user_by('email', trim(wp_unslash($_POST['user_login'])));

                          if (empty($user_data))

                                          $errors->add('invalid_email', __('<strong>ERROR</strong>: There is no user registered with that email address.'));

           } else {

                          $login = trim($_POST['user_login']);

                          $user_data = get_user_by('login', $login);

           }

 

           /**

            * Fires before errors are returned from a password reset request.

            *

            * @since 2.1.0

            * @since 4.4.0 Added the `$errors` parameter.

            *

            * @param WP_Error $errors A WP_Error object containing any errors generated

            *                    by using invalid credentials.

            */

           do_action('lostpassword_post', $errors);

 

           if ($errors->get_error_code())

                          return $errors;

 

           if (!$user_data) {

                          $errors->add('invalidcombo', __('<strong>ERROR</strong>: Invalid username or email.'));

                          return $errors;

           }

 

           // Redefining user_login ensures we return the right case in the email.

           $user_login = $user_data->user_login;

           $user_email = $user_data->user_email;

           $key = get_password_reset_key($user_data);

 

           if (is_wp_error($key)) {

                          return $key;

           }

 

           $message = __('Someone has requested a password reset for the following account:'). "\r\n\r\n";

           $message.= network_home_url('/'). "\r\n\r\n";

           $message.= sprintf(__('Username: %s'), $user_login). "\r\n\r\n";

           $message.= __('If this was a mistake, just ignore this email and nothing will happen.'). "\r\n\r\n";

           $message.= __('To reset your password, visit the following address:'). "\r\n\r\n";

           $message.= '<'. network_site_url("wp-login.php?action=rp&key=$key&login=". rawurlencode($user_login), 'login'). ">\r\n";

 

           if (is_multisite()) {

                          $blogname = get_network()->site_name;

           } else {

                          /*

                           * The blogname option is escaped with esc_html on the way into the database

                           * in sanitize_option we want to reverse this for the plain text arena of emails.

                           */

                          $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

           }

 

           /* translators: Password reset email subject. 1: Site name */

           $title = sprintf(__('[%s] Password Reset'), $blogname);

 

           /**

            * Filters the subject of the password reset email.

            *

            * @since 2.8.0

            * @since 4.4.0 Added the `$user_login` and `$user_data` parameters.

            *

            * @param string $title Default email title.

            * @param string $user_login The username for the user.

            * @param WP_User $user_data WP_User object.

            */

           $title = apply_filters('retrieve_password_title', $title, $user_login, $user_data);

 

           /**

            * Filters the message body of the password reset mail.

            *

            * @since 2.8.0

            * @since 4.1.0 Added `$user_login` and `$user_data` parameters.

            *

            * @param string $message Default mail message.

            * @param string $key   The activation key.

            * @param string $user_login The username for the user.

            * @param WP_User $user_data WP_User object.

            */

           $message = apply_filters('retrieve_password_message', $message, $key, $user_login, $user_data);

 

           if ($message &&!wp_mail($user_email, wp_specialchars_decode($title), $message))

                          wp_die(__('The email could not be sent.'). "<br />\n". __('Possible reason: your host may have disabled the mail() function.'));

 

           return true;

}

 

//

// Main

//

 

$action = isset($_REQUEST['action'])? $_REQUEST['action']: 'login';

$errors = new WP_Error();

 

if (isset($_GET['key']))

           $action = 'resetpass';

 

// validate action so as to default to the login screen

if (!in_array($action, array('postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login'), true) && false === has_filter('login_form_'. $action))

           $action = 'login';

 

nocache_headers();

 

header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));

 

if (defined('RELOCATE') && RELOCATE) { // Move flag is set

           if (isset($_SERVER['PATH_INFO']) && ($_SERVER['PATH_INFO']!= $_SERVER['PHP_SELF']))

                          $_SERVER['PHP_SELF'] = str_replace($_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF']);

 

           $url = dirname(set_url_scheme('http://'. $_SERVER['HTTP_HOST']. $_SERVER['PHP_SELF']));

           if ($url!= get_option('siteurl'))

                          update_option('siteurl', $url);

}

 

//Set a cookie now to see if they are supported by the browser.

$secure = ('https' === parse_url(wp_login_url(), PHP_URL_SCHEME));

setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure);

if (SITECOOKIEPATH!= COOKIEPATH)

           setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure);

 

/**

 * Fires when the login form is initialized.

 *

 * @since 3.2.0

 */

do_action('login_init');

/**

 * Fires before a specified login form action.

 *

 * The dynamic portion of the hook name, `$action`, refers to the action

 * that brought the visitor to the login form. Actions include 'postpass',

 * 'logout', 'lostpassword', etc.

 *

 * @since 2.8.0

 */

do_action("login_form_{$action}");

 

$http_post = ('POST' == $_SERVER['REQUEST_METHOD']);

$interim_login = isset($_REQUEST['interim-login']);

 

switch ($action) {

 

case 'postpass':

           if (! array_key_exists('post_password', $_POST)) {

                          wp_safe_redirect(wp_get_referer());

                          exit();

           }

 

           $hasher = new PasswordHash(8, true);

 

           setcookie('wp-postpass_'. COOKIEHASH, $hasher->HashPassword(wp_unslash($_POST['post_password'])), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure);

 

           wp_safe_redirect(wp_get_referer());

           exit();

 

case 'logout':

           check_admin_referer('log-out');

 

           $user = wp_get_current_user();

 

           wp_logout();

 

           if (! empty($_REQUEST['redirect_to'])) {

                          $redirect_to = $requested_redirect_to = $_REQUEST['redirect_to'];

           } else {

                          $redirect_to = 'wp-login.php?loggedout=true';

                          $requested_redirect_to = '';

           }

 

           /**

            * Filters the log out redirect URL.

            *

            * @since 4.2.0

            *

            * @param string $redirect_to      The redirect destination URL.

            * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.

            * @param WP_User $user             The WP_User object for the user that's logging out.

            */

           $redirect_to = apply_filters('logout_redirect', $redirect_to, $requested_redirect_to, $user);

           wp_safe_redirect($redirect_to);

           exit();

 

case 'lostpassword':

case 'retrievepassword':

 

           if ($http_post) {

                          $errors = retrieve_password();

                          if (!is_wp_error($errors)) {

                                          $redirect_to =!empty($_REQUEST['redirect_to'])? $_REQUEST['redirect_to']: 'wp-login.php?checkemail=confirm';

                                          wp_safe_redirect($redirect_to);

                                          exit();

                          }

           }

 

           if (isset($_GET['error'])) {

                          if ('invalidkey' == $_GET['error']) {

                                          $errors->add('invalidkey', __('Your password reset link appears to be invalid. Please request a new link below.'));

                          } elseif ('expiredkey' == $_GET['error']) {

                                          $errors->add('expiredkey', __('Your password reset link has expired. Please request a new link below.'));

                          }

           }

 

           $lostpassword_redirect =! empty($_REQUEST['redirect_to'])? $_REQUEST['redirect_to']: '';

           /**

            * Filters the URL redirected to after submitting the lostpassword/retrievepassword form.

            *

            * @since 3.0.0

            *

            * @param string $lostpassword_redirect The redirect destination URL.

            */

           $redirect_to = apply_filters('lostpassword_redirect', $lostpassword_redirect);

 

           /**

            * Fires before the lost password form.

            *

            * @since 1.5.1

            */

           do_action('lost_password');

 

           login_header(__('Lost Password'), '<p class="message">'. __('Please enter your username or email address. You will receive a link to create a new password via email.'). '</p>', $errors);

 

           $user_login = isset($_POST['user_login'])? wp_unslash($_POST['user_login']): '';

 

?>

 

 


 

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: