Разработка интернет-магазина по продаже компьютерной техники

Определение назначения системы и обозначение целей создания Web-приложения интернет-магазина по продаже компьютерной техники. Описание страниц сайта и логической структуры приложения. Тестирование, применение приложения и затраты на его разработку.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.06.2014
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

5.Яргер Р., Риз Дж., Кинг Т. MySQL и mSQL. Базы данных для небольших предприятий и Интернета. - СПб: Символ-Плюс, 2000 - 560 с.

6.Орлов С.Д. Технологии разработки программного обеспечения. Учеб. пособие. 2-е изд. СПб.: Питер, 2003. - 480 с.

7. ГОСТ 19.401-2000 ЕСПД Текст программы

8. ГОСТ 19.402-2000 ЕСПД Описание программы

9. ГОСТ 19.404-79 ЕСПД Пояснительная записка. Требования к содержанию и оформлению

10. ГОСТ 19.504-79 ЕСПД Руководство программиста. Требования к содержанию и оформлению

11. ГОСТ 19.505-79 ЕСПД Руководство оператора. Требования к содержанию и оформлению

12. ГОСТ 2.105-95 ЕСКД Общие требования к текстовым документам

13. ГОСТ 19.701-90 ЕСПД Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

Приложение А

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

Файл wp-config.php

<?php

define('DB_NAME', '*****');

define('DB_USER', '*****');

define('DB_PASSWORD', '******');

define('DB_HOST', 'mysql.hostinger.ru');

define('DB_CHARSET', 'utf8');

define('DB_COLLATE', '');

define('AUTH_KEY', 'D/CW+G1s6tJJ|0$f4]6qK93F|5O2+Z+IG(Iws%kf,1t:aW-}YKNdz9G +BFWw2)Z');

define('SECURE_AUTH_KEY', ',NtVet+k#i3}kKMb8=B)oXF[9Z.}Q[D|qhC5_xdlg-d;Pr]mnRB@ QGhs r,|O@A');

define('LOGGED_IN_KEY', 'Cz=]-+asB6pT6n9,^ cWZ5gnnZO26QNZ}_qQAx|3,P8)tftnbQA(-!YuAO0]cYP7');

define('NONCE_KEY', 'KSq@ wC Xuk1zSU6~b6&O&%0W1+Vw5FpCjp7%].=/yw.;oNDh&3,[+h:|=1;u4a2');

define('AUTH_SALT', ';Q|Zb1i:jaWq2OJ,7CF!NH)2p|C#ApKi73 <a?&<j6ao]@U:bNvd/S%QyEZiNVw%');

define('SECURE_AUTH_SALT', 'UC#-Hi#-K26InO{GdVBu|5-*Q9xdmd0vF[jj` SSb88a/s`G0<7YM|afIrbtJ1Cs');

define('LOGGED_IN_SALT', 'h`!8<0+/ 6$uGJ:L[4Q{r]a%zz~R.oK5j6-~1-u~#t^ueJxfZm{J7FZ|G5-}d|ph');

define('NONCE_SALT', '1kQ}BhSim(EsHm5OR]*VhX>f?|R^$,Fp/?()cU DN:;gylQ[:10L1:rT!f~|kV--');

$table_prefix = 'wolivep_';

define('WPLANG', 'ru_RU');

define('WP_DEBUG', false);

if ( !defined('ABSPATH') )

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

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

Файл wp-trackback.php

<?php

/**

* Handle Trackbacks and Pingbacks Sent to WordPress

*

* @since 0.71

*

* @package WordPress

* @subpackage Trackbacks

*/

if (empty($wp)) {

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

wp( array( 'tb' => '1' ) );

}

/**

* Response to a trackback.

*

* Responds with an error or success XML message.

*

* @since 0.71

*

* @param int|bool $error Whether there was an error.

* Default '0'. Accepts '0' or '1'.

* @param string $error_message Error message if an error occurred.

*/

function trackback_response($error = 0, $error_message = '') {

header('Content-Type: text/xml; charset=' . get_option('blog_charset') );

if ($error) {

echo '<?xml version="1.0" encoding="utf-8"?'.">\n";

echo "<response>\n";

echo "<error>1</error>\n";

echo "<message>$error_message</message>\n";

echo "</response>";

die();

} else {

echo '<?xml version="1.0" encoding="utf-8"?'.">\n";

echo "<response>\n";

echo "<error>0</error>\n";

echo "</response>";

}

}

// Trackback is done by a POST.

$request_array = 'HTTP_POST_VARS';

if ( !isset($_GET['tb_id']) || !$_GET['tb_id'] ) {

$tb_id = explode('/', $_SERVER['REQUEST_URI']);

$tb_id = intval( $tb_id[ count($tb_id) - 1 ] );

}

$tb_url = isset($_POST['url']) ? $_POST['url'] : '';

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

// These three are stripslashed here so they can be properly escaped after mb_convert_encoding().

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

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

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

if ($charset)

$charset = str_replace( array(',', ' '), '', strtoupper( trim($charset) ) );

else

$charset = 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS';

// No valid uses for UTF-7.

if ( false !== strpos($charset, 'UTF-7') )

die;

// For international trackbacks.

if ( function_exists('mb_convert_encoding') ) {

$title = mb_convert_encoding($title, get_option('blog_charset'), $charset);

$excerpt = mb_convert_encoding($excerpt, get_option('blog_charset'), $charset);

$blog_name = mb_convert_encoding($blog_name, get_option('blog_charset'), $charset);

}

// Now that mb_convert_encoding() has been given a swing, we need to escape these three.

$title = wp_slash($title);

$excerpt = wp_slash($excerpt);

$blog_name = wp_slash($blog_name);

if ( is_single() || is_page() )

$tb_id = $posts[0]->ID;

if ( !isset($tb_id) || !intval( $tb_id ) )

trackback_response(1, 'I really need an ID for this to work.');

if (empty($title) && empty($tb_url) && empty($blog_name)) {

// If it doesn't look like a trackback at all.

wp_redirect(get_permalink($tb_id));

exit;

}

if ( !empty($tb_url) && !empty($title) ) {

header('Content-Type: text/xml; charset=' . get_option('blog_charset') );

if ( !pings_open($tb_id) )

trackback_response(1, 'Sorry, trackbacks are closed for this item.');

$title = wp_html_excerpt( $title, 250, '&#8230;' );

$excerpt = wp_html_excerpt( $excerpt, 252, '&#8230;' );

$comment_post_ID = (int) $tb_id;

$comment_author = $blog_name;

$comment_author_email = '';

$comment_author_url = $tb_url;

$comment_content = "<strong>$title</strong>\n\n$excerpt";

$comment_type = 'trackback';

$dupe = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $comment_post_ID, $comment_author_url) );

if ( $dupe )

trackback_response(1, 'We already have a ping from that URL for this post.');

$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type');

wp_new_comment($commentdata);

$trackback_id = $wpdb->insert_id;

/**

* Fires after a trackback is added to a post.

*

* @since 1.2.0

*

* @param int $trackback_id Trackback ID.

*/

do_action( 'trackback_post', $trackback_id );

trackback_response( 0 );

}

Файл wp-settings.php

<?php

/**

* Used to set up and fix common variables and include

* the WordPress procedural and class library.

*

* Allows for some configuration in wp-config.php (see default-constants.php)

*

* @internal This file must be parsable by PHP4.

*

* @package WordPress

*/

/**

* Stores the location of the WordPress directory of functions, classes, and core content.

*

* @since 1.0.0

*/

define( 'WPINC', 'wp-includes' );

// Include files required for initialization.

require( ABSPATH . WPINC . '/load.php' );

require( ABSPATH . WPINC . '/default-constants.php' );

/*

* These can't be directly globalized in version.php. When updating,

* we're including version.php from another install and don't want

* these values to be overridden if already set.

*/

global $wp_version, $wp_db_version, $tinymce_version, $required_php_version, $required_mysql_version;

require( ABSPATH . WPINC . '/version.php' );

// Set initial default constants including WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR and WP_CACHE.

wp_initial_constants();

// Check for the required PHP version and for the MySQL extension or a database drop-in.

wp_check_php_mysql_versions();

// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php.

@ini_set( 'magic_quotes_runtime', 0 );

@ini_set( 'magic_quotes_sybase', 0 );

// WordPress calculates offsets from UTC.

date_default_timezone_set( 'UTC' );

// Turn register_globals off.

wp_unregister_GLOBALS();

// Standardize $_SERVER variables across setups.

wp_fix_server_vars();

// Check if we have received a request due to missing favicon.ico

wp_favicon_request();

// Check if we're in maintenance mode.

wp_maintenance();

// Start loading timer.

timer_start();

// Check if we're in WP_DEBUG mode.

wp_debug_mode();

// For an advanced caching plugin to use. Uses a static drop-in because you would only want one.

if ( WP_CACHE )

WP_DEBUG ? include( WP_CONTENT_DIR . '/advanced-cache.php' ) : @include( WP_CONTENT_DIR . '/advanced-cache.php' );

// Define WP_LANG_DIR if not set.

wp_set_lang_dir();

// Load early WordPress files.

require( ABSPATH . WPINC . '/compat.php' );

require( ABSPATH . WPINC . '/functions.php' );

require( ABSPATH . WPINC . '/class-wp.php' );

require( ABSPATH . WPINC . '/class-wp-error.php' );

require( ABSPATH . WPINC . '/plugin.php' );

require( ABSPATH . WPINC . '/pomo/mo.php' );

// Include the wpdb class and, if present, a db.php database drop-in.

require_wp_db();

// Set the database table prefix and the format specifiers for database table columns.

$GLOBALS['table_prefix'] = $table_prefix;

wp_set_wpdb_vars();

// Start the WordPress object cache, or an external object cache if the drop-in is present.

wp_start_object_cache();

// Attach the default filters.

require( ABSPATH . WPINC . '/default-filters.php' );

// Initialize multisite if enabled.

if ( is_multisite() ) {

require( ABSPATH . WPINC . '/ms-blogs.php' );

require( ABSPATH . WPINC . '/ms-settings.php' );

} elseif ( ! defined( 'MULTISITE' ) ) {

define( 'MULTISITE', false );

}

register_shutdown_function( 'shutdown_action_hook' );

// Stop most of WordPress from being loaded if we just want the basics.

if ( SHORTINIT )

return false;

// Load the L10n library.

require_once( ABSPATH . WPINC . '/l10n.php' );

// Run the installer if WordPress is not installed.

wp_not_installed();

// Load most of WordPress.

require( ABSPATH . WPINC . '/class-wp-walker.php' );

require( ABSPATH . WPINC . '/class-wp-ajax-response.php' );

require( ABSPATH . WPINC . '/formatting.php' );

require( ABSPATH . WPINC . '/capabilities.php' );

require( ABSPATH . WPINC . '/query.php' );

require( ABSPATH . WPINC . '/date.php' );

require( ABSPATH . WPINC . '/theme.php' );

require( ABSPATH . WPINC . '/class-wp-theme.php' );

require( ABSPATH . WPINC . '/template.php' );

require( ABSPATH . WPINC . '/user.php' );

require( ABSPATH . WPINC . '/meta.php' );

require( ABSPATH . WPINC . '/general-template.php' );

require( ABSPATH . WPINC . '/link-template.php' );

require( ABSPATH . WPINC . '/author-template.php' );

require( ABSPATH . WPINC . '/post.php' );

require( ABSPATH . WPINC . '/post-template.php' );

require( ABSPATH . WPINC . '/revision.php' );

require( ABSPATH . WPINC . '/post-formats.php' );

require( ABSPATH . WPINC . '/post-thumbnail-template.php' );

require( ABSPATH . WPINC . '/category.php' );

require( ABSPATH . WPINC . '/category-template.php' );

require( ABSPATH . WPINC . '/comment.php' );

require( ABSPATH . WPINC . '/comment-template.php' );

require( ABSPATH . WPINC . '/rewrite.php' );

require( ABSPATH . WPINC . '/feed.php' );

require( ABSPATH . WPINC . '/bookmark.php' );

require( ABSPATH . WPINC . '/bookmark-template.php' );

require( ABSPATH . WPINC . '/kses.php' );

require( ABSPATH . WPINC . '/cron.php' );

require( ABSPATH . WPINC . '/deprecated.php' );

require( ABSPATH . WPINC . '/script-loader.php' );

require( ABSPATH . WPINC . '/taxonomy.php' );

require( ABSPATH . WPINC . '/update.php' );

require( ABSPATH . WPINC . '/canonical.php' );

require( ABSPATH . WPINC . '/shortcodes.php' );

require( ABSPATH . WPINC . '/class-wp-embed.php' );

require( ABSPATH . WPINC . '/media.php' );

require( ABSPATH . WPINC . '/http.php' );

require( ABSPATH . WPINC . '/class-http.php' );

require( ABSPATH . WPINC . '/widgets.php' );

require( ABSPATH . WPINC . '/nav-menu.php' );

require( ABSPATH . WPINC . '/nav-menu-template.php' );

require( ABSPATH . WPINC . '/admin-bar.php' );

// Load multisite-specific files.

if ( is_multisite() ) {

require( ABSPATH . WPINC . '/ms-functions.php' );

require( ABSPATH . WPINC . '/ms-default-filters.php' );

require( ABSPATH . WPINC . '/ms-deprecated.php' );

}

// Define constants that rely on the API to obtain the default value.

// Define must-use plugin directory constants, which may be overridden in the sunrise.php drop-in.

wp_plugin_directory_constants();

// Load must-use plugins.

foreach ( wp_get_mu_plugins() as $mu_plugin ) {

include_once( $mu_plugin );

}

unset( $mu_plugin );

// Load network activated plugins.

if ( is_multisite() ) {

foreach( wp_get_active_network_plugins() as $network_plugin ) {

include_once( $network_plugin );

}

unset( $network_plugin );

}

/**

* Fires once all must-use and network-activated plugins have loaded.

*

* @since 2.8.0

*/

do_action( 'muplugins_loaded' );

if ( is_multisite() )

ms_cookie_constants( );

// Define constants after multisite is loaded. Cookie-related constants may be overridden in ms_network_cookies().

wp_cookie_constants();

// Define and enforce our SSL constants

wp_ssl_constants();

// Create common globals.

require( ABSPATH . WPINC . '/vars.php' );

// Make taxonomies and posts available to plugins and themes.

// @plugin authors: warning: these get registered again on the init hook.

create_initial_taxonomies();

create_initial_post_types();

// Register the default theme directory root

register_theme_directory( get_theme_root() );

// Load active plugins.

foreach ( wp_get_active_and_valid_plugins() as $plugin )

include_once( $plugin );

unset( $plugin );

// Load pluggable functions.

require( ABSPATH . WPINC . '/pluggable.php' );

require( ABSPATH . WPINC . '/pluggable-deprecated.php' );

// Set internal encoding.

wp_set_internal_encoding();

// Run wp_cache_postload() if object cache is enabled and the function exists.

if ( WP_CACHE && function_exists( 'wp_cache_postload' ) )

wp_cache_postload();

/**

* Fires once activated plugins have loaded.

*

* Pluggable functions are also available at this point in the loading order.

*

* @since 1.5.0

*/

do_action( 'plugins_loaded' );

// Define constants which affect functionality if not already defined.

wp_functionality_constants();

// Add magic quotes and set up $_REQUEST ( $_GET + $_POST )

wp_magic_quotes();

/**

* Fires when comment cookies are sanitized.

*

* @since 2.0.11

*/

do_action( 'sanitize_comment_cookies' );

/**

* WordPress Query object

* @global object $wp_the_query

* @since 2.0.0

*/

$wp_the_query = new WP_Query();

/**

* Holds the reference to @see $wp_the_query

* Use this global for WordPress queries

* @global object $wp_query

* @since 1.5.0

*/

$wp_query = $wp_the_query;

/**

* Holds the WordPress Rewrite object for creating pretty URLs

* @global object $wp_rewrite

* @since 1.5.0

*/

$GLOBALS['wp_rewrite'] = new WP_Rewrite();

/**

* WordPress Object

* @global object $wp

* @since 2.0.0

*/

$wp = new WP();

/**

* WordPress Widget Factory Object

* @global object $wp_widget_factory

* @since 2.8.0

*/

$GLOBALS['wp_widget_factory'] = new WP_Widget_Factory();

/**

* WordPress User Roles

* @global object $wp_roles

* @since 2.0.0

*/

$GLOBALS['wp_roles'] = new WP_Roles();

/**

* Fires before the theme is loaded.

*

* @since 2.6.0

*/

do_action( 'setup_theme' );

// Define the template related constants.

wp_templating_constants( );

// Load the default text localization domain.

load_default_textdomain();

$locale = get_locale();

$locale_file = WP_LANG_DIR . "/$locale.php";

if ( ( 0 === validate_file( $locale ) ) && is_readable( $locale_file ) )

require( $locale_file );

unset( $locale_file );

// Pull in locale data after loading text domain.

require_once( ABSPATH . WPINC . '/locale.php' );

/**

* WordPress Locale object for loading locale domain date and various strings.

* @global object $wp_locale

* @since 2.1.0

*/

$GLOBALS['wp_locale'] = new WP_Locale();

// Load the functions for the active theme, for both parent and child theme if applicable.

if ( ! defined( 'WP_INSTALLING' ) || 'wp-activate.php' === $pagenow ) {

if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )

include( STYLESHEETPATH . '/functions.php' );

if ( file_exists( TEMPLATEPATH . '/functions.php' ) )

include( TEMPLATEPATH . '/functions.php' );

}

/**

* Fires after the theme is loaded.

*

* @since 3.0.0

*/

do_action( 'after_setup_theme' );

// Set up current user.

$wp->init();

/**

* Fires after WordPress has finished loading but before any headers are sent.

*

* Most of WP is loaded at this stage, and the user is authenticated. WP continues

* to load on the init hook that follows (e.g. widgets), and many plugins instantiate

* themselves on it for all sorts of reasons (e.g. they need a user, a taxonomy, etc.).

*

* If you wish to plug an action once WP is loaded, use the wp_loaded hook below.

*

* @since 1.5.0

*/

do_action( 'init' );

// Check site status

if ( is_multisite() ) {

if ( true !== ( $file = ms_site_check() ) ) {

require( $file );

die();

}

unset($file);

}

/**

* This hook is fired once WP, all plugins, and the theme are fully loaded and instantiated.

*

* AJAX requests should use wp-admin/admin-ajax.php. admin-ajax.php can handle requests for

* users not logged in.

*

* @link http://codex.wordpress.org/AJAX_in_Plugins

*

* @since 3.0.0

*/

do_action( 'wp_loaded' );

Файл wp-login.php

<?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 Log In Page title to display in <title/> element. Default 'Log In'.

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

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

* @param WP_Error $wp_error Optional. WordPress Error Object

*/

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' );

if ( wp_is_mobile() )

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' );

/**

* Filter 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 );

?><!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 bloginfo('name'); ?> &rsaquo; <?php echo $title; ?></title>

<?php

wp_admin_css( 'wp-admin', true );

wp_admin_css( 'colors-fresh', true );

wp_admin_css( 'ie', true );

// 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_current_site()->site_name;

} else {

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

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

}

/**

* Filter 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 );

/**

* Filter 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 ( wp_is_mobile() )

$classes[] = 'mobile';

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';

}

/**

* Filter 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 ) ); ?>">

<div id="login">

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

<?php

unset( $login_header_url, $login_header_title );

/**

* Filter 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 ) {

if ( 'message' == $severity )

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

else

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

}

}

if ( ! empty( $errors ) ) {

/**

* Filter 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 ) ) {

/**

* Filter 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( '/' ) ); ?>" title="<?php esc_attr_e( 'Are you lost?' ); ?>"><?php printf( __( '&larr; Back to %s' ), 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

}

function wp_shake_js() {

if ( wp_is_mobile() )

return;

?>

<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

}

function wp_login_viewport_meta() {

?>

<meta name="viewport" content="width=device-width" />

<?php

}

/**

* Handles sending password retrieval email to user.

*

* @uses $wpdb WordPress Database object

*

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

*/

function retrieve_password() {

global $wpdb, $wp_hasher;

$errors = new WP_Error();

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

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

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

$user_data = get_user_by( 'email', trim( $_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

*/

do_action( 'lostpassword_post' );

if ( $errors->get_error_code() )

return $errors;

if ( !$user_data ) {

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

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;

/**

* Fires before a new password is retrieved.

*

* @since 1.5.0

* @deprecated 1.5.1 Misspelled. Use 'retrieve_password' hook instead.

*

* @param string $user_login The user login name.

*/

do_action( 'retreive_password', $user_login );

/**

* Fires before a new password is retrieved.

*

* @since 1.5.1

*

* @param string $user_login The user login name.

*/

do_action( 'retrieve_password', $user_login );

/**

* Filter whether to allow a password to be reset.

*

* @since 2.7.0

*

* @param bool true Whether to allow the password to be reset. Default true.

* @param int $user_data->ID The ID of the user attempting to reset a password.

*/

$allow = apply_filters( 'allow_password_reset', true, $user_data->ID );

if ( ! $allow )

return new WP_Error('no_password_reset', __('Password reset is not allowed for this user'));

else if ( is_wp_error($allow) )

return $allow;

// Generate something random for a password reset key.

$key = wp_generate_password( 20, false );

/**

* Fires when a password reset key is generated.

*

* @since 2.5.0

*

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

* @param string $key The generated password reset key.

*/

do_action( 'retrieve_password_key', $user_login, $key );

// Now insert the key, hashed, into the DB.

if ( empty( $wp_hasher ) ) {

require_once ABSPATH . 'wp-includes/class-phpass.php';

$wp_hasher = new PasswordHash( 8, true );

}

$hashed = $wp_hasher->HashPassword( $key );

$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user_login ) );

$message = __('Someone requested that the password be 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 = $GLOBALS['current_site']->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);

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

/**

* Filter the subject of the password reset email.

*

* @since 2.8.0

*

* @param string $title Default email title.

*/

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

/**

* Filter the message body of the password reset mail.

*

* @since 2.8.0

*

* @param string $message Default mail message.

* @param string $key The activation key.

*/

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

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

wp_die( __('The e-mail 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.

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

if ( SITECOOKIEPATH != COOKIEPATH )

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

/**

* 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' :

require_once ABSPATH . 'wp-includes/class-phpass.php';

$hasher = new PasswordHash( 8, true );

/**

* Filter the life span of the post password cookie.

*

* By default, the cookie expires 10 days from creation. To turn this

* into a session cookie, return 0.

*

* @since 3.7.0

*

* @param int $expires The expiry time, as passed to setcookie().

*/

$expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );

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

wp_safe_redirect( wp_get_referer() );

exit();

break;

case 'logout' :

check_admin_referer('log-out');

wp_logout();

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

wp_safe_redirect( $redirect_to );

exit();

break;

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', __( 'Sorry, that key does not appear to be valid.' ) );

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

$errors->add( 'expiredkey', __( 'Sorry, that key has expired. Please try again.' ) );

}

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

/**

* Filter 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']) : '';

?>

<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">

<p>

<label for="user_login" ><?php _e('Username or E-mail:') ?><br />

<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>

</p>

<?php

/**

* Fires inside the lostpassword <form> tags, before the hidden fields.

*

* @since 2.1.0

*/

do_action( 'lostpassword_form' ); ?>

<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />

<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Get New Password'); ?>" /></p>

</form>

<p id="nav">

<a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e('Log in') ?></a>

<?php

if ( get_option( 'users_can_register' ) ) :

$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );

/**

* Filter the registration URL below the login form.

*

* @since 1.5.0

*

* @param string $registration_url Registration URL.

*/

echo ' | ' . apply_filters( 'register', $registration_url );

endif;

?>

</p>

<?php

login_footer('user_login');

break;

case 'resetpass' :

case 'rp' :

$user = check_password_reset_key($_GET['key'], $_GET['login']);

if ( is_wp_error($user) ) {

if ( $user->get_error_code() === 'expired_key' )

wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );

else

wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );

exit;

}

$errors = new WP_Error();

if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] )

$errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );

/**

* Fires before the password reset procedure is validated.

*

* @since 3.5.0

*

* @param object $errors WP Error object.

* @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise.

*/

do_action( 'validate_password_reset', $errors, $user );

if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) {

reset_password($user, $_POST['pass1']);

login_header( __( 'Password Reset' ), '<p class="message reset-pass">' . __( 'Your password has been reset.' ) . ' <a href="' . esc_url( wp_login_url() ) . '">' . __( 'Log in' ) . '</a></p>' );

login_footer();

exit;

}

wp_enqueue_script('utils');

wp_enqueue_script('user-profile');

login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );

?>

<form name="resetpassform" id="resetpassform" action="<?php echo esc_url( site_url( 'wp-login.php?action=resetpass&key=' . urlencode( $_GET['key'] ) . '&login=' . urlencode( $_GET['login'] ), 'login_post' ) ); ?>" method="post" autocomplete="off">

<input type="hidden" id="user_login" value="<?php echo esc_attr( $_GET['login'] ); ?>" autocomplete="off" />

<p>

<label for="pass1"><?php _e('New password') ?><br />

<input type="password" name="pass1" id="pass1" class="input" size="20" value="" autocomplete="off" /></label>

</p>

<p>

<label for="pass2"><?php _e('Confirm new password') ?><br />

<input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" /></label>

</p>

<div id="pass-strength-result" class="hide-if-no-js"><?php _e('Strength indicator'); ?></div>

<p class="description indicator-hint"><?php _e('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).'); ?></p>

<br class="clear" />

<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Reset Password'); ?>" /></p>

</form>

<p id="nav">

<a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>

<?php

if ( get_option( 'users_can_register' ) ) :

$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );

/** This filter is documented in wp-login.php */

echo ' | ' . apply_filters( 'register', $registration_url );

endif;

?>

</p>

<?php

login_footer('user_pass');

break;

case 'register' :

if ( is_multisite() ) {

$sign_up_url = network_site_url( 'wp-signup.php' );

/**

* Filter the Multisite sign up URL.

*

* @since 3.0.0

*

* @param string $sign_up_url The sign up URL.

*/

wp_redirect( apply_filters( 'wp_signup_location', $sign_up_url ) );

exit;

}

if ( !get_option('users_can_register') ) {

wp_redirect( site_url('wp-login.php?registration=disabled') );

exit();

}

$user_login = '';

$user_email = '';

if ( $http_post ) {

$user_login = $_POST['user_login'];

$user_email = $_POST['user_email'];

$errors = register_new_user($user_login, $user_email);

if ( !is_wp_error($errors) ) {

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

wp_safe_redirect( $redirect_to );

exit();

}

}

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

/**

* Filter the registration redirect URL.

*

* @since 3.0.0

*

* @param string $registration_redirect The redirect destination URL.

*/

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

login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site') . '</p>', $errors);

?>

<form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post">

<p>

<label for="user_login"><?php _e('Username') ?><br />

<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="20" /></label>

</p>

<p>

<label for="user_email"><?php _e('E-mail') ?><br />

<input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(wp_unslash($user_email)); ?>" size="25" /></label>

</p>

<?php

/**

* Fires following the 'E-mail' field in the user registration form.

*

* @since 2.1.0

*/

do_action( 'register_form' );

?>

<p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p>

<br class="clear" />

<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />

<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Register'); ?>" /></p>

</form>

<p id="nav">

<a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a> |

<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>" title="<?php esc_attr_e( 'Password Lost and Found' ) ?>"><?php _e( 'Lost your password?' ); ?></a>

</p>

<?php

login_footer('user_login');

break;

case 'login' :

default:

$secure_cookie = '';

$customize_login = isset( $_REQUEST['customize-login'] );

if ( $customize_login )

wp_enqueue_script( 'customize-base' );

// If the user wants ssl but the session is not ssl, force a secure cookie.

if ( !empty($_POST['log']) && !force_ssl_admin() ) {

$user_name = sanitize_user($_POST['log']);

if ( $user = get_user_by('login', $user_name) ) {

if ( get_user_option('use_ssl', $user->ID) ) {

$secure_cookie = true;

force_ssl_admin(true);

}

}

}

if ( isset( $_REQUEST['redirect_to'] ) ) {

$redirect_to = $_REQUEST['redirect_to'];

// Redirect to https if user wants ssl

if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') )

$redirect_to = preg_replace('|^http://|', 'https://', $redirect_to);

} else {

$redirect_to = admin_url();

}

$reauth = empty($_REQUEST['reauth']) ? false : true;

// If the user was redirected to a secure login form from a non-secure admin page, and secure login is required but secure admin is not, then don't use a secure

// cookie and redirect back to the referring non-secure admin page. This allows logins to always be POSTed over SSL while allowing the user to choose visiting

// the admin via http or https.

if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) )

$secure_cookie = false;

// If cookies are disabled we can't log in even with a valid user+pass

if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )

$user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress."));

else

$user = wp_signon('', $secure_cookie);

$requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';

/**

* Filter the login redirect URL.

*

* @since 3.0.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|WP_Error $user WP_User object if login was successful, WP_Error object otherwise.

*/

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

if ( !is_wp_error($user) && !$reauth ) {

if ( $interim_login ) {

$message = '<p class="message">' . __('You have logged in successfully.') . '</p>';

$interim_login = 'success';

login_header( '', $message ); ?>

</div>

<?php

/** This action is documented in wp-login.php */

do_action( 'login_footer' ); ?>

<?php if ( $customize_login ) : ?>

<script type="text/javascript">setTimeout( function(){ new wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login' }).send('login') }, 1000 );</script>

<?php endif; ?>

</body></html>

<?phpexit;

}

if ( ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) ) {

// If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile.

if ( is_multisite() && !get_active_blog_for_user($user->ID) && !is_super_admin( $user->ID ) )

$redirect_to = user_admin_url();

elseif ( is_multisite() && !$user->has_cap('read') )

$redirect_to = get_dashboard_url( $user->ID );

elseif ( !$user->has_cap('edit_posts') )

$redirect_to = admin_url('profile.php');

}

wp_safe_redirect($redirect_to);

exit();

}

$errors = $user;

// Clear errors if loggedout is set.

if ( !empty($_GET['loggedout']) || $reauth )

$errors = new WP_Error();

if ( $interim_login ) {

if ( ! $errors->get_error_code() )

$errors->add('expired', __('Session expired. Please log in again. You will not move away from this page.'), 'message');

} else {

// Some parts of this script use the main login form to display a message

if( isset($_GET['loggedout']) && true == $_GET['loggedout'] )

$errors->add('loggedout', __('You are now logged out.'), 'message');

elseif( isset($_GET['registration']) && 'disabled' == $_GET['registration'] )

$errors->add('registerdisabled', __('User registration is currently not allowed.'));

elseif( isset($_GET['checkemail']) && 'confirm' == $_GET['checkemail'] )

$errors->add('confirm', __('Check your e-mail for the confirmation link.'), 'message');

elseif( isset($_GET['checkemail']) && 'newpass' == $_GET['checkemail'] )

$errors->add('newpass', __('Check your e-mail for your new password.'), 'message');

elseif( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] )

$errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');

elseif ( strpos( $redirect_to, 'about.php?updated' ) )

$errors->add('updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to experience the awesomeness.' ), 'message' );

}

/**

* Filter the login page errors.

*

* @since 3.6.0

*

* @param object $errors WP Error object.

* @param string $redirect_to Redirect destination URL.

*/

$errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );

// Clear any stale cookies.

if ( $reauth )

wp_clear_auth_cookie();

login_header(__('Log In'), '', $errors);

if ( isset($_POST['log']) )

$user_login = ( 'incorrect_password' == $errors->get_error_code() || 'empty_password' == $errors->get_error_code() ) ? esc_attr(wp_unslash($_POST['log'])) : '';

$rememberme = ! empty( $_POST['rememberme'] );

?>

<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

<p>

<label for="user_login"><?php _e('Username') ?><br />

<input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>

</p>

<p>

<label for="user_pass"><?php _e('Password') ?><br />

<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" /></label>

</p>

<?php

/**

* Fires following the 'Password' field in the login form.

*

* @since 2.1.0

*/

do_action( 'login_form' );

?>

<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_attr_e('Remember Me'); ?></label></p>

<p class="submit">

<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Log In'); ?>" />

<?phpif ( $interim_login ) { ?>

<input type="hidden" name="interim-login" value="1" />

<?php} else { ?>

<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />

<?php } ?>

<?php if ( $customize_login ) : ?>

<input type="hidden" name="customize-login" value="1" />

<?php endif; ?>

<input type="hidden" name="testcookie" value="1" />

</p>

</form>

<?php if ( ! $interim_login ) { ?>

<p id="nav">

<?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :

if ( get_option( 'users_can_register' ) ) :

$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );

/** This filter is documented in wp-login.php */

echo apply_filters( 'register', $registration_url ) . ' | ';

endif;

?>

<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>" title="<?php esc_attr_e( 'Password Lost and Found' ); ?>"><?php _e( 'Lost your password?' ); ?></a>

<?php endif; ?>

</p>

<?php } ?>

<script type="text/javascript">

function wp_attempt_focus(){

setTimeout( function(){ try{

<?php if ( $user_login || $interim_login ) { ?>

d = document.getElementById('user_pass');

d.value = '';

<?php } else { ?>

d = document.getElementById('user_login');

<?php if ( 'invalid_username' == $errors->get_error_code() ) { ?>

if( d.value != '' )

d.value = '';

<?php

}

}?>

d.focus();

d.select();

} catch(e){}

}, 200);

}

<?php if ( !$error ) { ?>

wp_attempt_focus();

<?php } ?>

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

<?php if ( $interim_login ) { ?>

(function(){

try {

var i, links = document.getElementsByTagName('a');

for ( i in links ) {

if ( links[i].href )

links[i].target = '_blank';

}

} catch(e){}

}());

<?php } ?>

</script>

<?php

login_footer();

break;

} // end action switch

Файл index.php

<?php

/**

* Front to the WordPress application. This file doesn't do anything, but loads

* wp-blog-header.php which does and tells WordPress to load the theme.

*

* @package WordPress

*/

/**

* Tells WordPress to load the WordPress theme and output it.

*

* @var bool

*/

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */

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

Файл .htaccess

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Приложение Б

Страницы Web-приложения

Рисунок Б.1 - Главная страница

Рисунок Б.2 - Страница «Список товаров»

Рисунок Б.3 - Страница «Оплата»

Рисунок Б.4 - Страница «Доставка»

Рисунок Б.5 - Страница «Контакты»

Рисунок Б.6 - Страница «Корзина»

Рисунок Б.7 - Страница «Оформление заказа»

Размещено на Allbest.ru


Подобные документы

  • Мультимедийное представление информации. Разработка структуры сайта, макетов страниц, серверной логики и компьютерного кода, интерфейса. Описание шагов для размещения презентации в сети интернет. Затраты на разработку приложения и экономический эффект.

    дипломная работа [539,0 K], добавлен 18.10.2015

  • Анализ сравнения интернет-магазина и электронного магазина. Проектирование структуры web-сайта. Обработка заказа. Основное понятие языка php. Средства безопасности системного уровня приложения. Разработка структуры базы данных и структуры web-сайта.

    курсовая работа [1,4 M], добавлен 31.03.2014

  • Преимущества и недостатки электронной коммерции. Описание локального сервера Denwer. Структура файлов и папок. Особенности PHP, MySQL, CSS, HTML. Разработка структуры сайта интернет-магазина по продажи гитар и комплектующих, его программная реализация.

    курсовая работа [5,0 M], добавлен 25.10.2014

  • Обработка страниц на web-сервере и модель событий ASP.NET. Разработка компонентов приложения: компоновка и оформление web-страниц, аутентификация и авторизация пользователей, основные элементы интерфейса. Развёртывание web-приложения и модели компиляции.

    дипломная работа [1,7 M], добавлен 29.09.2009

  • Основы Web-программирования. Сервер баз данных MySQL. Язык сценариев PHP. Язык гипертекстовой разметки HTML. Назначение и цели разработки сайта. Форма входа и регистрации, обратная связь интернет–магазина. Требования к структуре сайта, описание контента.

    курсовая работа [754,5 K], добавлен 02.06.2014

  • Проектирование книжного интернет-магазина для реализации книжной продукции через Интернет. Анализ и обоснование выбора языков программирования и средств разработки сайта. Затраты внедрение сайта, его программное обеспечение, тестирование и отладка.

    дипломная работа [2,1 M], добавлен 06.06.2013

  • Мультимедийное представление информации, аналоги платформ. Разработка структуры сайта, макетов страниц. Верстка шаблонов страниц. Написание серверной логики и кода презентаций. Публикация сайта в сети Интернет. Требования к интерфейсу пользователя.

    дипломная работа [983,2 K], добавлен 17.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.