├── .DS_Store ├── README.md ├── assets ├── css │ ├── .DS_Store │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── bootstrap │ │ ├── bootstrap-grid.css │ │ └── bootstrap-reboot.css │ ├── owl.carousel.min.css │ └── style.css ├── fonts │ ├── .DS_Store │ └── icomoon │ │ ├── Read Me.txt │ │ ├── demo-files │ │ ├── demo.css │ │ └── demo.js │ │ ├── demo.html │ │ ├── fonts │ │ ├── icomoon.eot │ │ ├── icomoon.svg │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ │ ├── selection.json │ │ └── style.css ├── images │ ├── .DS_Store │ ├── bg_1.jpg │ └── undraw_remotely_2j6y.svg ├── js │ ├── bootstrap.min.js │ ├── jquery-3.3.1.min.js │ ├── main.js │ ├── owl.carousel.min.js │ └── popper.min.js ├── main.html └── scss │ ├── .DS_Store │ ├── bootstrap │ ├── _alert.scss │ ├── _badge.scss │ ├── _breadcrumb.scss │ ├── _button-group.scss │ ├── _buttons.scss │ ├── _card.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _code.scss │ ├── _custom-forms.scss │ ├── _dropdown.scss │ ├── _forms.scss │ ├── _functions.scss │ ├── _grid.scss │ ├── _images.scss │ ├── _input-group.scss │ ├── _jumbotron.scss │ ├── _list-group.scss │ ├── _media.scss │ ├── _mixins.scss │ ├── _modal.scss │ ├── _nav.scss │ ├── _navbar.scss │ ├── _pagination.scss │ ├── _popover.scss │ ├── _print.scss │ ├── _progress.scss │ ├── _reboot.scss │ ├── _root.scss │ ├── _spinners.scss │ ├── _tables.scss │ ├── _toasts.scss │ ├── _tooltip.scss │ ├── _transitions.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── bootstrap-grid.scss │ ├── bootstrap-reboot.scss │ ├── bootstrap.scss │ ├── mixins │ │ ├── _alert.scss │ │ ├── _background-variant.scss │ │ ├── _badge.scss │ │ ├── _border-radius.scss │ │ ├── _box-shadow.scss │ │ ├── _breakpoints.scss │ │ ├── _buttons.scss │ │ ├── _caret.scss │ │ ├── _clearfix.scss │ │ ├── _deprecate.scss │ │ ├── _float.scss │ │ ├── _forms.scss │ │ ├── _gradients.scss │ │ ├── _grid-framework.scss │ │ ├── _grid.scss │ │ ├── _hover.scss │ │ ├── _image.scss │ │ ├── _list-group.scss │ │ ├── _lists.scss │ │ ├── _nav-divider.scss │ │ ├── _pagination.scss │ │ ├── _reset-text.scss │ │ ├── _resize.scss │ │ ├── _screen-reader.scss │ │ ├── _size.scss │ │ ├── _table-row.scss │ │ ├── _text-emphasis.scss │ │ ├── _text-hide.scss │ │ ├── _text-truncate.scss │ │ ├── _transition.scss │ │ └── _visibility.scss │ ├── utilities │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _borders.scss │ │ ├── _clearfix.scss │ │ ├── _display.scss │ │ ├── _embed.scss │ │ ├── _flex.scss │ │ ├── _float.scss │ │ ├── _overflow.scss │ │ ├── _position.scss │ │ ├── _screenreaders.scss │ │ ├── _shadows.scss │ │ ├── _sizing.scss │ │ ├── _spacing.scss │ │ ├── _stretched-link.scss │ │ ├── _text.scss │ │ └── _visibility.scss │ └── vendor │ │ └── _rfs.scss │ └── style.scss ├── close_session.php ├── exercises ├── phpinfo.php ├── server_variables.php └── session_variables.php ├── index.php ├── panel ├── .babelrc ├── .eslintrc ├── .github │ └── ISSUE_TEMPLATE │ │ ├── bug_report.md │ │ ├── config.yml │ │ └── feature_request.md ├── .gitignore ├── .nvmrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── package.json ├── postcss.config.js ├── src │ ├── fonts │ │ └── .gitkeep │ ├── img │ │ ├── avatars │ │ │ ├── avatar-2.jpg │ │ │ ├── avatar-3.jpg │ │ │ ├── avatar-4.jpg │ │ │ ├── avatar-5.jpg │ │ │ └── avatar.jpg │ │ ├── icons │ │ │ └── icon-48x48.png │ │ └── photos │ │ │ ├── unsplash-1.jpg │ │ │ ├── unsplash-2.jpg │ │ │ └── unsplash-3.jpg │ ├── js │ │ ├── app.js │ │ └── modules │ │ │ ├── bootstrap.js │ │ │ ├── chartjs.js │ │ │ ├── feather.js │ │ │ ├── flatpickr.js │ │ │ ├── sidebar.js │ │ │ ├── theme.js │ │ │ └── vector-maps.js │ └── scss │ │ ├── 1-variables │ │ └── _app.scss │ │ ├── 2-mixins │ │ └── _button.scss │ │ ├── 3-components │ │ ├── _avatar.scss │ │ ├── _buttons.scss │ │ ├── _card.scss │ │ ├── _chart.scss │ │ ├── _content.scss │ │ ├── _dropdown.scss │ │ ├── _feather.scss │ │ ├── _footer.scss │ │ ├── _hamburger.scss │ │ ├── _list-group.scss │ │ ├── _main.scss │ │ ├── _navbar.scss │ │ ├── _reboot.scss │ │ ├── _sidebar.scss │ │ ├── _sizing.scss │ │ ├── _stat.scss │ │ ├── _tables.scss │ │ ├── _type.scss │ │ └── _wrapper.scss │ │ ├── 4-utilities │ │ └── _cursors.scss │ │ ├── 5-vendor │ │ ├── _flatpickr.scss │ │ └── _simplebar.scss │ │ └── app.scss ├── static │ ├── charts-chartjs.html │ ├── css │ │ ├── app.css │ │ └── app.css.map │ ├── fonts │ │ └── .gitkeep │ ├── icons-feather.html │ ├── img │ │ ├── avatars │ │ │ ├── avatar-2.jpg │ │ │ ├── avatar-3.jpg │ │ │ ├── avatar-4.jpg │ │ │ ├── avatar-5.jpg │ │ │ └── avatar.jpg │ │ ├── icons │ │ │ └── icon-48x48.png │ │ └── photos │ │ │ ├── unsplash-1.jpg │ │ │ ├── unsplash-2.jpg │ │ │ └── unsplash-3.jpg │ ├── js │ │ ├── app.js │ │ ├── app.js.LICENSE.txt │ │ └── app.js.map │ ├── maps-google.html │ ├── pages-blank.html │ ├── pages-profile.html │ ├── panel.php │ ├── ui-buttons.html │ ├── ui-cards.html │ ├── ui-forms.html │ └── ui-typography.html └── webpack.config.js ├── sessioncontrol.php └── validate.php /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP Server Environment 2 | 3 | A project that works with Sessions in PHP can be found in this repository. We do this by using a session record that contains a username and password that must be validated in order to access the website. The user can log out to return to the registration page once inside. 4 | 5 | 6 | **Login Page** 7 | ![loginPage](https://ucarecdn.com/556b83f3-15ed-45e6-a720-b93a603fd8f0/) 8 | 9 | 10 | 11 | If the user doesn't exist, the website will display an error message: 12 | ![](https://ucarecdn.com/5705c2c3-a661-49cb-868d-17410ba61263/) 13 | 14 | 15 | **Dashboard Page** 16 | 17 | ![](https://ucarecdn.com/9939be49-2a49-4ca4-9f1c-b3e266c2756b/) 18 | 19 | 20 | **Logout** 21 | ![](https://ucarecdn.com/1bfda12b-219b-483a-944d-34ae5bdb50dd/) -------------------------------------------------------------------------------- /assets/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/css/.DS_Store -------------------------------------------------------------------------------- /assets/css/bootstrap/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | -webkit-box-sizing: border-box; 12 | box-sizing: border-box; } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } 19 | 20 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { 21 | display: block; } 22 | 23 | body { 24 | margin: 0; 25 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 26 | font-size: 1rem; 27 | font-weight: 400; 28 | line-height: 1.5; 29 | color: #212529; 30 | text-align: left; 31 | background-color: #fff; } 32 | 33 | [tabindex="-1"]:focus { 34 | outline: 0 !important; } 35 | 36 | hr { 37 | -webkit-box-sizing: content-box; 38 | box-sizing: content-box; 39 | height: 0; 40 | overflow: visible; } 41 | 42 | h1, h2, h3, h4, h5, h6 { 43 | margin-top: 0; 44 | margin-bottom: 0.5rem; } 45 | 46 | p { 47 | margin-top: 0; 48 | margin-bottom: 1rem; } 49 | 50 | abbr[title], 51 | abbr[data-original-title] { 52 | text-decoration: underline; 53 | -webkit-text-decoration: underline dotted; 54 | text-decoration: underline dotted; 55 | cursor: help; 56 | border-bottom: 0; 57 | text-decoration-skip-ink: none; } 58 | 59 | address { 60 | margin-bottom: 1rem; 61 | font-style: normal; 62 | line-height: inherit; } 63 | 64 | ol, 65 | ul, 66 | dl { 67 | margin-top: 0; 68 | margin-bottom: 1rem; } 69 | 70 | ol ol, 71 | ul ul, 72 | ol ul, 73 | ul ol { 74 | margin-bottom: 0; } 75 | 76 | dt { 77 | font-weight: 700; } 78 | 79 | dd { 80 | margin-bottom: .5rem; 81 | margin-left: 0; } 82 | 83 | blockquote { 84 | margin: 0 0 1rem; } 85 | 86 | b, 87 | strong { 88 | font-weight: bolder; } 89 | 90 | small { 91 | font-size: 80%; } 92 | 93 | sub, 94 | sup { 95 | position: relative; 96 | font-size: 75%; 97 | line-height: 0; 98 | vertical-align: baseline; } 99 | 100 | sub { 101 | bottom: -.25em; } 102 | 103 | sup { 104 | top: -.5em; } 105 | 106 | a { 107 | color: #6c63ff; 108 | text-decoration: none; 109 | background-color: transparent; } 110 | a:hover { 111 | color: #2417ff; 112 | text-decoration: underline; } 113 | 114 | a:not([href]):not([tabindex]) { 115 | color: inherit; 116 | text-decoration: none; } 117 | a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { 118 | color: inherit; 119 | text-decoration: none; } 120 | a:not([href]):not([tabindex]):focus { 121 | outline: 0; } 122 | 123 | pre, 124 | code, 125 | kbd, 126 | samp { 127 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 128 | font-size: 1em; } 129 | 130 | pre { 131 | margin-top: 0; 132 | margin-bottom: 1rem; 133 | overflow: auto; } 134 | 135 | figure { 136 | margin: 0 0 1rem; } 137 | 138 | img { 139 | vertical-align: middle; 140 | border-style: none; } 141 | 142 | svg { 143 | overflow: hidden; 144 | vertical-align: middle; } 145 | 146 | table { 147 | border-collapse: collapse; } 148 | 149 | caption { 150 | padding-top: 0.75rem; 151 | padding-bottom: 0.75rem; 152 | color: #6c757d; 153 | text-align: left; 154 | caption-side: bottom; } 155 | 156 | th { 157 | text-align: inherit; } 158 | 159 | label { 160 | display: inline-block; 161 | margin-bottom: 0.5rem; } 162 | 163 | button { 164 | border-radius: 0; } 165 | 166 | button:focus { 167 | outline: 1px dotted; 168 | outline: 5px auto -webkit-focus-ring-color; } 169 | 170 | input, 171 | button, 172 | select, 173 | optgroup, 174 | textarea { 175 | margin: 0; 176 | font-family: inherit; 177 | font-size: inherit; 178 | line-height: inherit; } 179 | 180 | button, 181 | input { 182 | overflow: visible; } 183 | 184 | button, 185 | select { 186 | text-transform: none; } 187 | 188 | select { 189 | word-wrap: normal; } 190 | 191 | button, 192 | [type="button"], 193 | [type="reset"], 194 | [type="submit"] { 195 | -webkit-appearance: button; } 196 | 197 | button:not(:disabled), 198 | [type="button"]:not(:disabled), 199 | [type="reset"]:not(:disabled), 200 | [type="submit"]:not(:disabled) { 201 | cursor: pointer; } 202 | 203 | button::-moz-focus-inner, 204 | [type="button"]::-moz-focus-inner, 205 | [type="reset"]::-moz-focus-inner, 206 | [type="submit"]::-moz-focus-inner { 207 | padding: 0; 208 | border-style: none; } 209 | 210 | input[type="radio"], 211 | input[type="checkbox"] { 212 | -webkit-box-sizing: border-box; 213 | box-sizing: border-box; 214 | padding: 0; } 215 | 216 | input[type="date"], 217 | input[type="time"], 218 | input[type="datetime-local"], 219 | input[type="month"] { 220 | -webkit-appearance: listbox; } 221 | 222 | textarea { 223 | overflow: auto; 224 | resize: vertical; } 225 | 226 | fieldset { 227 | min-width: 0; 228 | padding: 0; 229 | margin: 0; 230 | border: 0; } 231 | 232 | legend { 233 | display: block; 234 | width: 100%; 235 | max-width: 100%; 236 | padding: 0; 237 | margin-bottom: .5rem; 238 | font-size: 1.5rem; 239 | line-height: inherit; 240 | color: inherit; 241 | white-space: normal; } 242 | 243 | progress { 244 | vertical-align: baseline; } 245 | 246 | [type="number"]::-webkit-inner-spin-button, 247 | [type="number"]::-webkit-outer-spin-button { 248 | height: auto; } 249 | 250 | [type="search"] { 251 | outline-offset: -2px; 252 | -webkit-appearance: none; } 253 | 254 | [type="search"]::-webkit-search-decoration { 255 | -webkit-appearance: none; } 256 | 257 | ::-webkit-file-upload-button { 258 | font: inherit; 259 | -webkit-appearance: button; } 260 | 261 | output { 262 | display: inline-block; } 263 | 264 | summary { 265 | display: list-item; 266 | cursor: pointer; } 267 | 268 | template { 269 | display: none; } 270 | 271 | [hidden] { 272 | display: none !important; } 273 | -------------------------------------------------------------------------------- /assets/css/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "Roboto", sans-serif; 3 | background-color: #f8fafb; } 4 | 5 | p { 6 | color: #b3b3b3; 7 | font-weight: 300; } 8 | 9 | h1, h2, h3, h4, h5, h6, 10 | .h1, .h2, .h3, .h4, .h5, .h6 { 11 | font-family: "Roboto", sans-serif; } 12 | 13 | a { 14 | -webkit-transition: .3s all ease; 15 | -o-transition: .3s all ease; 16 | transition: .3s all ease; } 17 | a:hover { 18 | text-decoration: none !important; } 19 | 20 | .content { 21 | padding: 7rem 0; } 22 | 23 | h2 { 24 | font-size: 20px; } 25 | 26 | @media (max-width: 991.98px) { 27 | .content .bg { 28 | height: 500px; } } 29 | 30 | .content .contents, .content .bg { 31 | width: 50%; } 32 | @media (max-width: 1199.98px) { 33 | .content .contents, .content .bg { 34 | width: 100%; } } 35 | .content .contents .form-group, .content .bg .form-group { 36 | overflow: hidden; 37 | margin-bottom: 0; 38 | padding: 15px 15px; 39 | border-bottom: none; 40 | position: relative; 41 | background: #edf2f5; 42 | border-bottom: 1px solid #e6edf1; } 43 | .content .contents .form-group label, .content .bg .form-group label { 44 | position: absolute; 45 | top: 50%; 46 | -webkit-transform: translateY(-50%); 47 | -ms-transform: translateY(-50%); 48 | transform: translateY(-50%); 49 | -webkit-transition: .3s all ease; 50 | -o-transition: .3s all ease; 51 | transition: .3s all ease; } 52 | .content .contents .form-group input, .content .bg .form-group input { 53 | background: transparent; } 54 | .content .contents .form-group.first, .content .bg .form-group.first { 55 | border-top-left-radius: 7px; 56 | border-top-right-radius: 7px; } 57 | .content .contents .form-group.last, .content .bg .form-group.last { 58 | border-bottom-left-radius: 7px; 59 | border-bottom-right-radius: 7px; } 60 | .content .contents .form-group label, .content .bg .form-group label { 61 | font-size: 12px; 62 | display: block; 63 | margin-bottom: 0; 64 | color: #b3b3b3; } 65 | .content .contents .form-group.focus, .content .bg .form-group.focus { 66 | background: #fff; } 67 | .content .contents .form-group.field--not-empty label, .content .bg .form-group.field--not-empty label { 68 | margin-top: -20px; } 69 | .content .contents .form-control, .content .bg .form-control { 70 | border: none; 71 | padding: 0; 72 | font-size: 20px; 73 | border-radius: 0; } 74 | .content .contents .form-control:active, .content .contents .form-control:focus, .content .bg .form-control:active, .content .bg .form-control:focus { 75 | outline: none; 76 | -webkit-box-shadow: none; 77 | box-shadow: none; } 78 | 79 | .content .bg { 80 | background-size: cover; 81 | background-position: center; } 82 | 83 | .content a { 84 | color: #888; 85 | text-decoration: underline; } 86 | 87 | .content .btn { 88 | height: 54px; 89 | padding-left: 30px; 90 | padding-right: 30px; } 91 | 92 | .content .forgot-pass { 93 | position: relative; 94 | top: 2px; 95 | font-size: 14px; } 96 | 97 | .social-login a { 98 | text-decoration: none; 99 | position: relative; 100 | text-align: center; 101 | color: #fff; 102 | margin-bottom: 10px; 103 | width: 50px; 104 | height: 50px; 105 | border-radius: 50%; 106 | display: inline-block; } 107 | .social-login a span { 108 | position: absolute; 109 | top: 50%; 110 | left: 50%; 111 | -webkit-transform: translate(-50%, -50%); 112 | -ms-transform: translate(-50%, -50%); 113 | transform: translate(-50%, -50%); } 114 | .social-login a:hover { 115 | color: #fff; } 116 | .social-login a.facebook { 117 | background: #3b5998; } 118 | .social-login a.facebook:hover { 119 | background: #344e86; } 120 | .social-login a.twitter { 121 | background: #1da1f2; } 122 | .social-login a.twitter:hover { 123 | background: #0d95e8; } 124 | .social-login a.google { 125 | background: #ea4335; } 126 | .social-login a.google:hover { 127 | background: #e82e1e; } 128 | 129 | .control { 130 | display: block; 131 | position: relative; 132 | padding-left: 30px; 133 | margin-bottom: 15px; 134 | cursor: pointer; 135 | font-size: 14px; } 136 | .control .caption { 137 | position: relative; 138 | top: .2rem; 139 | color: #888; } 140 | 141 | .control input { 142 | position: absolute; 143 | z-index: -1; 144 | opacity: 0; } 145 | 146 | .control__indicator { 147 | position: absolute; 148 | top: 2px; 149 | left: 0; 150 | height: 20px; 151 | width: 20px; 152 | background: #e6e6e6; 153 | border-radius: 4px; } 154 | 155 | .control--radio .control__indicator { 156 | border-radius: 50%; } 157 | 158 | .control:hover input ~ .control__indicator, 159 | .control input:focus ~ .control__indicator { 160 | background: #ccc; } 161 | 162 | .control input:checked ~ .control__indicator { 163 | background: #6c63ff; } 164 | 165 | .control:hover input:not([disabled]):checked ~ .control__indicator, 166 | .control input:checked:focus ~ .control__indicator { 167 | background: #847dff; } 168 | 169 | .control input:disabled ~ .control__indicator { 170 | background: #e6e6e6; 171 | opacity: 0.9; 172 | pointer-events: none; } 173 | 174 | .control__indicator:after { 175 | font-family: 'icomoon'; 176 | content: '\e5ca'; 177 | position: absolute; 178 | display: none; 179 | font-size: 16px; 180 | -webkit-transition: .3s all ease; 181 | -o-transition: .3s all ease; 182 | transition: .3s all ease; } 183 | 184 | .control input:checked ~ .control__indicator:after { 185 | display: block; 186 | color: #fff; } 187 | 188 | .control--checkbox .control__indicator:after { 189 | top: 50%; 190 | left: 50%; 191 | margin-top: -1px; 192 | -webkit-transform: translate(-50%, -50%); 193 | -ms-transform: translate(-50%, -50%); 194 | transform: translate(-50%, -50%); } 195 | 196 | .control--checkbox input:disabled ~ .control__indicator:after { 197 | border-color: #7b7b7b; } 198 | 199 | .control--checkbox input:disabled:checked ~ .control__indicator { 200 | background-color: #7e0cf5; 201 | opacity: .2; } 202 | -------------------------------------------------------------------------------- /assets/fonts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/.DS_Store -------------------------------------------------------------------------------- /assets/fonts/icomoon/Read Me.txt: -------------------------------------------------------------------------------- 1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. 2 | 3 | To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts 4 | 5 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. 6 | 7 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. 8 | -------------------------------------------------------------------------------- /assets/fonts/icomoon/demo-files/demo.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 0; 3 | margin: 0; 4 | font-family: sans-serif; 5 | font-size: 1em; 6 | line-height: 1.5; 7 | color: #555; 8 | background: #fff; 9 | } 10 | h1 { 11 | font-size: 1.5em; 12 | font-weight: normal; 13 | } 14 | small { 15 | font-size: .66666667em; 16 | } 17 | a { 18 | color: #e74c3c; 19 | text-decoration: none; 20 | } 21 | a:hover, a:focus { 22 | box-shadow: 0 1px #e74c3c; 23 | } 24 | .bshadow0, input { 25 | box-shadow: inset 0 -2px #e7e7e7; 26 | } 27 | input:hover { 28 | box-shadow: inset 0 -2px #ccc; 29 | } 30 | input, fieldset { 31 | font-family: sans-serif; 32 | font-size: 1em; 33 | margin: 0; 34 | padding: 0; 35 | border: 0; 36 | } 37 | input { 38 | color: inherit; 39 | line-height: 1.5; 40 | height: 1.5em; 41 | padding: .25em 0; 42 | } 43 | input:focus { 44 | outline: none; 45 | box-shadow: inset 0 -2px #449fdb; 46 | } 47 | .glyph { 48 | font-size: 16px; 49 | width: 15em; 50 | padding-bottom: 1em; 51 | margin-right: 4em; 52 | margin-bottom: 1em; 53 | float: left; 54 | overflow: hidden; 55 | } 56 | .liga { 57 | width: 80%; 58 | width: calc(100% - 2.5em); 59 | } 60 | .talign-right { 61 | text-align: right; 62 | } 63 | .talign-center { 64 | text-align: center; 65 | } 66 | .bgc1 { 67 | background: #f1f1f1; 68 | } 69 | .fgc1 { 70 | color: #999; 71 | } 72 | .fgc0 { 73 | color: #000; 74 | } 75 | p { 76 | margin-top: 1em; 77 | margin-bottom: 1em; 78 | } 79 | .mvm { 80 | margin-top: .75em; 81 | margin-bottom: .75em; 82 | } 83 | .mtn { 84 | margin-top: 0; 85 | } 86 | .mtl, .mal { 87 | margin-top: 1.5em; 88 | } 89 | .mbl, .mal { 90 | margin-bottom: 1.5em; 91 | } 92 | .mal, .mhl { 93 | margin-left: 1.5em; 94 | margin-right: 1.5em; 95 | } 96 | .mhmm { 97 | margin-left: 1em; 98 | margin-right: 1em; 99 | } 100 | .mls { 101 | margin-left: .25em; 102 | } 103 | .ptl { 104 | padding-top: 1.5em; 105 | } 106 | .pbs, .pvs { 107 | padding-bottom: .25em; 108 | } 109 | .pvs, .pts { 110 | padding-top: .25em; 111 | } 112 | .unit { 113 | float: left; 114 | } 115 | .unitRight { 116 | float: right; 117 | } 118 | .size1of2 { 119 | width: 50%; 120 | } 121 | .size1of1 { 122 | width: 100%; 123 | } 124 | .clearfix:before, .clearfix:after { 125 | content: " "; 126 | display: table; 127 | } 128 | .clearfix:after { 129 | clear: both; 130 | } 131 | .hidden-true { 132 | display: none; 133 | } 134 | .textbox0 { 135 | width: 3em; 136 | background: #f1f1f1; 137 | padding: .25em .5em; 138 | line-height: 1.5; 139 | height: 1.5em; 140 | } 141 | #testDrive { 142 | display: block; 143 | padding-top: 24px; 144 | line-height: 1.5; 145 | } 146 | .fs0 { 147 | font-size: 16px; 148 | } 149 | .fs1 { 150 | font-size: 28px; 151 | } 152 | .fs2 { 153 | font-size: 24px; 154 | } 155 | 156 | -------------------------------------------------------------------------------- /assets/fonts/icomoon/demo-files/demo.js: -------------------------------------------------------------------------------- 1 | if (!('boxShadow' in document.body.style)) { 2 | document.body.setAttribute('class', 'noBoxShadow'); 3 | } 4 | 5 | document.body.addEventListener("click", function(e) { 6 | var target = e.target; 7 | if (target.tagName === "INPUT" && 8 | target.getAttribute('class').indexOf('liga') === -1) { 9 | target.select(); 10 | } 11 | }); 12 | 13 | (function() { 14 | var fontSize = document.getElementById('fontSize'), 15 | testDrive = document.getElementById('testDrive'), 16 | testText = document.getElementById('testText'); 17 | function updateTest() { 18 | testDrive.innerHTML = testText.value || String.fromCharCode(160); 19 | if (window.icomoonLiga) { 20 | window.icomoonLiga(testDrive); 21 | } 22 | } 23 | function updateSize() { 24 | testDrive.style.fontSize = fontSize.value + 'px'; 25 | } 26 | fontSize.addEventListener('change', updateSize, false); 27 | testText.addEventListener('input', updateTest, false); 28 | testText.addEventListener('change', updateTest, false); 29 | updateSize(); 30 | }()); 31 | -------------------------------------------------------------------------------- /assets/fonts/icomoon/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.eot -------------------------------------------------------------------------------- /assets/fonts/icomoon/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.ttf -------------------------------------------------------------------------------- /assets/fonts/icomoon/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/fonts/icomoon/fonts/icomoon.woff -------------------------------------------------------------------------------- /assets/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/images/.DS_Store -------------------------------------------------------------------------------- /assets/images/bg_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/images/bg_1.jpg -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 'use strict'; 3 | 4 | $('.form-control').on('input', function() { 5 | var $field = $(this).closest('.form-group'); 6 | if (this.value) { 7 | $field.addClass('field--not-empty'); 8 | } else { 9 | $field.removeClass('field--not-empty'); 10 | } 11 | }); 12 | 13 | }); -------------------------------------------------------------------------------- /assets/main.html: -------------------------------------------------------------------------------- 1 | Colorlib logo 2 |

Thank you for using our template!

3 |

For more awesome templates please visit Colorlib.

4 | 5 | 12 | -------------------------------------------------------------------------------- /assets/scss/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/victor-gv/php-server-environment/dd21413ffa26fdddf1aaf2b5bec7e140a3076d97/assets/scss/.DS_Store -------------------------------------------------------------------------------- /assets/scss/bootstrap/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /assets/scss/bootstrap/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | @include transition($badge-transition); 17 | 18 | @at-root a#{&} { 19 | @include hover-focus { 20 | text-decoration: none; 21 | } 22 | } 23 | 24 | // Empty badges collapse automatically 25 | &:empty { 26 | display: none; 27 | } 28 | } 29 | 30 | // Quick fix for badges in buttons 31 | .btn .badge { 32 | position: relative; 33 | top: -1px; 34 | } 35 | 36 | // Pill badges 37 | // 38 | // Make them extra rounded with a modifier to replace v3's badges. 39 | 40 | .badge-pill { 41 | padding-right: $badge-pill-padding-x; 42 | padding-left: $badge-pill-padding-x; 43 | @include border-radius($badge-pill-border-radius); 44 | } 45 | 46 | // Colors 47 | // 48 | // Contextual variations (linked badges get darker on :hover). 49 | 50 | @each $color, $value in $theme-colors { 51 | .badge-#{$color} { 52 | @include badge-variant($value); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /assets/scss/bootstrap/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | list-style: none; 7 | background-color: $breadcrumb-bg; 8 | @include border-radius($breadcrumb-border-radius); 9 | } 10 | 11 | .breadcrumb-item { 12 | // The separator between breadcrumbs (by default, a forward-slash: "/") 13 | + .breadcrumb-item { 14 | padding-left: $breadcrumb-item-padding; 15 | 16 | &::before { 17 | display: inline-block; // Suppress underlining of the separator in modern browsers 18 | padding-right: $breadcrumb-item-padding; 19 | color: $breadcrumb-divider-color; 20 | content: $breadcrumb-divider; 21 | } 22 | } 23 | 24 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built 25 | // without `